1. 29 Jul, 2010 1 commit
    • simon.fraser@apple.com's avatar
      2010-07-29 Simon Fraser <simon.fraser@apple.com> · e3a3b735
      simon.fraser@apple.com authored
              Reviewed by Pavel Feldman.
      
              Crash when computing pseudo-style of a vanished scrollbar in inspector
              https://bugs.webkit.org/show_bug.cgi?id=42561
      
              When a styled overflow:scroll scrollbar gets destroyed, we need to clear out the m_owner pointer,
              otherwise the event handling code (which keeps the Scrollbar alive) later causes the scrollbar
              to try to use m_owner to get pseudo style.
      
              Test: scrollbars/overflow-custom-scrollbar-crash.html
      
              * rendering/RenderLayer.cpp:
              (WebCore::RenderLayer::destroyScrollbar): If this is a custom scrollbar, clear the owning renderer.
              * rendering/RenderScrollbar.cpp:
              (WebCore::RenderScrollbar::getScrollbarPseudoStyle): Bail if m_owner is 0.
              * rendering/RenderScrollbar.h:
              (WebCore::RenderScrollbar::clearOwningRenderer): New method.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64289 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e3a3b735
  2. 05 Aug, 2009 1 commit
    • darin@apple.com's avatar
      2009-08-05 Darin Adler <darin@apple.com> · b6cb2561
      darin@apple.com authored
              Reviewed by David Levin.
      
              Use checked casts for render tree
              https://bugs.webkit.org/show_bug.cgi?id=23522
      
              Last patch. Makes all the casts of RenderObject use checked
              casts instead of using static_cast directly.
      
              * accessibility/AccessibilityListBox.cpp:
              (WebCore::AccessibilityListBox::visibleChildren):
              (WebCore::AccessibilityListBox::doAccessibilityHitTest):
              * accessibility/AccessibilityListBoxOption.cpp:
              (WebCore::AccessibilityListBoxOption::elementRect):
              * accessibility/AccessibilityRenderObject.cpp:
              (WebCore::AccessibilityRenderObject::textUnderElement):
              (WebCore::AccessibilityRenderObject::stringValue):
              (WebCore::AccessibilityRenderObject::titleUIElement):
              (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
              * accessibility/AccessibilitySlider.cpp:
              (WebCore::AccessibilitySliderThumb::elementRect):
              * dom/InputElement.cpp:
              (WebCore::InputElement::updatePlaceholderVisibility):
              * dom/SelectElement.cpp:
              (WebCore::SelectElement::scrollToSelection):
              (WebCore::SelectElement::recalcStyle):
              (WebCore::SelectElement::setRecalcListItems):
              (WebCore::SelectElement::menuListDefaultEventHandler):
              (WebCore::SelectElement::listBoxDefaultEventHandler):
              * editing/BreakBlockquoteCommand.cpp:
              (WebCore::BreakBlockquoteCommand::doApply):
              * html/HTMLAppletElement.cpp:
              (WebCore::HTMLAppletElement::renderWidgetForJSBindings):
              * html/HTMLCanvasElement.cpp:
              (WebCore::HTMLCanvasElement::reset):
              * html/HTMLEmbedElement.cpp:
              (WebCore::HTMLEmbedElement::updateWidget):
              * html/HTMLFrameElementBase.cpp:
              (WebCore::HTMLFrameElementBase::attach):
              * html/HTMLFrameSetElement.cpp:
              (WebCore::HTMLFrameSetElement::defaultEventHandler):
              * html/HTMLIFrameElement.cpp:
              (WebCore::HTMLIFrameElement::attach):
              * html/HTMLInputElement.cpp:
              (WebCore::HTMLInputElement::defaultEventHandler):
              (WebCore::HTMLInputElement::addSearchResult):
              (WebCore::HTMLInputElement::onSearch):
              * html/HTMLLIElement.cpp:
              (WebCore::HTMLLIElement::parseMappedAttribute):
              (WebCore::HTMLLIElement::attach):
              * html/HTMLMediaElement.cpp:
              (WebCore::HTMLMediaElement::setReadyState):
              (WebCore::HTMLMediaElement::mediaPlayerDurationChanged):
              (WebCore::HTMLMediaElement::mediaPlayerSizeChanged):
              (WebCore::HTMLMediaElement::mediaPlayerRenderingCanBeAccelerated):
              (WebCore::HTMLMediaElement::mediaPlayerGraphicsLayer):
              (WebCore::HTMLMediaElement::defaultEventHandler):
              (WebCore::HTMLMediaElement::finishParsingChildren):
              * html/HTMLOListElement.cpp:
              (WebCore::HTMLOListElement::parseMappedAttribute):
              * html/HTMLObjectElement.cpp:
              (WebCore::HTMLObjectElement::updateWidget):
              * html/HTMLTextAreaElement.cpp:
              (WebCore::HTMLTextAreaElement::defaultEventHandler):
              * page/DragController.cpp:
              (WebCore::DragController::concludeEditDrag):
              * page/EventHandler.cpp:
              (WebCore::EventHandler::selectCursor):
              (WebCore::EventHandler::capsLockStateMayHaveChanged):
              * page/Frame.cpp:
              (WebCore::Frame::ownerRenderer):
              * page/FrameView.cpp:
              (WebCore::FrameView::detachCustomScrollbars):
              * page/wince/FrameWince.cpp:
              (WebCore::computePageRectsForFrame):
              * rendering/InlineFlowBox.cpp:
              (WebCore::InlineFlowBox::placeBoxesHorizontally):
              * rendering/MediaControlElements.cpp:
              (WebCore::MediaControlTimelineElement::defaultEventHandler):
              * rendering/RenderBlockLineLayout.cpp:
              (WebCore::RenderBlock::findNextLineBreak):
              * rendering/RenderCounter.cpp:
              (WebCore::planCounter):
              * rendering/RenderFrameSet.cpp:
              (WebCore::RenderFrameSet::computeEdgeInfo):
              (WebCore::RenderFrameSet::setIsResizing):
              * rendering/RenderLayerBacking.cpp:
              (WebCore::RenderLayerBacking::contentsBox):
              * rendering/RenderLayerCompositor.cpp:
              (WebCore::RenderLayerCompositor::updateBacking):
              (WebCore::RenderLayerCompositor::requiresCompositingForVideo):
              * rendering/RenderListItem.cpp:
              (WebCore::previousListItem):
              (WebCore::RenderListItem::explicitValueChanged):
              * rendering/RenderObject.cpp:
              (WebCore::updateListMarkerNumbers):
              * rendering/RenderObjectChildList.cpp:
              (WebCore::updateListMarkerNumbers):
              (WebCore::invalidateCountersInContainer):
              * rendering/RenderScrollbarTheme.cpp:
              (WebCore::RenderScrollbarTheme::minimumThumbLength):
              (WebCore::RenderScrollbarTheme::backButtonRect):
              (WebCore::RenderScrollbarTheme::forwardButtonRect):
              (WebCore::RenderScrollbarTheme::trackRect):
              (WebCore::RenderScrollbarTheme::constrainTrackRectToTrackPieces):
              (WebCore::RenderScrollbarTheme::paintScrollbarBackground):
              (WebCore::RenderScrollbarTheme::paintTrackBackground):
              (WebCore::RenderScrollbarTheme::paintTrackPiece):
              (WebCore::RenderScrollbarTheme::paintButton):
              (WebCore::RenderScrollbarTheme::paintThumb):
              * rendering/RenderSlider.cpp:
              (WebCore::SliderThumbElement::defaultEventHandler):
              * rendering/RenderThemeChromiumMac.mm:
              (WebCore::RenderThemeChromiumMac::paintSliderThumb):
              (WebCore::RenderThemeChromiumMac::paintMediaSliderTrack):
              * rendering/RenderThemeChromiumWin.cpp:
              (WebCore::RenderThemeChromiumWin::determineSliderThumbState):
              * rendering/RenderThemeMac.mm:
              (WebCore::RenderThemeMac::paintSliderThumb):
              * rendering/RenderThemeSafari.cpp:
              (WebCore::RenderThemeSafari::paintSliderThumb):
              * rendering/RenderThemeWin.cpp:
              (WebCore::RenderThemeWin::determineSliderThumbState):
              * rendering/SVGCharacterLayoutInfo.cpp:
              (WebCore::SVGCharacterLayoutInfo::addLayoutInformation):
              * rendering/SVGRootInlineBox.cpp:
              (WebCore::findSVGRootObject):
              * rendering/TextControlInnerElements.cpp:
              (WebCore::RenderTextControlInnerBlock::nodeAtPoint):
              (WebCore::SearchFieldResultsButtonElement::defaultEventHandler):
              * svg/SVGImageElement.cpp:
              (WebCore::SVGImageElement::attach):
              * svg/SVGMarkerElement.cpp:
              (WebCore::SVGMarkerElement::canvasResource):
              * svg/SVGTextContentElement.cpp:
              (WebCore::rootInlineBoxForTextContentElement):
              * wml/WMLInputElement.cpp:
              (WebCore::WMLInputElement::defaultEventHandler):
              Use checked casts.
      
              * rendering/RenderApplet.h:
              * rendering/RenderCounter.h:
              * rendering/RenderFieldset.h:
              * rendering/RenderFileUploadControl.h:
              * rendering/RenderFrame.h:
              * rendering/RenderFrameSet.h:
              * rendering/RenderHTMLCanvas.h:
              * rendering/RenderListBox.h:
              * rendering/RenderListItem.h:
              * rendering/RenderListMarker.h:
              * rendering/RenderMedia.h:
              * rendering/RenderMenuList.h:
              * rendering/RenderPart.h:
              * rendering/RenderPartObject.h:
              * rendering/RenderPath.h:
              * rendering/RenderSVGContainer.h:
              * rendering/RenderSVGRoot.h:
              * rendering/RenderSVGTextPath.h:
              * rendering/RenderSVGViewportContainer.h:
              * rendering/RenderScrollbar.h:
              * rendering/RenderSlider.h:
              * rendering/RenderTextControlMultiLine.h:
              * rendering/RenderTextControlSingleLine.h:
              * rendering/RenderVideo.h:
              Added a checked cast. Also made most members protected or private.
      
              * rendering/RenderBlock.h:
              * rendering/RenderInline.h:
              * rendering/RenderReplaced.h:
              * rendering/RenderSVGBlock.h:
              * rendering/RenderSVGImage.h:
              * rendering/RenderSVGInlineText.h:
              * rendering/RenderSVGText.h:
              * rendering/RenderTextControl.h:
              Made most members protected or private.
      
              * rendering/RenderInline.cpp:
              * rendering/RenderSVGContainer.cpp:
              * rendering/RenderSVGHiddenContainer.cpp:
              * rendering/RenderSVGImage.cpp:
              * rendering/RenderSVGRoot.cpp:
              Removed unneeded destructor.
      
              * rendering/RenderSVGHiddenContainer.h:
              Removed unneeded virtual function overrides that did the same as
              the default and base class.
      
              * rendering/RenderSVGViewportContainer.cpp:
              (WebCore::RenderSVGViewportContainer::paint): Updated to use m_viewport
              directly instead of using a function call.
              (WebCore::RenderSVGViewportContainer::applyViewportClip): Ditto.
              (WebCore::RenderSVGViewportContainer::viewportTransform): Ditto.
              (WebCore::RenderSVGViewportContainer::localToParentTransform): Ditto.
              (WebCore::RenderSVGViewportContainer::pointIsInsideViewportClip): Ditto.
      
              * rendering/RenderScrollbar.cpp:
              (WebCore::pseudoForScrollbarPart): Changed switch statement to use cases for
              all values instead of using a default case.
      
              * rendering/RenderTreeAsText.cpp:
              (WebCore::operator<<): Removed dependency on casting to types that don't
              have any public members we need to get at. Instead, use function names to
              identify the type rather than doing so much overloading. Changed to use
              checked casts.
              (WebCore::write): Ditto.
      
              * rendering/SVGRenderSupport.cpp:
              (WebCore::renderSubtreeToImage): Changed to use a checked cast and also
              added a comment about the fact that the code does not do sufficient type
              checking before doing the cast.
      
              * rendering/SVGRenderTreeAsText.cpp:
              (WebCore::writeRenderSVGTextBox): Renamed this from operator<<.
              (WebCore::writeSVGInlineTextBoxes): Renamed this from writeSVGInlineText.
              (WebCore::writeSVGText): Renamed this from write.
              (WebCore::writeSVGInlineText): Ditto.
              (WebCore::writeSVGImage): Ditto.
              * rendering/SVGRenderTreeAsText.h: Updated for name changes. Removed
              unneeded default arguments.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@46815 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b6cb2561
  3. 22 Jun, 2009 1 commit
    • levin@chromium.org's avatar
      WebCore: · b742833e
      levin@chromium.org authored
      2009-06-22  David Levin  <levin@chromium.org>
      
              Reviewed by David Hyatt and Eric Seidel.
      
              REGRESSION: When the main page (ScrollView) has a custom scrollbar, it crashes on destruction.
              https://bugs.webkit.org/show_bug.cgi?id=26326
      
              Test: scrollbars/scrollbar-crash-on-refresh.html
      
              * dom/Document.cpp:
              (WebCore::Document::detach):
              Gives the FrameView a change to do any necessary cleanup on
              Document::detach() which is where the renderArena gets detroyed.
              * page/FrameView.cpp:
              (WebCore::FrameView::detachCustomScrollbars):
              Gets rid of any custom scrollbars (if the docment supplied them).
              * page/FrameView.h:
              * platform/Scrollbar.h:
              (WebCore::Scrollbar::isCustomScrollbar):
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::destroy):
              Removed the check for document()->frame().  If frame() is 0 in this code,
              then the call to animation() is also incorrect (since it does document()->frame()->animation()).
              * rendering/RenderScrollbar.h:
              (WebCore::RenderScrollbar::isCustomScrollbar):
      
      LayoutTests:
      
      2009-06-22  David Levin  <levin@chromium.org>
      
              Reviewed by David Hyatt and Eric Seidel.
      
              REGRESSION: When the main page (ScrollView) has a custom scrollbar, it crashes on destruction.
              https://bugs.webkit.org/show_bug.cgi?id=26326
      
              Test that refreshing an iframe with custom scrollbars works without crashing.
      
              * scrollbars/resources/page-with-custom-scrollbars.html: Added.
              * scrollbars/scrollbar-crash-on-refresh-expected.txt: Added.
              * scrollbars/scrollbar-crash-on-refresh.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44940 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b742833e
  4. 17 Jun, 2009 1 commit
    • levin@chromium.org's avatar
      WebCore: · afb42f96
      levin@chromium.org authored
      2009-06-17  David Levin  <levin@chromium.org>
      
              Reviewed by NOBODY, layout tests fix.
      
              https://bugs.webkit.org/show_bug.cgi?id=26326
              This reverts commit r44751.
      
              Once that change was checked scrollbars/scrollbar-orientation.html started
              crashing on Windows.
      
              * dom/Document.cpp:
              (WebCore::Document::detach):
              * page/FrameView.cpp:
              * page/FrameView.h:
              * platform/Scrollbar.h:
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::destroy):
              * rendering/RenderScrollbar.h:
      
      LayoutTests:
      
      2009-06-17  David Levin  <levin@chromium.org>
      
              Reviewed by NOBODY, layout tests fix.
      
              https://bugs.webkit.org/show_bug.cgi?id=26326
              This reverts commit r44751.
      
              Once that change was checked scrollbars/scrollbar-orientation.html started
              crashing on Windows.
      
              * scrollbars/resources/page-with-custom-scrollbars.html: Removed.
              * scrollbars/scrollbar-crash-on-refresh-expected.txt: Removed.
              * scrollbars/scrollbar-crash-on-refresh.html: Removed.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44755 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      afb42f96
  5. 16 Jun, 2009 1 commit
    • levin@chromium.org's avatar
      WebCore: · 4a0090f7
      levin@chromium.org authored
      2009-06-16  David Levin  <levin@chromium.org>
      
              Reviewed by David Hyatt.
      
              REGRESSION: When the main page (ScrollView) has a custom scrollbar, it crashes on destruction.
              https://bugs.webkit.org/show_bug.cgi?id=26326
      
              Test: scrollbars/scrollbar-crash-on-refresh.html
      
              * dom/Document.cpp:
              (WebCore::Document::detach):
              Gives the FrameView a change to do any necessary cleanup on
              Document::detach() which is where the renderArena gets detroyed.
              * page/FrameView.cpp:
              (WebCore::FrameView::detachCustomScrollbars):
              Gets rid of any custom scrollbars (if the docment supplied them).
              * page/FrameView.h:
              * platform/Scrollbar.h:
              (WebCore::Scrollbar::isCustomScrollbar):
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::destroy):
              Removed the check for document()->frame().  If frame() is 0 in this code,
              then the call to animation() is also incorrect (since it does document()->frame()->animation()).
              * rendering/RenderScrollbar.h:
              (WebCore::RenderScrollbar::isCustomScrollbar):
      
      LayoutTests:
      
      2009-06-16  David Levin  <levin@chromium.org>
      
              Reviewed by David Hyatt.
      
              REGRESSION: When the main page (ScrollView) has a custom scrollbar, it crashes on destruction.
              https://bugs.webkit.org/show_bug.cgi?id=26326
      
              Test that refreshing an iframe with custom scrollbars works without crashing.
      
              * scrollbars/resources/page-with-custom-scrollbars.html: Added.
              * scrollbars/scrollbar-crash-on-refresh-expected.txt: Added.
              * scrollbars/scrollbar-crash-on-refresh.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44751 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4a0090f7
  6. 04 Feb, 2009 2 commits
    • weinig@apple.com's avatar
      2009-02-04 Sam Weinig <sam@webkit.org> · b0999b8a
      weinig@apple.com authored
              Reviewed by David Hyatt.
      
              Remove some unnecessary #includes of RenderStyle.h
      
              * css/CSSPrimitiveValueMappings.h:
              * css/SVGCSSComputedStyleDeclaration.cpp:
              * dom/Node.h:
              * rendering/PointerEventsHitRules.h:
              * rendering/RenderImageGeneratedContent.h:
              * rendering/RenderMarquee.h:
              * rendering/RenderScrollbar.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@40634 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b0999b8a
    • weinig@apple.com's avatar
      2009-02-03 Sam Weinig <sam@webkit.org> · edad01d2
      weinig@apple.com authored
              Reviewed by David Hyatt.
      
              Move PseudoId enum out of RenderStyle and into RenderStyleConstants.h
      
              * css/CSSStyleSelector.cpp:
              (WebCore::CSSStyleSelector::matchRulesForList):
              (WebCore::CSSStyleSelector::initForStyleResolve):
              (WebCore::CSSStyleSelector::SelectorChecker::SelectorChecker):
              (WebCore::CSSStyleSelector::SelectorChecker::checkSelector):
              (WebCore::CSSStyleSelector::styleForElement):
              (WebCore::CSSStyleSelector::pseudoStyleForElement):
              (WebCore::CSSStyleSelector::checkSelector):
              (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
              (WebCore::CSSStyleSelector::SelectorChecker::checkScrollbarPseudoClass):
              (WebCore::CSSStyleSelector::applyProperty):
              * css/CSSStyleSelector.h:
              * dom/Node.cpp:
              (WebCore::Node::diff):
              * page/FrameView.cpp:
              (WebCore::FrameView::createScrollbar):
              * rendering/InlineTextBox.cpp:
              (WebCore::InlineTextBox::paint):
              * rendering/MediaControlElements.cpp:
              (WebCore::MediaTextDisplayElement::MediaTextDisplayElement):
              (WebCore::MediaTimeDisplayElement::MediaTimeDisplayElement):
              (WebCore::MediaControlInputElement::MediaControlInputElement):
              (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement):
              (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement):
              (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement):
              (WebCore::MediaControlTimelineElement::MediaControlTimelineElement):
              (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement):
              * rendering/MediaControlElements.h:
              * rendering/RenderBlock.cpp:
              (WebCore::RenderBlock::styleDidChange):
              (WebCore::RenderBlock::updateBeforeAfterContent):
              (WebCore::RenderBlock::firstLineBlock):
              (WebCore::RenderBlock::updateFirstLetter):
              * rendering/RenderBlock.h:
              * rendering/RenderBox.cpp:
              (WebCore::RenderBox::isAfterContent):
              * rendering/RenderButton.cpp:
              (WebCore::RenderButton::updateBeforeAfterContent):
              * rendering/RenderButton.h:
              * rendering/RenderFileUploadControl.cpp:
              (WebCore::RenderFileUploadControl::createButtonStyle):
              * rendering/RenderInline.cpp:
              (WebCore::RenderInline::styleDidChange):
              (WebCore::isAfterContent):
              (WebCore::RenderInline::addChildIgnoringContinuation):
              (WebCore::RenderInline::splitInlines):
              * rendering/RenderLayer.cpp:
              (WebCore::RenderLayer::createScrollbar):
              (WebCore::RenderLayer::updateScrollCornerStyle):
              (WebCore::RenderLayer::updateResizerStyle):
              * rendering/RenderListBox.cpp:
              (WebCore::RenderListBox::createScrollbar):
              * rendering/RenderMedia.cpp:
              (WebCore::RenderMedia::createPanel):
              (WebCore::RenderMedia::createTimelineContainer):
              * rendering/RenderMenuList.cpp:
              (WebCore::RenderMenuList::createScrollbar):
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::selectionBackgroundColor):
              (WebCore::RenderObject::selectionForegroundColor):
              (WebCore::RenderObject::firstLineStyleSlowCase):
              (WebCore::RenderObject::getCachedPseudoStyle):
              (WebCore::RenderObject::getUncachedPseudoStyle):
              * rendering/RenderObject.h:
              (WebCore::RenderObject::isAnonymousBlock):
              * rendering/RenderObjectChildList.cpp:
              (WebCore::RenderObjectChildList::destroyLeftoverChildren):
              (WebCore::beforeAfterContainer):
              (WebCore::RenderObjectChildList::invalidateCounters):
              (WebCore::RenderObjectChildList::updateBeforeAfterContent):
              * rendering/RenderObjectChildList.h:
              * rendering/RenderScrollbar.cpp:
              (WebCore::RenderScrollbar::getScrollbarPseudoStyle):
              (WebCore::pseudoForScrollbarPart):
              * rendering/RenderScrollbar.h:
              * rendering/RenderSlider.cpp:
              (WebCore::RenderSlider::createThumbStyle):
              * rendering/RenderTextControlSingleLine.cpp:
              (WebCore::RenderTextControlSingleLine::createInnerTextStyle):
              (WebCore::RenderTextControlSingleLine::createResultsButtonStyle):
              (WebCore::RenderTextControlSingleLine::createCancelButtonStyle):
              (WebCore::RenderTextControlSingleLine::createScrollbar):
              * rendering/style/RenderStyle.cpp:
              (WebCore::pseudoBit):
              * rendering/style/RenderStyle.h:
              (WebCore::):
              * rendering/style/RenderStyleConstants.h:
              (WebCore::):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@40625 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      edad01d2
  7. 21 Jan, 2009 1 commit
    • hyatt@apple.com's avatar
      WebCore: · d885df72
      hyatt@apple.com authored
      2009-01-21  David Hyatt  <hyatt@apple.com>
      
              Fix for https://bugs.webkit.org/show_bug.cgi?id=23453
      
              Devirtualize the width/height/x/y methods of the render tree.  The methods are now non-virtual on RenderBox.
              Many functions that were previously in RenderObject.cpp are now in RenderBox.cpp.
      
              Reviewed by Eric Seidel and Darin Adler
      
              * WebCore.base.exp:
              * css/CSSComputedStyleDeclaration.cpp:
              (WebCore::sizingBox):
              * dom/ContainerNode.cpp:
              (WebCore::ContainerNode::getUpperLeftCorner):
              (WebCore::ContainerNode::getLowerRightCorner):
              * dom/Element.cpp:
              (WebCore::Element::offsetLeft):
              (WebCore::Element::offsetTop):
              (WebCore::Element::offsetWidth):
              (WebCore::Element::offsetHeight):
              (WebCore::Element::offsetParent):
              (WebCore::Element::clientLeft):
              (WebCore::Element::clientTop):
              (WebCore::Element::clientWidth):
              (WebCore::Element::clientHeight):
              (WebCore::Element::scrollLeft):
              (WebCore::Element::scrollTop):
              (WebCore::Element::setScrollLeft):
              (WebCore::Element::setScrollTop):
              (WebCore::Element::scrollWidth):
              (WebCore::Element::scrollHeight):
              * dom/Node.cpp:
              (WebCore::Node::renderBox):
              (WebCore::Node::getRect):
              * dom/Node.h:
              * dom/Position.cpp:
              (WebCore::endsOfNodeAreVisuallyDistinctPositions):
              (WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight):
              (WebCore::Position::isCandidate):
              * dom/PositionIterator.cpp:
              (WebCore::PositionIterator::isCandidate):
              * editing/CompositeEditCommand.cpp:
              (WebCore::CompositeEditCommand::addBlockPlaceholderIfNeeded):
              * editing/DeleteButtonController.cpp:
              (WebCore::isDeletableElement):
              * editing/DeleteSelectionCommand.cpp:
              (WebCore::DeleteSelectionCommand::removeNode):
              * editing/Editor.cpp:
              (WebCore::Editor::insideVisibleArea):
              * editing/EditorCommand.cpp:
              (WebCore::verticalScrollDistance):
              * html/HTMLAnchorElement.cpp:
              (WebCore::HTMLAnchorElement::isKeyboardFocusable):
              * html/HTMLCanvasElement.cpp:
              (WebCore::HTMLCanvasElement::willDraw):
              * html/HTMLFormControlElement.cpp:
              (WebCore::HTMLFormControlElement::isFocusable):
              * html/HTMLFrameElementBase.cpp:
              (WebCore::HTMLFrameElementBase::width):
              (WebCore::HTMLFrameElementBase::height):
              * html/HTMLImageElement.cpp:
              (WebCore::HTMLImageElement::width):
              (WebCore::HTMLImageElement::height):
              * inspector/InspectorController.cpp:
              (WebCore::InspectorController::drawNodeHighlight):
              * page/AccessibilityRenderObject.cpp:
              (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
              * page/FrameView.cpp:
              (WebCore::FrameView::createScrollbar):
              (WebCore::FrameView::updateDashboardRegions):
              * page/animation/AnimationBase.cpp:
              (WebCore::blendFunc):
              * rendering/HitTestResult.cpp:
              (WebCore::HitTestResult::imageRect):
              * rendering/InlineBox.cpp:
              (WebCore::InlineBox::renderBox):
              (WebCore::InlineBox::adjustPosition):
              * rendering/InlineBox.h:
              * rendering/InlineFlowBox.cpp:
              (WebCore::InlineFlowBox::placeBoxesHorizontally):
              (WebCore::InlineFlowBox::verticallyAlignBoxes):
              (WebCore::InlineFlowBox::placeBoxesVertically):
              * rendering/InlineFlowBox.h:
              * rendering/RenderApplet.cpp:
              (WebCore::RenderApplet::createWidgetIfNecessary):
              * rendering/RenderBlock.cpp:
              (WebCore::RenderBlock::overflowHeight):
              (WebCore::RenderBlock::overflowWidth):
              (WebCore::RenderBlock::overflowRect):
              (WebCore::RenderBlock::isSelfCollapsingBlock):
              (WebCore::RenderBlock::layout):
              (WebCore::RenderBlock::layoutBlock):
              (WebCore::RenderBlock::adjustPositionedBlock):
              (WebCore::RenderBlock::adjustFloatingBlock):
              (WebCore::RenderBlock::handleSpecialChild):
              (WebCore::RenderBlock::handlePositionedChild):
              (WebCore::RenderBlock::handleFloatingChild):
              (WebCore::RenderBlock::handleCompactChild):
              (WebCore::RenderBlock::insertCompactIfNeeded):
              (WebCore::RenderBlock::handleRunInChild):
              (WebCore::RenderBlock::collapseMargins):
              (WebCore::RenderBlock::clearFloatsIfNeeded):
              (WebCore::RenderBlock::estimateVerticalPosition):
              (WebCore::RenderBlock::determineHorizontalPosition):
              (WebCore::RenderBlock::handleBottomOfBlock):
              (WebCore::RenderBlock::layoutBlockChildren):
              (WebCore::RenderBlock::layoutOnlyPositionedObjects):
              (WebCore::RenderBlock::layoutPositionedObjects):
              (WebCore::RenderBlock::markPositionedObjectsForLayout):
              (WebCore::RenderBlock::repaintOverhangingFloats):
              (WebCore::RenderBlock::paint):
              (WebCore::RenderBlock::paintChildren):
              (WebCore::RenderBlock::paintObject):
              (WebCore::RenderBlock::paintFloats):
              (WebCore::RenderBlock::paintContinuationOutlines):
              (WebCore::clipOutPositionedObjects):
              (WebCore::RenderBlock::fillSelectionGaps):
              (WebCore::RenderBlock::fillBlockSelectionGaps):
              (WebCore::RenderBlock::leftSelectionOffset):
              (WebCore::RenderBlock::rightSelectionOffset):
              (WebCore::RenderBlock::insertPositionedObject):
              (WebCore::RenderBlock::removePositionedObject):
              (WebCore::RenderBlock::removePositionedObjects):
              (WebCore::RenderBlock::insertFloatingObject):
              (WebCore::RenderBlock::removeFloatingObject):
              (WebCore::RenderBlock::positionNewFloats):
              (WebCore::RenderBlock::newLine):
              (WebCore::RenderBlock::lowestPosition):
              (WebCore::RenderBlock::rightmostPosition):
              (WebCore::RenderBlock::leftmostPosition):
              (WebCore::RenderBlock::clearFloats):
              (WebCore::RenderBlock::addOverhangingFloats):
              (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
              (WebCore::RenderBlock::getClearDelta):
              (WebCore::RenderBlock::nodeAtPoint):
              (WebCore::RenderBlock::positionForCoordinates):
              (WebCore::RenderBlock::layoutColumns):
              (WebCore::RenderBlock::getBaselineOfFirstLineBox):
              (WebCore::RenderBlock::getBaselineOfLastLineBox):
              (WebCore::getHeightForLineCount):
              (WebCore::RenderBlock::adjustForBorderFit):
              * rendering/RenderBlock.h:
              (WebCore::RenderBlock::FloatWithRect::FloatWithRect):
              (WebCore::RenderBlock::hasOverhangingFloats):
              (WebCore::RenderBlock::CompactInfo::compact):
              (WebCore::RenderBlock::CompactInfo::set):
              * rendering/RenderBox.cpp:
              (WebCore::RenderBox::RenderBox):
              (WebCore::RenderBox::offsetLeft):
              (WebCore::RenderBox::offsetTop):
              (WebCore::RenderBox::offsetParent):
              (WebCore::RenderBox::clientWidth):
              (WebCore::RenderBox::clientHeight):
              (WebCore::RenderBox::scrollWidth):
              (WebCore::RenderBox::scrollHeight):
              (WebCore::RenderBox::scrollLeft):
              (WebCore::RenderBox::scrollTop):
              (WebCore::RenderBox::setScrollLeft):
              (WebCore::RenderBox::setScrollTop):
              (WebCore::RenderBox::absoluteRects):
              (WebCore::RenderBox::absoluteQuads):
              (WebCore::RenderBox::absoluteContentBox):
              (WebCore::RenderBox::absoluteContentQuad):
              (WebCore::RenderBox::absoluteOutlineBounds):
              (WebCore::RenderBox::addFocusRingRects):
              (WebCore::RenderBox::reflectionBox):
              (WebCore::RenderBox::reflectionOffset):
              (WebCore::RenderBox::reflectedRect):
              (WebCore::RenderBox::overrideWidth):
              (WebCore::RenderBox::overrideHeight):
              (WebCore::RenderBox::nodeAtPoint):
              (WebCore::RenderBox::paint):
              (WebCore::RenderBox::maskClipRect):
              (WebCore::RenderBox::repaintLayerRectsForImage):
              (WebCore::RenderBox::paintCustomHighlight):
              (WebCore::RenderBox::getOverflowClipRect):
              (WebCore::RenderBox::getClipRect):
              (WebCore::RenderBox::containingBlockWidth):
              (WebCore::RenderBox::localToAbsolute):
              (WebCore::RenderBox::offsetFromContainer):
              (WebCore::RenderBox::position):
              (WebCore::RenderBox::computeAbsoluteRepaintRect):
              (WebCore::RenderBox::repaintDuringLayoutIfMoved):
              (WebCore::RenderBox::calcWidth):
              (WebCore::RenderBox::calcWidthUsing):
              (WebCore::RenderBox::calcHorizontalMargins):
              (WebCore::RenderBox::calcHeight):
              (WebCore::RenderBox::calcPercentageHeight):
              (WebCore::RenderBox::calcReplacedHeightUsing):
              (WebCore::RenderBox::containingBlockWidthForPositioned):
              (WebCore::RenderBox::containingBlockHeightForPositioned):
              (WebCore::RenderBox::calcAbsoluteHorizontal):
              (WebCore::RenderBox::calcAbsoluteVertical):
              (WebCore::RenderBox::calcAbsoluteVerticalValues):
              (WebCore::RenderBox::calcAbsoluteHorizontalReplaced):
              (WebCore::RenderBox::calcAbsoluteVerticalReplaced):
              (WebCore::RenderBox::localCaretRect):
              (WebCore::RenderBox::lowestPosition):
              (WebCore::RenderBox::rightmostPosition):
              (WebCore::RenderBox::leftmostPosition):
              (WebCore::RenderBox::localTransform):
              * rendering/RenderBox.h:
              (WebCore::):
              (WebCore::RenderBox::x):
              (WebCore::RenderBox::y):
              (WebCore::RenderBox::width):
              (WebCore::RenderBox::height):
              (WebCore::RenderBox::setX):
              (WebCore::RenderBox::setY):
              (WebCore::RenderBox::setWidth):
              (WebCore::RenderBox::setHeight):
              (WebCore::RenderBox::location):
              (WebCore::RenderBox::size):
              (WebCore::RenderBox::setLocation):
              (WebCore::RenderBox::setSize):
              (WebCore::RenderBox::move):
              (WebCore::RenderBox::frameRect):
              (WebCore::RenderBox::setFrameRect):
              (WebCore::RenderBox::borderBoxRect):
              (WebCore::RenderBox::contentBoxRect):
              (WebCore::RenderBox::previousSiblingBox):
              (WebCore::RenderBox::nextSiblingBox):
              (WebCore::RenderBox::parentBox):
              (WebCore::RenderBox::overflowHeight):
              (WebCore::RenderBox::overflowWidth):
              (WebCore::RenderBox::setOverflowHeight):
              (WebCore::RenderBox::setOverflowWidth):
              (WebCore::RenderBox::overflowLeft):
              (WebCore::RenderBox::overflowTop):
              (WebCore::RenderBox::overflowRect):
              (WebCore::RenderBox::contentWidth):
              (WebCore::RenderBox::contentHeight):
              (WebCore::RenderBox::offsetWidth):
              (WebCore::RenderBox::offsetHeight):
              (WebCore::RenderBox::clientLeft):
              (WebCore::RenderBox::clientTop):
              (WebCore::RenderBox::availableWidth):
              (WebCore::RenderBox::tryLayoutDoingPositionedMovementOnly):
              * rendering/RenderButton.cpp:
              (WebCore::RenderButton::controlClipRect):
              * rendering/RenderContainer.cpp:
              (WebCore::RenderContainer::layout):
              (WebCore::RenderContainer::positionForCoordinates):
              * rendering/RenderContainer.h:
              (WebCore::RenderContainer::firstChildBox):
              (WebCore::RenderContainer::lastChildBox):
              * rendering/RenderFieldset.cpp:
              (WebCore::RenderFieldset::calcPrefWidths):
              (WebCore::RenderFieldset::layoutLegend):
              (WebCore::RenderFieldset::findLegend):
              (WebCore::RenderFieldset::paintBoxDecorations):
              (WebCore::RenderFieldset::paintMask):
              * rendering/RenderFieldset.h:
              * rendering/RenderFileUploadControl.cpp:
              (WebCore::RenderFileUploadControl::maxFilenameWidth):
              (WebCore::RenderFileUploadControl::paintObject):
              * rendering/RenderFlexibleBox.cpp:
              (WebCore::FlexBoxIterator::FlexBoxIterator):
              (WebCore::FlexBoxIterator::first):
              (WebCore::FlexBoxIterator::next):
              (WebCore::RenderFlexibleBox::calcHorizontalPrefWidths):
              (WebCore::RenderFlexibleBox::calcVerticalPrefWidths):
              (WebCore::RenderFlexibleBox::layoutBlock):
              (WebCore::RenderFlexibleBox::layoutHorizontalBox):
              (WebCore::RenderFlexibleBox::layoutVerticalBox):
              (WebCore::RenderFlexibleBox::placeChild):
              (WebCore::RenderFlexibleBox::allowedChildFlex):
              * rendering/RenderFlexibleBox.h:
              * rendering/RenderFlow.cpp:
              (WebCore::RenderFlow::absoluteClippedOverflowRect):
              (WebCore::RenderFlow::lowestPosition):
              (WebCore::RenderFlow::rightmostPosition):
              (WebCore::RenderFlow::leftmostPosition):
              (WebCore::RenderFlow::localCaretRect):
              (WebCore::RenderFlow::addFocusRingRects):
              * rendering/RenderFrameSet.cpp:
              (WebCore::RenderFrameSet::paint):
              (WebCore::RenderFrameSet::layout):
              (WebCore::RenderFrameSet::positionFrames):
              * rendering/RenderHTMLCanvas.cpp:
              (WebCore::RenderHTMLCanvas::paintReplaced):
              (WebCore::RenderHTMLCanvas::canvasSizeChanged):
              * rendering/RenderImage.cpp:
              (WebCore::RenderImage::imageChanged):
              (WebCore::RenderImage::paintReplaced):
              (WebCore::RenderImage::nodeAtPoint):
              (WebCore::RenderImage::calcReplacedWidth):
              * rendering/RenderInline.cpp:
              (WebCore::RenderInline::absoluteRects):
              (WebCore::RenderInline::boundingBoxWidth):
              (WebCore::RenderInline::boundingBoxHeight):
              (WebCore::RenderInline::positionForCoordinates):
              * rendering/RenderInline.h:
              (WebCore::RenderInline::offsetWidth):
              (WebCore::RenderInline::offsetHeight):
              * rendering/RenderLayer.cpp:
              (WebCore::RenderLayer::updateTransform):
              (WebCore::RenderLayer::updateLayerPosition):
              (WebCore::RenderLayer::scrollbarCornerPresent):
              (WebCore::RenderLayer::createScrollbar):
              (WebCore::RenderLayer::positionOverflowControls):
              (WebCore::RenderLayer::paintScrollCorner):
              (WebCore::RenderLayer::paintResizer):
              (WebCore::RenderLayer::paintLayer):
              (WebCore::RenderLayer::hitTestLayer):
              (WebCore::RenderLayer::calculateRects):
              (WebCore::RenderLayer::boundingBox):
              * rendering/RenderListBox.cpp:
              (WebCore::RenderListBox::calcHeight):
              (WebCore::RenderListBox::controlClipRect):
              * rendering/RenderListItem.cpp:
              (WebCore::RenderListItem::positionListMarker):
              (WebCore::RenderListItem::paint):
              * rendering/RenderListMarker.cpp:
              (WebCore::RenderListMarker::paint):
              (WebCore::RenderListMarker::layout):
              (WebCore::RenderListMarker::imageChanged):
              (WebCore::RenderListMarker::getRelativeMarkerRect):
              (WebCore::RenderListMarker::selectionRect):
              * rendering/RenderMarquee.cpp:
              (WebCore::RenderMarquee::computePosition):
              * rendering/RenderMedia.cpp:
              (WebCore::RenderMedia::layout):
              (WebCore::RenderMedia::lowestPosition):
              (WebCore::RenderMedia::rightmostPosition):
              (WebCore::RenderMedia::leftmostPosition):
              * rendering/RenderMenuList.cpp:
              (WebCore::RenderMenuList::controlClipRect):
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::RenderObject):
              (WebCore::RenderObject::markAllDescendantsWithFloatsForLayout):
              (WebCore::RenderObject::paintOutline):
              (WebCore::RenderObject::addLineBoxRects):
              (WebCore::RenderObject::absoluteBoundingBoxRect):
              (WebCore::RenderObject::addAbsoluteRectForLayer):
              (WebCore::RenderObject::paintingRootRect):
              (WebCore::RenderObject::container):
              (WebCore::RenderObject::removeFromObjectLists):
              (WebCore::RenderObject::updateHitTestResult):
              (WebCore::RenderObject::addDashboardRegions):
              (WebCore::RenderObject::localTransform):
              * rendering/RenderObject.h:
              (WebCore::RenderObject::isBox):
              (WebCore::RenderObject::hasMask):
              (WebCore::RenderObject::setIsText):
              (WebCore::RenderObject::setIsBox):
              (WebCore::RenderObject::borderTop):
              (WebCore::RenderObject::borderBottom):
              (WebCore::RenderObject::absoluteRects):
              (WebCore::RenderObject::collectAbsoluteLineBoxQuads):
              (WebCore::RenderObject::absoluteQuads):
              (WebCore::RenderObject::hasReflection):
              (WebCore::RenderObject::addFocusRingRects):
              (WebCore::RenderObject::absoluteOutlineBounds):
              * rendering/RenderPart.cpp:
              (WebCore::RenderPart::updateWidgetPosition):
              * rendering/RenderPath.cpp:
              (WebCore::RenderPath::layout):
              (WebCore::RenderPath::paint):
              (WebCore::RenderPath::absoluteOutlineBounds):
              * rendering/RenderPath.h:
              * rendering/RenderReplaced.cpp:
              (WebCore::RenderReplaced::layout):
              (WebCore::RenderReplaced::paint):
              (WebCore::RenderReplaced::shouldPaint):
              (WebCore::RenderReplaced::positionForCoordinates):
              (WebCore::RenderReplaced::localSelectionRect):
              (WebCore::RenderReplaced::adjustOverflowForBoxShadow):
              (WebCore::RenderReplaced::overflowRect):
              * rendering/RenderReplica.cpp:
              (WebCore::RenderReplica::layout):
              (WebCore::RenderReplica::calcPrefWidths):
              (WebCore::RenderReplica::paint):
              * rendering/RenderSVGContainer.cpp:
              (WebCore::RenderSVGContainer::paint):
              (WebCore::RenderSVGContainer::absoluteOutlineBounds):
              * rendering/RenderSVGContainer.h:
              (WebCore::RenderSVGContainer::width):
              (WebCore::RenderSVGContainer::height):
              * rendering/RenderSVGImage.cpp:
              (WebCore::RenderSVGImage::layout):
              * rendering/RenderSVGInlineText.cpp:
              (WebCore::RenderSVGInlineText::computeAbsoluteRectForRange):
              (WebCore::RenderSVGInlineText::positionForCoordinates):
              * rendering/RenderSVGRoot.cpp:
              (WebCore::RenderSVGRoot::layout):
              (WebCore::RenderSVGRoot::applyContentTransforms):
              (WebCore::RenderSVGRoot::paint):
              (WebCore::RenderSVGRoot::absoluteTransform):
              (WebCore::RenderSVGRoot::nodeAtPoint):
              * rendering/RenderSVGTSpan.cpp:
              (WebCore::RenderSVGTSpan::absoluteRects):
              (WebCore::RenderSVGTSpan::absoluteQuads):
              * rendering/RenderSVGText.cpp:
              (WebCore::RenderSVGText::layout):
              (WebCore::RenderSVGText::relativeBBox):
              * rendering/RenderSVGTextPath.cpp:
              (WebCore::RenderSVGTextPath::absoluteRects):
              (WebCore::RenderSVGTextPath::absoluteQuads):
              * rendering/RenderSVGViewportContainer.cpp:
              (WebCore::RenderSVGViewportContainer::nodeAtPoint):
              * rendering/RenderScrollbar.cpp:
              (WebCore::RenderScrollbar::createCustomScrollbar):
              (WebCore::RenderScrollbar::RenderScrollbar):
              (WebCore::RenderScrollbar::setParent):
              * rendering/RenderScrollbar.h:
              (WebCore::RenderScrollbar::owningRenderer):
              * rendering/RenderScrollbarPart.cpp:
              (WebCore::RenderScrollbarPart::layout):
              (WebCore::RenderScrollbarPart::layoutHorizontalPart):
              (WebCore::RenderScrollbarPart::layoutVerticalPart):
              (WebCore::RenderScrollbarPart::computeScrollbarWidth):
              (WebCore::RenderScrollbarPart::computeScrollbarHeight):
              (WebCore::RenderScrollbarPart::paintIntoRect):
              * rendering/RenderSlider.cpp:
              (WebCore::HTMLSliderThumbElement::defaultEventHandler):
              (WebCore::RenderSlider::layout):
              (WebCore::RenderSlider::mouseEventIsInThumb):
              (WebCore::RenderSlider::positionForOffset):
              (WebCore::RenderSlider::trackSize):
              * rendering/RenderTable.cpp:
              (WebCore::RenderTable::calcWidth):
              (WebCore::RenderTable::layout):
              (WebCore::RenderTable::paint):
              (WebCore::RenderTable::getBaselineOfFirstLineBox):
              * rendering/RenderTableCell.cpp:
              (WebCore::RenderTableCell::updateWidth):
              (WebCore::RenderTableCell::computeAbsoluteRepaintRect):
              (WebCore::RenderTableCell::localToAbsolute):
              (WebCore::RenderTableCell::absoluteToLocal):
              (WebCore::RenderTableCell::localToAbsoluteQuad):
              (WebCore::RenderTableCell::paint):
              (WebCore::RenderTableCell::paintBackgroundsBehindCell):
              * rendering/RenderTableCell.h:
              * rendering/RenderTableSection.cpp:
              (WebCore::RenderTableSection::addChild):
              (WebCore::RenderTableSection::addCell):
              (WebCore::RenderTableSection::setCellWidths):
              (WebCore::RenderTableSection::calcRowHeight):
              (WebCore::RenderTableSection::layoutRows):
              (WebCore::RenderTableSection::lowestPosition):
              (WebCore::RenderTableSection::rightmostPosition):
              (WebCore::RenderTableSection::leftmostPosition):
              (WebCore::RenderTableSection::getBaselineOfFirstLineBox):
              (WebCore::RenderTableSection::paint):
              (WebCore::RenderTableSection::recalcCells):
              (WebCore::RenderTableSection::nodeAtPoint):
              * rendering/RenderTableSection.h:
              (WebCore::RenderTableSection::overflowWidth):
              (WebCore::RenderTableSection::overflowHeight):
              * rendering/RenderText.cpp:
              (WebCore::RenderText::RenderText):
              (WebCore::RenderText::boundingBoxX):
              (WebCore::RenderText::boundingBoxY):
              (WebCore::RenderText::firstRunX):
              (WebCore::RenderText::firstRunY):
              (WebCore::RenderText::boundingBoxHeight):
              (WebCore::RenderText::boundingBoxWidth):
              * rendering/RenderText.h:
              * rendering/RenderTextControl.cpp:
              (WebCore::RenderTextControl::textBlockHeight):
              (WebCore::RenderTextControl::textBlockWidth):
              (WebCore::RenderTextControl::setSelectionRange):
              (WebCore::RenderTextControl::calcHeight):
              (WebCore::RenderTextControl::hitInnerTextBlock):
              (WebCore::RenderTextControl::controlClipRect):
              * rendering/RenderTextControlMultiLine.cpp:
              (WebCore::RenderTextControlMultiLine::layout):
              (WebCore::RenderTextControlMultiLine::adjustControlHeightBasedOnLineHeight):
              * rendering/RenderTextControlSingleLine.cpp:
              (WebCore::RenderTextControlSingleLine::paint):
              (WebCore::RenderTextControlSingleLine::layout):
              (WebCore::RenderTextControlSingleLine::nodeAtPoint):
              (WebCore::RenderTextControlSingleLine::forwardEvent):
              (WebCore::RenderTextControlSingleLine::textBlockWidth):
              (WebCore::RenderTextControlSingleLine::adjustControlHeightBasedOnLineHeight):
              (WebCore::RenderTextControlSingleLine::clientPaddingLeft):
              (WebCore::RenderTextControlSingleLine::clientPaddingRight):
              * rendering/RenderTheme.cpp:
              (WebCore::RenderTheme::hitTestMediaControlPart):
              (WebCore::RenderTheme::baselinePosition):
              * rendering/RenderThemeMac.mm:
              (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
              (WebCore::RenderThemeMac::paintSearchFieldResultsDecoration):
              (WebCore::RenderThemeMac::paintSearchFieldResultsButton):
              (WebCore::RenderThemeMac::hitTestMediaControlPart):
              * rendering/RenderTreeAsText.cpp:
              (WebCore::operator<<):
              * rendering/RenderVideo.cpp:
              (WebCore::RenderVideo::videoBox):
              * rendering/RenderView.cpp:
              (WebCore::RenderView::RenderView):
              (WebCore::RenderView::calcHeight):
              (WebCore::RenderView::calcWidth):
              (WebCore::RenderView::layout):
              (WebCore::RenderView::viewRect):
              (WebCore::RenderView::docHeight):
              (WebCore::RenderView::docWidth):
              (WebCore::RenderView::setBestTruncatedAt):
              * rendering/RenderView.h:
              * rendering/RenderWidget.cpp:
              (WebCore::RenderWidget::paint):
              (WebCore::RenderWidget::updateWidgetPosition):
              (WebCore::RenderWidget::nodeAtPoint):
              * rendering/RootInlineBox.h:
              (WebCore::RootInlineBox::floats):
              (WebCore::RootInlineBox::floatsPtr):
              * rendering/SVGInlineFlowBox.cpp:
              (WebCore::SVGInlineFlowBox::verticallyAlignBoxes):
              * rendering/SVGInlineFlowBox.h:
              * rendering/SVGRenderTreeAsText.cpp:
              (WebCore::operator<<):
              (WebCore::write):
              * rendering/SVGRootInlineBox.cpp:
              (WebCore::SVGRootInlineBox::verticallyAlignBoxes):
              (WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
              (WebCore::SVGRootInlineBox::layoutInlineBoxes):
              * rendering/SVGRootInlineBox.h:
              * rendering/bidi.cpp:
              (WebCore::RenderBlock::computeHorizontalPositionsForLine):
              (WebCore::RenderBlock::computeVerticalPositionsForLine):
              (WebCore::RenderBlock::layoutInlineChildren):
              (WebCore::RenderBlock::determineStartPosition):
              (WebCore::RenderBlock::matchedEndLine):
              (WebCore::RenderBlock::skipTrailingWhitespace):
              (WebCore::RenderBlock::skipLeadingWhitespace):
              (WebCore::RenderBlock::fitBelowFloats):
              (WebCore::RenderBlock::findNextLineBreak):
              (WebCore::RenderBlock::checkLinesForOverflow):
              * svg/SVGLength.cpp:
              (WebCore::SVGLength::PercentageOfViewport):
      
      WebKit/mac:
      
      2009-01-21  David Hyatt  <hyatt@apple.com>
      
              Devirtualize width/height/x/y on RenderObject and move the methods to RenderBox.
      
              Reviewed by Eric Seidel and Darin Adler
      
              * WebView/WebRenderNode.mm:
              (copyRenderNode):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@40107 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d885df72
  8. 16 Oct, 2008 1 commit
    • hyatt@apple.com's avatar
      2008-10-16 David Hyatt <hyatt@apple.com> · dec0cbf2
      hyatt@apple.com authored
              https://bugs.webkit.org/attachment.cgi?bugid=21647
      
              Make RenderStyle inherit from RefCounted so that it works with RefPtr.  RenderStyle was being malloced
              out of the RenderArena.  Years and years ago (before TCMalloc), the plan was to make RenderStyles and
              all their associated sub-structs use the arena.  However only the RenderStyle itself was ever changed
              to use the arena.
      
              At a later point style sharing was implemented, which made using the arena for styles pretty pointless,
              as the bulk of the styles on a given page are actually shared.  Not ever making the sub-structs use the
              arena also limited the usefulness.
      
              Now that we have RefPtr/PassRefPtr to eliminate manual ref/deref and now that we use TCMalloc for fast
              mallocs, there is no reason to keep RenderStyles in the arena.  The benefits of being able to eliminate
              manual ref/deref far outweigh keeping them in the arena.
      
              Reviewed by Adam Roben
      
              * css/CSSStyleSelector.cpp:
              (WebCore::CSSStyleSelector::CSSStyleSelector):
              (WebCore::CSSStyleSelector::~CSSStyleSelector):
              (WebCore::CSSStyleSelector::styleForElement):
              (WebCore::CSSStyleSelector::keyframeStylesForAnimation):
              (WebCore::CSSStyleSelector::pseudoStyleForElement):
              These methods now return a PassRefPtr.  They will null out the m_style variable as they hand it back
              so that it isn't left pointing to the previous style resolve RenderStyle (which is what the old code did).
      
              (WebCore::CSSStyleSelector::updateFont):
              (WebCore::CSSStyleSelector::checkSelector):
              (WebCore::CSSStyleSelector::applyProperty):
              (WebCore::CSSStyleSelector::mapFillSize):
              (WebCore::CSSStyleSelector::mapFillXPosition):
              (WebCore::CSSStyleSelector::mapFillYPosition):
              * css/CSSStyleSelector.h:
              (WebCore::CSSStyleSelector::style):
              * dom/Document.cpp:
              (WebCore::Document::recalcStyle):
              * dom/Element.cpp:
              (WebCore::Element::styleForRenderer):
              (WebCore::Element::recalcStyle):
              (WebCore::Element::computedStyle):
              * dom/Element.h:
              * dom/ElementRareData.h:
              (WebCore::ElementRareData::ElementRareData):
              (WebCore::ElementRareData::resetComputedStyle):
              * dom/Node.cpp:
              (WebCore::Node::diff):
              (WebCore::Node::createRendererIfNeeded):
              (WebCore::Node::styleForRenderer):
              (WebCore::Node::setRenderStyle):
              * dom/Node.h:
              * html/CanvasRenderingContext2D.cpp:
              (WebCore::CanvasRenderingContext2D::setFont):
              * html/HTMLOptGroupElement.cpp:
              (WebCore::HTMLOptGroupElement::attach):
              (WebCore::HTMLOptGroupElement::detach):
              (WebCore::HTMLOptGroupElement::setRenderStyle):
              (WebCore::HTMLOptGroupElement::nonRendererRenderStyle):
              * html/HTMLOptGroupElement.h:
              * html/HTMLOptionElement.cpp:
              (WebCore::HTMLOptionElement::attach):
              (WebCore::HTMLOptionElement::detach):
              (WebCore::HTMLOptionElement::setRenderStyle):
              (WebCore::HTMLOptionElement::nonRendererRenderStyle):
              * html/HTMLOptionElement.h:
              * page/animation/AnimationBase.h:
              (WebCore::AnimationBase::animate):
              * page/animation/AnimationController.cpp:
              (WebCore::AnimationController::updateAnimations):
              * page/animation/AnimationController.h:
              * page/animation/CompositeAnimation.cpp:
              (WebCore::CompositeAnimationPrivate::updateTransitions):
              (WebCore::CompositeAnimationPrivate::updateKeyframeAnimations):
              (WebCore::CompositeAnimationPrivate::animate):
              (WebCore::CompositeAnimation::animate):
              * page/animation/CompositeAnimation.h:
              * page/animation/ImplicitAnimation.cpp:
              (WebCore::ImplicitAnimation::ImplicitAnimation):
              (WebCore::ImplicitAnimation::~ImplicitAnimation):
              (WebCore::ImplicitAnimation::animate):
              (WebCore::ImplicitAnimation::reset):
              (WebCore::ImplicitAnimation::isTargetPropertyEqual):
              (WebCore::ImplicitAnimation::blendPropertyValueInStyle):
              * page/animation/ImplicitAnimation.h:
              (WebCore::ImplicitAnimation::create):
              * page/animation/KeyframeAnimation.cpp:
              (WebCore::KeyframeAnimation::KeyframeAnimation):
              (WebCore::KeyframeAnimation::~KeyframeAnimation):
              (WebCore::KeyframeAnimation::animate):
              (WebCore::KeyframeAnimation::validateTransformFunctionList):
              * page/animation/KeyframeAnimation.h:
              (WebCore::KeyframeAnimation::create):
              (WebCore::KeyframeAnimation::unanimatedStyle):
              * rendering/InlineTextBox.cpp:
              (WebCore::InlineTextBox::paint):
              * rendering/MediaControlElements.cpp:
              (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
              (WebCore::MediaControlInputElement::MediaControlInputElement):
              * rendering/RenderBlock.cpp:
              (WebCore::RenderBlock::styleDidChange):
              (WebCore::RenderBlock::updateFirstLetter):
              * rendering/RenderContainer.cpp:
              (WebCore::RenderContainer::addChild):
              (WebCore::RenderContainer::updateBeforeAfterContentForContainer):
              * rendering/RenderFileUploadControl.cpp:
              (WebCore::RenderFileUploadControl::updateFromElement):
              (WebCore::RenderFileUploadControl::createButtonStyle):
              * rendering/RenderFileUploadControl.h:
              * rendering/RenderFlow.cpp:
              (WebCore::RenderFlow::createAnonymousFlow):
              * rendering/RenderFlow.h:
              * rendering/RenderInline.cpp:
              (WebCore::RenderInline::addChildToFlow):
              * rendering/RenderLayer.cpp:
              (WebCore::RenderLayer::updateScrollCornerStyle):
              (WebCore::RenderLayer::updateResizerStyle):
              (WebCore::RenderLayer::updateReflectionStyle):
              * rendering/RenderListItem.cpp:
              (WebCore::RenderListItem::styleDidChange):
              * rendering/RenderMedia.cpp:
              (WebCore::RenderMedia::createPanel):
              (WebCore::RenderMedia::createTimeDisplay):
              (WebCore::RenderMedia::changeOpacity):
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::selectionBackgroundColor):
              (WebCore::RenderObject::selectionForegroundColor):
              (WebCore::RenderObject::createAnonymousBlock):
              (WebCore::RenderObject::setAnimatableStyle):
              (WebCore::RenderObject::setStyle):
              (WebCore::RenderObject::setStyleInternal):
              (WebCore::RenderObject::arenaDelete):
              (WebCore::RenderObject::firstLineStyle):
              (WebCore::RenderObject::getPseudoStyle):
              * rendering/RenderObject.h:
              (WebCore::RenderObject::style):
              * rendering/RenderSVGBlock.cpp:
              (WebCore::RenderSVGBlock::setStyle):
              * rendering/RenderSVGBlock.h:
              * rendering/RenderScrollbar.cpp:
              (WebCore::RenderScrollbar::getScrollbarPseudoStyle):
              (WebCore::RenderScrollbar::updateScrollbarPart):
              * rendering/RenderScrollbar.h:
              * rendering/RenderSlider.cpp:
              (WebCore::RenderSlider::styleDidChange):
              (WebCore::RenderSlider::createThumbStyle):
              (WebCore::RenderSlider::updateFromElement):
              * rendering/RenderSlider.h:
              * rendering/RenderTable.cpp:
              (WebCore::RenderTable::addChild):
              * rendering/RenderTableRow.cpp:
              (WebCore::RenderTableRow::addChild):
              * rendering/RenderTableSection.cpp:
              (WebCore::RenderTableSection::addChild):
              * rendering/RenderTextControl.cpp:
              (WebCore::RenderTextControl::styleDidChange):
              (WebCore::RenderTextControl::createInnerBlockStyle):
              (WebCore::RenderTextControl::createInnerTextStyle):
              (WebCore::RenderTextControl::createResultsButtonStyle):
              (WebCore::RenderTextControl::createCancelButtonStyle):
              (WebCore::RenderTextControl::createSubtreeIfNeeded):
              (WebCore::RenderTextControl::updatePlaceholderVisibility):
              * rendering/RenderTextControl.h:
              * rendering/TextControlInnerElements.cpp:
              (WebCore::TextControlInnerElement::attachInnerElement):
              * rendering/TextControlInnerElements.h:
              * rendering/style/KeyframeList.cpp:
              (WebCore::KeyframeList::clear):
              (WebCore::KeyframeList::operator==):
              (WebCore::KeyframeList::insert):
              * rendering/style/KeyframeList.h:
              (WebCore::KeyframeValue::KeyframeValue):
              (WebCore::KeyframeValue::~KeyframeValue):
              (WebCore::KeyframeValue::key):
              (WebCore::KeyframeValue::style):
              * rendering/style/RenderStyle.cpp:
              (WebCore::defaultStyle):
              (WebCore::RenderStyle::create):
              (WebCore::RenderStyle::createDefaultStyle):
              (WebCore::RenderStyle::clone):
              (WebCore::RenderStyle::RenderStyle):
              (WebCore::RenderStyle::getCachedPseudoStyle):
              (WebCore::RenderStyle::addCachedPseudoStyle):
              * rendering/style/RenderStyle.h:
              (WebCore::):
              (WebCore::InheritedFlags::operator!=):
              * svg/SVGClipPathElement.cpp:
              (WebCore::SVGClipPathElement::canvasResource):
              * svg/SVGGradientElement.cpp:
              (WebCore::SVGGradientElement::buildStops):
              * svg/SVGStyledElement.cpp:
              (WebCore::SVGStyledElement::resolveStyle):
              * svg/SVGStyledElement.h:
              * svg/SVGUseElement.cpp:
              (WebCore::SVGUseElement::recalcStyle):
              (WebCore::SVGUseElement::attachShadowTree):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37637 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      dec0cbf2
  9. 11 Oct, 2008 1 commit
    • hyatt@apple.com's avatar
      2008-10-11 David Hyatt <hyatt@apple.com> · f245267a
      hyatt@apple.com authored
              Add support for both positive and negative margins to tracks and track pieces.
      
              Reviewed by Tim Hatcher
      
              * platform/ScrollbarThemeComposite.cpp:
              (WebCore::ScrollbarThemeComposite::paint):
              (WebCore::ScrollbarThemeComposite::hitTest):
              (WebCore::ScrollbarThemeComposite::splitTrack):
              (WebCore::ScrollbarThemeComposite::trackPieceRects):
              (WebCore::ScrollbarThemeComposite::trackPosition):
              (WebCore::ScrollbarThemeComposite::trackLength):
              * platform/ScrollbarThemeComposite.h:
              (WebCore::ScrollbarThemeComposite::adjustTrackPieceRect):
              * rendering/RenderScrollbar.cpp:
              (WebCore::RenderScrollbar::trackRect):
              (WebCore::RenderScrollbar::trackPieceRectWithMargins):
              * rendering/RenderScrollbar.h:
              * rendering/RenderScrollbarPart.cpp:
              (WebCore::RenderScrollbarPart::computeScrollbarWidth):
              (WebCore::RenderScrollbarPart::computeScrollbarHeight):
              * rendering/RenderScrollbarTheme.cpp:
              (WebCore::RenderScrollbarTheme::adjustTrackPieceRect):
              * rendering/RenderScrollbarTheme.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37507 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f245267a
  10. 10 Oct, 2008 5 commits
    • hyatt@apple.com's avatar
      2008-10-10 David Hyatt <hyatt@apple.com> · e8609a25
      hyatt@apple.com authored
              Make sure specialized ::scrollbar rules are still triggering custom scrollbar creation.
      
              Reviewed by Tim Hatcher
      
              * rendering/RenderLayer.cpp:
              (WebCore::RenderLayer::createScrollbar):
              * rendering/RenderScrollbar.cpp:
              (WebCore::RenderScrollbar::createCustomScrollbar):
              (WebCore::RenderScrollbar::RenderScrollbar):
              (WebCore::RenderScrollbar::setParent):
              (WebCore::RenderScrollbar::updateScrollbarParts):
              (WebCore::RenderScrollbar::updateScrollbarPart):
              * rendering/RenderScrollbar.h:
              * rendering/style/RenderStyle.h:
              (WebCore::RenderStyle::):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37501 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e8609a25
    • hyatt@apple.com's avatar
      2008-10-10 David Hyatt <hyatt@apple.com> · fca034d3
      hyatt@apple.com authored
              Make CSS scrollbars respect the OS setting regarding where buttons should be placed.
      
              Reviewed by Sam Weinig
      
              No test case possible, since the OS setting can vary.
      
              * css/CSSSelector.cpp:
              (WebCore::CSSSelector::extractPseudoType):
              * css/CSSSelector.h:
              (WebCore::CSSSelector::):
              * css/CSSStyleSelector.cpp:
              (WebCore::CSSStyleSelector::SelectorChecker::checkScrollbarPseudoClass):
              * platform/Scrollbar.h:
              (WebCore::Scrollbar::styleChanged):
              * platform/mac/ScrollbarThemeMac.mm:
              (+[ScrollbarPrefsObserver appearancePrefsChanged:]):
              (WebCore::ScrollbarThemeMac::preferencesChanged):
              * rendering/RenderLayer.cpp:
              (WebCore::RenderLayer::invalidateScrollbarRect):
              * rendering/RenderScrollbar.cpp:
              (WebCore::RenderScrollbar::styleChanged):
              (WebCore::RenderScrollbar::updateScrollbarPart):
              * rendering/RenderScrollbar.h:
              * rendering/RenderScrollbarTheme.h:
              (WebCore::RenderScrollbarTheme::buttonsPlacement):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37490 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fca034d3
    • hyatt@apple.com's avatar
      2008-10-10 David Hyatt <hyatt@apple.com> · c92f8c29
      hyatt@apple.com authored
              Allow the track part to have negative margins so that it can slightly overlap buttons.  This
              is necessary to emulate the Aqua look in CSS.
      
              Reviewed by Sam Weinig
      
              * platform/ScrollbarThemeComposite.cpp:
              (WebCore::ScrollbarThemeComposite::paint):
              (WebCore::ScrollbarThemeComposite::hitTest):
              * rendering/RenderScrollbar.cpp:
              (WebCore::RenderScrollbar::setHoveredPart):
              (WebCore::RenderScrollbar::trackRect):
              * rendering/RenderScrollbar.h:
              * rendering/RenderScrollbarPart.cpp:
              (WebCore::RenderScrollbarPart::computeScrollbarWidth):
              (WebCore::RenderScrollbarPart::computeScrollbarHeight):
              * rendering/RenderScrollbarTheme.cpp:
              (WebCore::RenderScrollbarTheme::backButtonRect):
              (WebCore::RenderScrollbarTheme::forwardButtonRect):
              (WebCore::RenderScrollbarTheme::trackRect):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37487 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c92f8c29
    • hyatt@apple.com's avatar
      2008-10-10 David Hyatt <hyatt@apple.com> · f9e710bb
      hyatt@apple.com authored
              https://bugs.webkit.org/show_bug.cgi?id=21527
      
              Make CSS scrollbars support :not, :hover and :active.
      
              Reviewed by Adam Roben
      
              Added WebCore/manual-tests/scrollbar-hover-active.html
      
              * css/CSSStyleSelector.cpp:
              (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
              (WebCore::CSSStyleSelector::SelectorChecker::checkScrollbarPseudoClass):
              * platform/Scrollbar.cpp:
              (WebCore::Scrollbar::autoscrollPressedPart):
              (WebCore::Scrollbar::startTimerIfNeeded):
              (WebCore::Scrollbar::setHoveredPart):
              (WebCore::Scrollbar::setPressedPart):
              (WebCore::Scrollbar::mouseMoved):
              (WebCore::Scrollbar::mouseExited):
              (WebCore::Scrollbar::mouseUp):
              (WebCore::Scrollbar::mouseDown):
              * platform/Scrollbar.h:
              * rendering/RenderScrollbar.cpp:
              (WebCore::RenderScrollbar::setHoveredPart):
              (WebCore::RenderScrollbar::setPressedPart):
              (WebCore::RenderScrollbar::updateScrollbarParts):
              (WebCore::pseudoForScrollbarPart):
              (WebCore::RenderScrollbar::updateScrollbarPart):
              * rendering/RenderScrollbar.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37486 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f9e710bb
    • hyatt@apple.com's avatar
      WebCore: · e3803263
      hyatt@apple.com authored
      2008-10-09  David Hyatt  <hyatt@apple.com>
      
              Add support for scrollbar orientation as a pseudoclass.  Add support for whether or not the scrollbar
              is active as well.
      
              Reviewed by Tim Hatcher
      
              Added scrollbars/scrollbar-orientation.html
      
              * css/CSSSelector.cpp:
              (WebCore::CSSSelector::extractPseudoType):
              * css/CSSSelector.h:
              (WebCore::CSSSelector::):
              * css/CSSStyleSelector.cpp:
              (WebCore::CSSStyleSelector::SelectorChecker::checkScrollbarPseudoClass):
              * platform/Scrollbar.cpp:
              (WebCore::Scrollbar::isWindowActive):
              * platform/Scrollbar.h:
              * rendering/RenderScrollbar.cpp:
              (WebCore::RenderScrollbar::paint):
              (WebCore::RenderScrollbar::partForStyleResolve):
              * rendering/RenderScrollbar.h:
      
      LayoutTests:
      
      2008-10-09  David Hyatt  <hyatt@apple.com>
      
              Add layout test for scrollbars honoring orientation and window active state.
      
              Reviewed by Tim Hatcher
      
              * platform/mac/scrollbars/scrollbar-orientation-expected.checksum: Added.
              * platform/mac/scrollbars/scrollbar-orientation-expected.png: Added.
              * platform/mac/scrollbars/scrollbar-orientation-expected.txt: Added.
              * scrollbars/scrollbar-orientation.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37475 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e3803263
  11. 09 Oct, 2008 3 commits
    • hyatt@apple.com's avatar
      WebCore: · e784a798
      hyatt@apple.com authored
      2008-10-09  David Hyatt  <hyatt@apple.com>
      
              Add support for pseudo classes on scrollbar pseudo elements.  As an initial proof of concept only
              :enabled/:disabled are supported.  More pseudo classes will follow quickly now that this works.
      
              Reviewed by Tim Hatcher
      
              Added scrollbars/disabled-scrollbar.html
      
              * css/CSSStyleSelector.cpp:
              (WebCore::CSSStyleSelector::SelectorChecker::checkSelector):
              (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
              (WebCore::CSSStyleSelector::SelectorChecker::checkScrollbarPseudoClass):
              * css/CSSStyleSelector.h:
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::getPseudoStyle):
              * rendering/RenderObject.h:
              * rendering/RenderScrollbar.cpp:
              (WebCore::RenderScrollbar::setEnabled):
              (WebCore::RenderScrollbar::scrollbarForStyleResolve):
              (WebCore::RenderScrollbar::getScrollbarPseudoStyle):
              (WebCore::RenderScrollbar::paintPart):
              * rendering/RenderScrollbar.h:
      
      LayoutTests:
      
      2008-10-09  David Hyatt  <hyatt@apple.com>
      
              Add test case for disabled scrollbars.
      
              Reviewed by Tim Hatcher
      
              * platform/mac/scrollbars/disabled-scrollbar-expected.checksum: Added.
              * platform/mac/scrollbars/disabled-scrollbar-expected.png: Added.
              * platform/mac/scrollbars/disabled-scrollbar-expected.txt: Added.
              * scrollbars/disabled-scrollbar.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37472 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e784a798
    • hyatt@apple.com's avatar
      2008-10-09 David Hyatt <hyatt@apple.com> · b2063c19
      hyatt@apple.com authored
              Make sure to destroy a custom scrollbar's RenderObject's before the arena goes away.  When our widget
              parent is nulled out is a good time.
      
              Reviewed by Oliver Hunt
      
              * rendering/RenderScrollbar.cpp:
              (WebCore::RenderScrollbar::~RenderScrollbar):
              (WebCore::RenderScrollbar::setParent):
              (WebCore::RenderScrollbar::updateScrollbarPart):
              * rendering/RenderScrollbar.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37463 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b2063c19
    • hyatt@apple.com's avatar
      WebCore: · 2e4835da
      hyatt@apple.com authored
      2008-10-09  David Hyatt  <hyatt@apple.com>
      
              https://bugs.webkit.org/show_bug.cgi?id=21446
      
              This patch gets CSS scrollbars up and limping.  There's no way to distinguish between states or between
              orientation and back vs. forward on the buttons, but it's a start.
      
              Reviewed by Oliver Hunt
      
              Added scrollbars/basic-scrollbar.html
      
              * WebCore.xcodeproj/project.pbxproj:
              * css/CSSSelector.cpp:
              (WebCore::CSSSelector::extractPseudoType):
              * css/CSSSelector.h:
              (WebCore::CSSSelector::):
              * css/CSSStyleSelector.cpp:
              (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
              * platform/ScrollTypes.h:
              (WebCore::):
              * platform/Scrollbar.h:
              (WebCore::Scrollbar::styleChanged):
              * platform/ScrollbarThemeComposite.cpp:
              (WebCore::ScrollbarThemeComposite::paint):
              (WebCore::ScrollbarThemeComposite::splitTrack):
              * platform/ScrollbarThemeComposite.h:
              (WebCore::ScrollbarThemeComposite::paintScrollbarBackground):
              (WebCore::ScrollbarThemeComposite::paintTrackBackground):
              (WebCore::ScrollbarThemeComposite::paintTrackPiece):
              * platform/win/ScrollbarThemeSafari.cpp:
              (WebCore::ScrollbarThemeSafari::paintTrackBackground):
              * platform/win/ScrollbarThemeSafari.h:
              * platform/win/ScrollbarThemeWin.cpp:
              (WebCore::ScrollbarThemeWin::paintTrack):
              * platform/win/ScrollbarThemeWin.h:
              * rendering/RenderLayer.cpp:
              (WebCore::RenderLayer::createScrollbar):
              (WebCore::RenderLayer::styleChanged):
              * rendering/RenderScrollbar.cpp: Added.
              (WebCore::RenderScrollbar::createCustomScrollbar):
              (WebCore::RenderScrollbar::RenderScrollbar):
              (WebCore::RenderScrollbar::~RenderScrollbar):
              (WebCore::RenderScrollbar::getScrollbarPseudoStyle):
              (WebCore::RenderScrollbar::updateScrollbarParts):
              (WebCore::RenderScrollbar::updateScrollbarPart):
              (WebCore::RenderScrollbar::paintPart):
              (WebCore::RenderScrollbar::buttonRect):
              (WebCore::RenderScrollbar::minimumThumbLength):
              * rendering/RenderScrollbar.h: Added.
              (WebCore::RenderScrollbar::styleChanged):
              (WebCore::RenderScrollbar::owningRenderer):
              * rendering/RenderScrollbarPart.cpp: Added.
              (WebCore::RenderScrollbarPart::RenderScrollbarPart):
              (WebCore::RenderScrollbarPart::~RenderScrollbarPart):
              (WebCore::RenderScrollbarPart::layout):
              (WebCore::RenderScrollbarPart::layoutHorizontalPart):
              (WebCore::RenderScrollbarPart::layoutVerticalPart):
              (WebCore::calcScrollbarThicknessUsing):
              (WebCore::RenderScrollbarPart::computeScrollbarWidth):
              (WebCore::RenderScrollbarPart::computeScrollbarHeight):
              (WebCore::RenderScrollbarPart::calcPrefWidths):
              (WebCore::RenderScrollbarPart::setStyle):
              * rendering/RenderScrollbarPart.h: Added.
              (WebCore::RenderScrollbarPart::renderName):
              (WebCore::RenderScrollbarPart::requiresLayer):
              * rendering/RenderScrollbarTheme.cpp: Added.
              (WebCore::RenderScrollbarTheme::renderScrollbarTheme):
              (WebCore::RenderScrollbarTheme::buttonSizesAlongTrackAxis):
              (WebCore::RenderScrollbarTheme::hasButtons):
              (WebCore::RenderScrollbarTheme::hasThumb):
              (WebCore::RenderScrollbarTheme::minimumThumbLength):
              (WebCore::RenderScrollbarTheme::backButtonRect):
              (WebCore::RenderScrollbarTheme::forwardButtonRect):
              (WebCore::RenderScrollbarTheme::trackRect):
              (WebCore::RenderScrollbarTheme::paintScrollCorner):
              (WebCore::RenderScrollbarTheme::paintScrollbarBackground):
              (WebCore::RenderScrollbarTheme::paintTrackBackground):
              (WebCore::RenderScrollbarTheme::paintTrackPiece):
              (WebCore::RenderScrollbarTheme::paintButton):
              (WebCore::RenderScrollbarTheme::paintThumb):
              * rendering/RenderScrollbarTheme.h: Added.
              (WebCore::RenderScrollbarTheme::~RenderScrollbarTheme):
              (WebCore::RenderScrollbarTheme::scrollbarThickness):
              (WebCore::RenderScrollbarTheme::buttonsPlacement):
              (WebCore::RenderScrollbarTheme::supportsControlTints):
              (WebCore::RenderScrollbarTheme::shouldCenterOnThumb):
              (WebCore::RenderScrollbarTheme::initialAutoscrollTimerDelay):
              (WebCore::RenderScrollbarTheme::autoscrollTimerDelay):
              (WebCore::RenderScrollbarTheme::registerScrollbar):
              (WebCore::RenderScrollbarTheme::unregisterScrollbar):
              * rendering/style/RenderStyle.h:
              (WebCore::RenderStyle::):
      
      LayoutTests:
      
      2008-10-09  David Hyatt  <hyatt@apple.com>
      
              Land layout test for CSS scrollbars.
      
              Reviewed by Oliver Hunt
      
              * platform/mac/scrollbars: Added.
              * platform/mac/scrollbars/basic-scrollbar-expected.checksum: Added.
              * platform/mac/scrollbars/basic-scrollbar-expected.png: Added.
              * platform/mac/scrollbars/basic-scrollbar-expected.txt: Added.
              * scrollbars: Added.
              * scrollbars/basic-scrollbar.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37462 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2e4835da
  12. 25 Jul, 2008 1 commit
  13. 01 Jul, 2008 1 commit
    • andersca@apple.com's avatar
      2008-06-30 Anders Carlsson <andersca@apple.com> · c672775d
      andersca@apple.com authored
              Reviewed by Adam.
      
              Add PluginMainThreadScheduler, a singleton which is responsible for scheduling plug-in 
              callbacks on the main thread. Use this to implement NPN_PluginThreadAsyncCall on Windows.
              
              * WebCore.vcproj/WebCore.vcproj:
              Add PluginMainThreadScheduler.{cpp|h}
              
              * plugins/PluginMainThreadScheduler.cpp: Added.
              * plugins/PluginMainThreadScheduler.h: Added.
      
              * plugins/PluginView.cpp:
              (WebCore::PluginView::start):
              Register with the thread scheduler.
              
              * plugins/npapi.cpp:
              (NPN_PluginThreadAsyncCall):
              Call the thread scheduler.
              
              * plugins/win/PluginPackageWin.cpp:
              (WebCore::PluginPackage::load):
              Initialize the NPN_PluginThreadAsyncCall callback.
              
              * plugins/win/PluginViewWin.cpp:
              (WebCore::PluginView::stop):
              Unregister with the scheduler. This makes sure that we won't try to deliver callbacks
              after the plug-in has been destroyed.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34926 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c672775d
  14. 05 May, 2008 1 commit
    • beidson@apple.com's avatar
      2008-05-05 Brady Eidson <beidson@apple.com> · 2cfbe4c4
      beidson@apple.com authored
              Reviewed by Mitz Pettel RTL
      
              Preparation for upcoming work making LocalStorage persistent.
      
              StorageMaps normally have copy-on-write semantics to help support SessionStorage.
              For LocalStorage, we never want this behavior.  When we forcefully import items into 
              a StorageMap from the LocalStorage background thread, this new import method will be used.
      
              * storage/StorageMap.cpp:
              (WebCore::StorageMap::importItem): Add a deep-copy of the item to the map without worrying
                about copy-on-write.
              * storage/StorageMap.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@32897 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2cfbe4c4
  15. 07 Apr, 2008 2 commits
    • beidson@apple.com's avatar
      WebCore: · c2e6fd7e
      beidson@apple.com authored
      2008-04-07  Brady Eidson  <beidson@apple.com>
      
              Lovingly reviewed by Sam Weinig
      
              <rdar://problem/5797684> - HTML5 SessionStorage and underpinnings for LocalStorage
      
              Tests: storage/domstorage/sessionstorage/iframe-events.html
                     storage/domstorage/sessionstorage/index-get-and-set.html
                     storage/domstorage/sessionstorage/simple-events.html
                     storage/domstorage/sessionstorage/simple-usage.html
                     storage/domstorage/sessionstorage/window-open.html
                     storage/domstorage/window-attributes-exist.html
      
              * Configurations/WebCore.xcconfig: Define to enable DOM_STORAGE
      
              * bindings/js/JSDOMWindowCustom.cpp:
              (WebCore::JSDOMWindow::mark): Add optionalSessionStorage case
      
              * bindings/js/JSEventCustom.cpp:
              (WebCore::toJS): Add StorageEvent case
      
              * bindings/js/JSStorageCustom.cpp:
              (WebCore::JSStorage::canGetItemsForName):
              (WebCore::JSStorage::nameGetter): If the property doesn't exist on the object, call through to getItem()
              (WebCore::JSStorage::customPut): If the property doesn't exist on the object, call through to setItem()
      
              * dom/Event.cpp:
              (WebCore::Event::isStorageEvent):
              * dom/Event.h:
      
              * dom/EventNames.h: Add "storage"
      
              * dom/EventTargetNode.cpp:
              (WebCore::EventTargetNode::dispatchStorageEvent):
              * dom/EventTargetNode.h:
      
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::createWindow): After a new page has been created, set its SessionStorage object
                to a copy of the previous Page's
      
              * page/DOMWindow.cpp:
              (WebCore::DOMWindow::sessionStorage): Accessor to pull the appropriate OriginStorage out of the Page's
                SessionStorage.
              (WebCore::DOMWindow::localStorage): To be filled in later
              * page/DOMWindow.h:
              (WebCore::DOMWindow::optionalSessionStorage): Return the session Storage object for this window to mark, 
                if any exists
              * page/DOMWindow.idl:
      
              * page/Page.cpp:
              (WebCore::Page::sessionStorage):  Create and/or return the SessionStorage for this Page.
              (WebCore::Page::setSessionStorage): Set the SessionStorage for this Page - used in FrameLoader after a
                Window.open();
              * page/Page.h:
      
              * storage/OriginStorage.cpp: Intermediate layer between individual Storage objects, and shared StorageMap 
                objects.  There is one OriginStorage object per SecurityOrigin in each "unique set of storage areas", such
                as the SessionStorage.  This layer forwards DOM-level calls down to the backing StorageMap, handles 
                copy-on-write along with the StorageMap, fires StorageEvents to the DOM when a value is changed, and will
                eventually handle quota enforcement.
              (WebCore::OriginStorage::create):
              (WebCore::OriginStorage::OriginStorage):
              (WebCore::OriginStorage::~OriginStorage):
              (WebCore::OriginStorage::copy):
              (WebCore::OriginStorage::length):
              (WebCore::OriginStorage::key):
              (WebCore::OriginStorage::getItem):
              (WebCore::OriginStorage::setItem):
              (WebCore::OriginStorage::removeItem):
              (WebCore::OriginStorage::contains):
              (WebCore::OriginStorage::dispatchStorageEvent):
              * storage/OriginStorage.h:
      
              * storage/SessionStorage.cpp: From the HTML5 spec:
                "Each top-level browsing context has a unique set of session storage areas, one for each origin."
                This object represents that "unique set of session storage areas", and creates or returns the Storage
                object for the requested SecurityOrigin
              (WebCore::SessionStorage::create):
              (WebCore::SessionStorage::SessionStorage):
              (WebCore::SessionStorage::copy):
              (WebCore::SessionStorage::originStorage):
              * storage/SessionStorage.h:
              (WebCore::SessionStorage::page):
      
              * storage/Storage.cpp: Representation of the DOM-level object, wrapped by JSStorage.  There is a unique
                Storage object per Window (per-Frame) that wraps a specific shared OriginStorage object.
              (WebCore::Storage::create):
              (WebCore::Storage::Storage):
              (WebCore::Storage::length):
              (WebCore::Storage::key):
              (WebCore::Storage::getItem):
              (WebCore::Storage::setItem):
              (WebCore::Storage::removeItem):
              (WebCore::Storage::contains):
              * storage/Storage.h:
              * storage/Storage.idl:
      
              * storage/StorageEvent.cpp:
              (WebCore::StorageEvent::StorageEvent):
              (WebCore::StorageEvent::initStorageEvent):
              * storage/StorageEvent.h:
              (WebCore::StorageEvent::isStorageEvent):
      
              * storage/StorageMap.cpp: The physical map of key/value pairs that is shared between OriginStorage objects, 
                and implements copy-on-write semantics whenever a value is changed
              (WebCore::StorageMap::create):
              (WebCore::StorageMap::StorageMap):
              (WebCore::StorageMap::copy):
              (WebCore::StorageMap::invalidateIterator): Used to support the key(unsigned i) part of the API
              (WebCore::StorageMap::setIteratorToIndex): Ditto
              (WebCore::StorageMap::length):
              (WebCore::StorageMap::key):
              (WebCore::StorageMap::getItem):
              (WebCore::StorageMap::setItem):
              (WebCore::StorageMap::removeItem):
              (WebCore::StorageMap::contains):
              * storage/StorageMap.h:
      
      LayoutTests:
      
      2008-04-07  Brady Eidson  <beidson@apple.com>
      
              Begrudgingly reviewed by Sam Weinig
      
              Initial suite of layout tests for HTML5 key/value SessionStorage (<rdar://problem/5797684>)
      
              * fast/dom/Window/window-properties-expected.txt:
              * storage/domstorage: Added.
              * storage/domstorage/localstorage: Added.
              * storage/domstorage/sessionstorage: Added.
              * storage/domstorage/sessionstorage/iframe-events-expected.txt: Added.
              * storage/domstorage/sessionstorage/iframe-events.html: Added.
              * storage/domstorage/sessionstorage/index-get-and-set-expected.txt: Added.
              * storage/domstorage/sessionstorage/index-get-and-set.html: Added.
              * storage/domstorage/sessionstorage/resources: Added.
              * storage/domstorage/sessionstorage/resources/clearSessionStorage.js: Added.
              * storage/domstorage/sessionstorage/resources/iframe-events-second.html: Added.
              * storage/domstorage/sessionstorage/resources/window-open-second.html: Added.
              * storage/domstorage/sessionstorage/simple-events-expected.txt: Added.
              * storage/domstorage/sessionstorage/simple-events.html: Added.
              * storage/domstorage/sessionstorage/simple-usage-expected.txt: Added.
              * storage/domstorage/sessionstorage/simple-usage.html: Added.
              * storage/domstorage/sessionstorage/window-open-expected.txt: Added.
              * storage/domstorage/sessionstorage/window-open.html: Added.
              * storage/domstorage/window-attributes-exist-expected.txt: Added.
              * storage/domstorage/window-attributes-exist.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31697 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c2e6fd7e
    • beidson@apple.com's avatar
      2008-04-06 Brady Eidson <beidson@apple.com> · cce3c766
      beidson@apple.com authored
              Reviewed by Sam
      
              HTML5 Session and Local Storage
      
              Land a bunch of empty files and interfaces to keep things building while 
              I finish off the rest of the implementation of SessionStorage
      
              * DerivedSources.make:
              * GNUmakefile.am:
              * WebCore.pro:
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.xcodeproj/project.pbxproj:
              * WebCoreSources.bkl:
      
              * storage/OriginStorage.cpp: Added.
              * storage/OriginStorage.h: Added.
      
              * storage/SessionStorage.cpp: Added.
              * storage/SessionStorage.h: Added.
      
              * storage/Storage.cpp: Added.
              (WebCore::Storage::length):
              (WebCore::Storage::key):
              (WebCore::Storage::getItem):
              (WebCore::Storage::setItem):
              (WebCore::Storage::removeItem):
              * storage/Storage.h: Added.
              * storage/Storage.idl: Added.
      
              * storage/StorageEvent.cpp: Added.
              * storage/StorageEvent.h: Added.
              (WebCore::StorageEvent::key):
              (WebCore::StorageEvent::oldValue):
              (WebCore::StorageEvent::newValue):
              (WebCore::StorageEvent::uri):
              (WebCore::StorageEvent::source):
              (WebCore::StorageEvent::initStorageEvent):
              * storage/StorageEvent.idl: Added.
      
              * storage/StorageMap.cpp: Added.
              * storage/StorageMap.h: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31678 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cce3c766
  16. 23 Feb, 2008 1 commit
    • ddkilzer@apple.com's avatar
      WebCore: · 267da135
      ddkilzer@apple.com authored
              Please clarify licensing for some files
              <http://bugs.webkit.org/show_bug.cgi?id=14970>
      
              Reviewed by Darin.
      
              * bindings/objc/WebScriptObject.h: Added Apple BSD-style license.
              * bindings/objc/WebScriptObjectPrivate.h: Ditto.
              * platform/text/mac/ShapeArabic.c: Added ICU license from WebCore/icu/LICENSE.
      
      WebKit/mac:
      
              Please clarify licensing for some files
              <http://bugs.webkit.org/show_bug.cgi?id=14970>
      
              Reviewed by Darin.
      
              * Plugins/WebNetscapeDeprecatedFunctions.c: Updated copyright statement
              and added Apple BSD-style license.
              * Plugins/WebNetscapeDeprecatedFunctions.h: Ditto.
      
      WebKitTools:
      
              Please clarify licensing for some files
              <http://bugs.webkit.org/show_bug.cgi?id=14970>
      
              Reviewed by Darin.
      
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.cpp: Added
              copyright statement.  Replaced license with newer Apple BSD-style license.
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.h: Ditto.
              * DumpRenderTree/TestNetscapePlugIn.subproj/TestObject.cpp: Ditto.
              * DumpRenderTree/TestNetscapePlugIn.subproj/TestObject.h: Ditto.
              * DumpRenderTree/TestNetscapePlugIn.subproj/main.cpp: Ditto.
              * DumpRenderTree/win/TestNetscapePlugin/main.c: Ditto.
              * mangleme/LICENSE: Added (LGPL).
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@30520 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      267da135
  17. 30 Mar, 2007 2 commits
    • andersca's avatar
      Reviewed by Geoff. · b5e193f8
      andersca authored
              * DumpRenderTree/TestNetscapePlugIn.subproj/TestObject.c:
              (testAllocate):
              (testEnumerate):
              Add casts.
              
              * DumpRenderTree/TestNetscapePlugIn.subproj/TestObject.h:
              Don't use #import, use #include.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20619 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b5e193f8
    • andersca's avatar
      JavaScriptCore: · 77d5e0d0
      andersca authored
              Reviewed by Geoff.
      
              Implement _NPN_Enumerate support.
              
              * JavaScriptCore.exp:
              * bindings/NP_jsobject.cpp:
              (_NPN_Enumerate):
              * bindings/c/c_instance.cpp:
              (KJS::Bindings::CInstance::getPropertyNames):
              * bindings/c/c_instance.h:
              * bindings/npapi.h:
              * bindings/npruntime.h:
              * bindings/npruntime_impl.h:
              * bindings/runtime.h:
              (KJS::Bindings::Instance::getPropertyNames):
              * bindings/runtime_object.cpp:
              (RuntimeObjectImp::getPropertyNames):
              * bindings/runtime_object.h:
              (KJS::RuntimeObjectImp::getInternalInstance):
      
      LayoutTests:
      
              Reviewed by Geoff.
      
              Add enumeration test.
              
              * plugins/netscape-enumerate-expected.txt: Added.
              * plugins/netscape-enumerate.html: Added.
      
      WebKit:
      
              Reviewed by Geoff.
      
              * Plugins/WebNetscapePluginPackage.m:
              (-[WebNetscapePluginPackage load]):
              Initialize pushpopupsenabledstate, poppopupsenabledstate and enumerate.
              
              * Plugins/npapi.m:
              (NPN_PushPopupsEnabledState):
              (NPN_PopPopupsEnabledState):
              Add stubs for these functions.
              
              * Plugins/npfunctions.h:
              Add new methods to NPNetscapeFuncs.
      
      WebKitTools:
      
              Reviewed by Geoff.
      
              * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
              Add TestObject.c and TestObject.h
              
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.c:
              (pluginGetProperty):
              Implement the testObject property.
              
              (pluginInvoke):
              Implement testEnumerate which takes an object and an array and enumerates
              the properties of the object and adds them to the array.
              
              (pluginAllocate):
              Allocate the test object.
              
              (pluginDeallocate):
              Free the test object.
              
              * DumpRenderTree/TestNetscapePlugIn.subproj/TestObject.c: Added.
              * DumpRenderTree/TestNetscapePlugIn.subproj/TestObject.h: Added.
              Add a test object with two enumerable properties.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20613 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      77d5e0d0
  18. 29 Mar, 2007 1 commit
    • ggaren's avatar
      LayoutTests: · 2663f9a7
      ggaren authored
              Reviewed by Beth Dakin.
              
              Layout test for <rdar://problem/5091330> REGRESSION: Repro crash in 
              -[WebBaseNetscapePluginView(WebNPPCallbacks) destroyStream:reason:] 
              navigating away from page with DivX movie plug-in (13203)
      
              * plugins/destroy-stream-twice-expected.txt: Added.
              * plugins/destroy-stream-twice.html: Added.
      
      WebKit:
      
              Reviewed by Beth Dakin, reviewed by Maciej Stachowiak.
              
              Layout test for <rdar://problem/5091330> REGRESSION: Repro crash in 
              -[WebBaseNetscapePluginView(WebNPPCallbacks) destroyStream:reason:] 
              navigating away from page with DivX movie plug-in (13203)
              
              Changed LOG_ERROR to LOG so the layout test doesn't produce console spew
              every time you run it.
      
              * Plugins/WebBaseNetscapePluginView.mm:
              (-[WebBaseNetscapePluginView destroyStream:reason:]):
      
      WebKitTools:
      
              Reviewed by Beth Dakin.
              
              Layout test for <rdar://problem/5091330> REGRESSION: Repro crash in 
              -[WebBaseNetscapePluginView(WebNPPCallbacks) destroyStream:reason:] 
              navigating away from page with DivX movie plug-in (13203)
              
              Added hasStream property and destroyStream function, used by layout test.
      
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.c:
              (pluginGetProperty):
              (pluginInvoke):
              (pluginAllocate):
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.h:
              * DumpRenderTree/TestNetscapePlugIn.subproj/main.c:
              (NPP_NewStream):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20597 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2663f9a7
  19. 05 Mar, 2007 1 commit
    • andersca's avatar
      LayoutTests: · 526c36f0
      andersca authored
              Reviewed by Adam, Darin.
      
              <rdar://problem/5025212>
              In Mail, a crash occurs at WebCore::Frame::tree() when clicking on embedded flash object
      
              * plugins/get-url-with-blank-target-expected.txt: Added.
              * plugins/get-url-with-blank-target.html: Added.
      
      WebKit:
      
              Reviewed by Adam, Darin.
       
              <rdar://problem/5025212>
              In Mail, a crash occurs at WebCore::Frame::tree() when clicking on embedded flash object
      
              * Plugins/WebBaseNetscapePluginView.mm:
              (-[WebBaseNetscapePluginView loadPluginRequest:]):
              Handle the case where the web view returned from the delegate method is null. Also, send out an error notification
              in that case so we can catch it.
      
      WebKitTools:
      
              Reviewed by Adam, Darin.
      
              <rdar://problem/5025212>
              In Mail, a crash occurs at WebCore::Frame::tree() when clicking on embedded flash object
              
              Add a "getURLNotify" method to the plugin object. This lets you pass a URL, a target and a callback function
              to be run when the URL has finished (or failed) loading.
              
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.c:
              (pluginInvoke):
              (handleCallback):
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.h:
              * DumpRenderTree/TestNetscapePlugIn.subproj/main.c:
              (NPP_URLNotify):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19966 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      526c36f0
  20. 06 Nov, 2006 1 commit
    • ap's avatar
      Reviewed by Maciej. · fdfb9d6f
      ap authored
              http://bugs.webkit.org/show_bug.cgi?id=11517
              REGRESSION: Flash clicks/interactivity not working properly
      
      WebCore:
              * bridge/mac/FrameMac.mm:
              (WebCore::FrameMac::handleMouseMoveEvent):
              (WebCore::FrameMac::handleMouseReleaseEvent):
              Restore parts of event dispatching that were removed when fixing
              bug 7323 - just bypass those for subframes.
      
      WebKitTools:
              Teach TestNetscapePlugin to log events passed to it. To enable, set eventLoggingEnabled to true:
      
              <embed name="plg" type="application/x-webkit-test-netscape" width=100 height=100></embed>
              <script>
                  plg.eventLoggingEnabled = true;
                  // use eventSender to simulate events...
              </script>
      
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.c:
              (pluginGetProperty):
              (pluginSetProperty):
              (pluginAllocate):
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.h:
              * DumpRenderTree/TestNetscapePlugIn.subproj/main.c:
              (NPP_HandleEvent):
      
      LayoutTests:
              * plugins/mouse-events-expected.txt: Added.
              * plugins/mouse-events.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@17611 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fdfb9d6f
  21. 09 Mar, 2006 1 commit
    • darin's avatar
      Reviewed by John Sullivan. · 24fbf130
      darin authored
              - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7681
                memory leak in the plug-in tests
      
              * DumpRenderTree/TestNetscapePlugIn.subproj/main.c:
              (NPP_Destroy): Added code to release the plug-in object. This is the leak fix.
              (NPP_SetWindow): Remove unneeded code to store the window pointer.
      
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.c:
              Moved the browser global in here since it's declared in this file's header.
              Changed the code to set up the pluginClass structure to not use function
              pointer casts. Those are dangerous because they can hide many types of mismatch.
              And indeed when I did this I discovered that many functions were missing their
              boolean return values or had parameter declarations with the wrong types.
              (pluginGetProperty): Use STRINGZ_TO_NPVARIANT macro for greater simplicity and
              clarity. Added boolean return value: return true when successful and false when not.
              (pluginSetProperty): Added boolean return value, return false since we have no
              properties we can set.
              (pluginInvoke): Added boolean return value. Return true when successful and false
              when not. Use NPVARIANT macros where appropriate. Added a missing release for the
              return value from calling the browser. Changed code to put the strings in malloc
              buffers instead of relying on GCC's extension that allows variable-sized arrays
              on the stack.
              (pluginInvokeDefault): Added boolean return value, return false since we have no
              default function to call.
              (pluginInvalidate): Added missing parameter. Removed comment.
              (pluginAllocate): Removed unneeded cast. This is C code, not C++, so you don't have
              to cast the result of malloc.
              (pluginDeallocate): Removed uneeded cast.
      
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.h: Removed some unneeded
              includes. Changed our PluginObject to use NPObject instead of re-declaring fields
              that match NPObject's fields. Removed unused NPWindow pointer.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@13233 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      24fbf130
  22. 05 Jan, 2006 1 commit
    • ggaren's avatar
      LayoutTests: · 7dd73f87
      ggaren authored
              Layout test for http://bugzilla.opendarwin.org/show_bug.cgi?id=6318
              REGRESSION: Repro crash in JS called from Flash on bdash.net.nz
      
              * fast/plugins/netscape-back-forward-expected.txt: Added.
              * fast/plugins/netscape-back-forward.html: Added.
              * fast/plugins/resources/go-back.html: Added.
      
      WebKit:
      
              Reviewed by Darin.
      
              - Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=6361
              Add plugin support to DumpRenderTree
      
              * WebKit.exp: export WebPluginDatabase class, which DumpRenderTree
              needs to add plugins to the runtime.
      
      WebKitTools:
      
              Reviewed by darin.
      
              - Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=6361
              Add plugin support to DumpRenderTree
      
              Also wrote first test plugin.
      
              * DumpRenderTree/DumpRenderTree.m:
              (main):
              (1) Put the WebView in an invisible window, because PlugIns are
              optimized not to load if there's no parent window.
              (2) Tell WebKit to load any PlugIns in the directory from which we
              loaded. This means we can build nasty PlugIns alongside DumpRenderTree
              and they'll load automagically during layout testing, but they won't be
              added to the user's system, hosing apps like Safari.
      
              * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Added new
              test PlugIn to project.
      
              PlugIn added to project:
      
              * DumpRenderTree/TestNetscapePlugIn.subproj/Info.plist: Added.
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.c: Added.
              (getPluginClass):
              (initializeIdentifiers):
              (pluginHasProperty):
              (pluginHasMethod):
              (pluginGetProperty):
              (pluginSetProperty):
              (pluginInvoke):
              (pluginInvokeDefault):
              (pluginInvalidate):
              (pluginAllocate):
              (pluginDeallocate):
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.h: Added.
              * DumpRenderTree/TestNetscapePlugIn.subproj/main.c: Added.
              (NP_Initialize):
              (NP_GetEntryPoints):
              (NP_Shutdown):
              (NPP_New):
              (NPP_Destroy):
              (NPP_SetWindow):
              (NPP_NewStream):
              (NPP_DestroyStream):
              (NPP_WriteReady):
              (NPP_Write):
              (NPP_StreamAsFile):
              (NPP_Print):
              (NPP_HandleEvent):
              (NPP_URLNotify):
              (NPP_GetValue):
              (NPP_SetValue):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@11885 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7dd73f87