2011-01-22 Andreas Kling Reviewed by Kenneth Rohde Christiansen. [Qt] fast/backgrounds/svg-as-mask.html fails https://bugs.webkit.org/show_bug.cgi?id=52906 Transparency layers should start out with in SourceOver mode with alpha 1.0 (modeled after CGContextBeginTransparencyLayer.) * platform/graphics/qt/TransparencyLayer.h: (WebCore::TransparencyLayer::TransparencyLayer): 2011-01-22 Nikolas Zimmermann Not reviewed. Introduce FontMetrics abstraction https://bugs.webkit.org/show_bug.cgi?id=51456 Fix Chromium/Win build. * platform/graphics/chromium/UniscribeHelperTextRun.cpp: s/->/./ (WebCore::UniscribeHelperTextRun::UniscribeHelperTextRun): 2011-01-21 Nikolas Zimmermann Reviewed by Dirk Schulze. Introduce FontMetrics abstraction https://bugs.webkit.org/show_bug.cgi?id=51456 Encapsulate ascent/descent/lineHeight/lineGap methods in a single FontMetrics class, instead of having to define them in both Font & SimpleFontData. Changed to store floating point values as default, in order to get accurate information for small sized fonts. All these methods now have floating-point and integer versions. Whenever an integer variant of these functions is called, lroundf() is used to round the value. This makes it possible to support small font-sizes for SVG in a follow-up patch, as well as fixing rounding issues when using SVG Fonts. Shouldn't affect existing tests. * GNUmakefile.am: Add FontMetrics.h to build. * WebCore.gypi: Ditto. * WebCore.pro: Ditto. * WebCore.vcproj/WebCore.vcproj: Ditto. * WebCore.xcodeproj/project.pbxproj: Ditto. * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: Use style->fontMetrics() instead of style->font() to access the metrics. (baselinePositionForAccessibilityRenderObject): * css/CSSPrimitiveValue.cpp: (WebCore::CSSPrimitiveValue::computeLengthDouble): * html/canvas/CanvasRenderingContext2D.cpp: Ditto. (WebCore::CanvasRenderingContext2D::drawTextInternal): * inspector/InspectorController.cpp: Ditto. (WebCore::InspectorController::drawElementTitle): * platform/chromium/PopupMenuChromium.cpp: Ditto. (WebCore::PopupListBox::paintRow): (WebCore::PopupListBox::getRowHeight): * platform/graphics/Font.h: Remove ascent/descent/height/lineGap/lineSpacing/xHeight/unitsPerEm accessor... (WebCore::Font::fontMetrics): ... and only expose a single FontMetrics object here. * platform/graphics/FontFastPath.cpp: Use fontMetrics() to query metrics information. (WebCore::Font::emphasisMarkAscent): (WebCore::Font::emphasisMarkDescent): (WebCore::Font::emphasisMarkHeight): (WebCore::Font::floatWidthForSimpleText): * platform/graphics/FontMetrics.h: Added. (WebCore::FontMetrics::FontMetrics): Creates a FontMetrics object, stored in SimpleFontData. (WebCore::FontMetrics::unitsPerEm): Returns an unsigned describing the unitsPerEm. (WebCore::FontMetrics::setUnitsPerEm): Sets the unitsPerEm value. (WebCore::FontMetrics::floatAscent): Returns the stored m_ascent float. (WebCore::FontMetrics::setAscent): Sets the stored m_ascent float. (WebCore::FontMetrics::floatDescent): Returns the stored m_descent float. (WebCore::FontMetrics::setDescent): Sets the stored m_descent float. (WebCore::FontMetrics::floatHeight): Returns floatAscent() + floatDescent(). (WebCore::FontMetrics::floatLineGap): Returns the stored m_lineGap float. (WebCore::FontMetrics::setLineGap): Sets the stored m_lineGap float. (WebCore::FontMetrics::floatLineSpacing): Returns the stored m_lineSpacing float. (WebCore::FontMetrics::setLineSpacing): Sets the stored m_lineSpacing float. (WebCore::FontMetrics::xHeight): Returns the stored m_xHeight float (no integer version available, hence no 'float' prefix). (WebCore::FontMetrics::setXHeight): Sets the stored m_xHeight float. (WebCore::FontMetrics::ascent): Returns a rounded version of ascent(). (WebCore::FontMetrics::descent): Ditto (for descent). (WebCore::FontMetrics::height): Returns ascent() + descent(). (WebCore::FontMetrics::lineGap): Returns a rounded version of lineGap(). (WebCore::FontMetrics::lineSpacing): Ditto (for lineSpacing). (WebCore::FontMetrics::reset): Nulls all members, used only by the platform variants of SimpleFontData. * platform/graphics/SimpleFontData.cpp: Adapt SVG Fonts code, to initialize the FontMetrics object, as the m_ascent/etc.. members are gone. (WebCore::SimpleFontData::SimpleFontData): (WebCore::SimpleFontData::initCharWidths): * platform/graphics/SimpleFontData.h: Remove ascent/descent/height/lineSpacing/lineGap/xHeight/unitsPerEm accessors, and members, just store a FontMetrics object and expose it. (WebCore::SimpleFontData::fontMetrics): (WebCore::SimpleFontData::avgCharWidth): * platform/graphics/chromium/FontChromiumWin.cpp: Use fontMetrics() to query font metrics. (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::estimateTextBounds): (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::drawGlyphs): (WebCore::TransparencyAwareFontPainter::TransparencyAwareUniscribePainter::estimateTextBounds): (WebCore::Font::drawComplexText): * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp: Adapt platform code, to initialize the FontMetrics object. (WebCore::SimpleFontData::platformInit): * platform/graphics/chromium/SimpleFontDataLinux.cpp: Ditto. (WebCore::SimpleFontData::platformInit): * platform/graphics/chromium/UniscribeHelperTextRun.cpp: Use fontMetrics() to query font metrics. (WebCore::UniscribeHelperTextRun::UniscribeHelperTextRun): (WebCore::UniscribeHelperTextRun::nextWinFontData): * platform/graphics/freetype/SimpleFontDataFreeType.cpp: Adapt platform code, to initialize the FontMetrics object. (WebCore::SimpleFontData::platformInit): * platform/graphics/haiku/SimpleFontDataHaiku.cpp: Ditto. (WebCore::SimpleFontData::platformInit): * platform/graphics/mac/FontComplexTextMac.cpp: Use fontMetrics() to query font metrics. (WebCore::Font::floatWidthForComplexText): * platform/graphics/mac/FontMac.mm: Ditto. (WebCore::showGlyphsWithAdvances): * platform/graphics/mac/SimpleFontDataMac.mm: Adapt platform code, to initialize the FontMetrics object. (WebCore::SimpleFontData::platformInit): (WebCore::SimpleFontData::platformCharWidthInit): * platform/graphics/pango/SimpleFontDataPango.cpp: Ditto. (WebCore::SimpleFontData::platformInit): * platform/graphics/qt/SimpleFontDataQt.cpp: Ditto. (+ Switch to QFontMetricsF to get floating-point accurancy.) (WebCore::SimpleFontData::platformInit): * platform/graphics/win/FontCGWin.cpp: Use fontMetrics() to query font metrics. (WebCore::drawGDIGlyphs): * platform/graphics/win/FontWin.cpp: Ditto. (WebCore::Font::floatWidthForComplexText): * platform/graphics/win/SimpleFontDataCGWin.cpp: Adapt platform code, to initialize the FontMetrics object. (WebCore::SimpleFontData::platformInit): (WebCore::SimpleFontData::platformBoundsForGlyph): * platform/graphics/win/SimpleFontDataCairoWin.cpp: Ditto. (WebCore::SimpleFontData::platformInit): * platform/graphics/win/SimpleFontDataWin.cpp: Ditto. (WebCore::SimpleFontData::initGDIFont): * platform/graphics/wince/GraphicsContextWinCE.cpp: Use fontMetrics() to query font metrics. (WebCore::GraphicsContext::drawText): * platform/graphics/wince/SimpleFontDataWinCE.cpp: Adapt platform code, to initialize the FontMetrics object. (WebCore::SimpleFontData::platformInit): * platform/graphics/wx/SimpleFontDataWx.cpp: Ditto. (WebCore::SimpleFontData::platformInit): * platform/win/PopupMenuWin.cpp: Use style->fontMetrics() instead of style->font() to access the metrics. (WebCore::PopupMenuWin::calculatePositionAndSize): (WebCore::PopupMenuWin::paint): * rendering/EllipsisBox.cpp: Ditto. (WebCore::EllipsisBox::paint): (WebCore::EllipsisBox::nodeAtPoint): * rendering/InlineBox.cpp: Ditto. (WebCore::InlineBox::logicalHeight): * rendering/InlineFlowBox.cpp: Ditto. (WebCore::verticalPositionForBox): (WebCore::InlineFlowBox::computeLogicalBoxHeights): (WebCore::InlineFlowBox::placeBoxesInBlockDirection): * rendering/InlineTextBox.cpp: Ditto. (WebCore::InlineTextBox::paint): (WebCore::InlineTextBox::paintDecoration): (WebCore::InlineTextBox::paintSpellingOrGrammarMarker): (WebCore::InlineTextBox::paintCompositionUnderline): * rendering/RenderBlock.cpp: Ditto. (WebCore::RenderBlock::baselinePosition): (WebCore::RenderBlock::firstLineBoxBaseline): (WebCore::RenderBlock::lastLineBoxBaseline): * rendering/RenderBox.cpp: Ditto. (WebCore::RenderBox::localCaretRect): * rendering/RenderEmbeddedObject.cpp: Ditto. (WebCore::RenderEmbeddedObject::paintReplaced): * rendering/RenderImage.cpp: Ditto. (WebCore::RenderImage::setImageSizeForAltText): (WebCore::RenderImage::paintReplaced): * rendering/RenderInline.cpp: Ditto. (WebCore::RenderInline::baselinePosition): * rendering/RenderListBox.cpp: Ditto. (WebCore::RenderListBox::paintItemForeground): (WebCore::RenderListBox::itemHeight): * rendering/RenderListMarker.cpp: Ditto. (WebCore::RenderListMarker::paint): (WebCore::RenderListMarker::layout): (WebCore::RenderListMarker::computePreferredLogicalWidths): (WebCore::RenderListMarker::updateMargins): (WebCore::RenderListMarker::getRelativeMarkerRect): * rendering/RenderTextControl.cpp: Ditto. (WebCore::RenderTextControl::paintPlaceholder): * rendering/RenderTextControlSingleLine.cpp: Ditto. (WebCore::RenderTextControlSingleLine::createInnerTextStyle): * rendering/RenderThemeWin.cpp: Ditto. (WebCore::RenderThemeWin::adjustMenuListButtonStyle): * rendering/mathml/RenderMathMLFraction.cpp: Ditto. (WebCore::RenderMathMLFraction::baselinePosition): * rendering/style/RenderStyle.h: Add "const FontMetrics& fontMetrics() const" accessor. (WebCore::InheritedFlags::fontMetrics): (WebCore::InheritedFlags::computedLineHeight): * rendering/svg/RenderSVGInlineText.cpp: Use style->fontMetrics() instead of style->font() to access the metrics. (WebCore::RenderSVGInlineText::positionForPoint): * rendering/svg/SVGInlineTextBox.cpp: Ditto. (WebCore::SVGInlineTextBox::selectionRectForTextFragment): (WebCore::positionOffsetForDecoration): (WebCore::SVGInlineTextBox::paintDecorationWithStyle): (WebCore::SVGInlineTextBox::paintTextWithShadows): (WebCore::SVGInlineTextBox::calculateBoundaries): * rendering/svg/SVGTextLayoutEngineBaseline.cpp: Ditto. (WebCore::SVGTextLayoutEngineBaseline::calculateBaselineShift): (WebCore::SVGTextLayoutEngineBaseline::calculateAlignmentBaselineShift): (WebCore::SVGTextLayoutEngineBaseline::calculateGlyphAdvanceAndOrientation): * rendering/svg/SVGTextLayoutEngineSpacing.cpp: Ditto. (WebCore::SVGTextLayoutEngineSpacing::calculateSVGKerning): * rendering/svg/SVGTextMetrics.cpp: Ditto. (WebCore::SVGTextMetrics::SVGTextMetrics): * rendering/svg/SVGTextQuery.cpp: Ditto. (WebCore::calculateGlyphBoundaries): * svg/SVGFontFaceElement.cpp: (WebCore::SVGFontFaceElement::unitsPerEm): Rename defaultUnitsPerEm global to gDefaultUnitsPerEm. * svg/SVGLength.cpp: Use style->fontMetrics() instead of style->font() to access the metrics. (WebCore::SVGLength::convertValueFromUserUnitsToEXS): (WebCore::SVGLength::convertValueFromEXSToUserUnits): 2011-01-22 Ryosuke Niwa Reviewed by Eric Seidel. Stop instantiating legacy editing positions in VisibleSelection, visible_units.cpp, Frame, and RenderBlock https://bugs.webkit.org/show_bug.cgi?id=52759 Stopped instantiating legacy editing positions in the following files. * editing/VisibleSelection.cpp: (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries): * editing/visible_units.cpp: (WebCore::previousBoundary): (WebCore::previousLinePosition): (WebCore::nextLinePosition): (WebCore::startOfBlock): * page/Frame.cpp: (WebCore::Frame::visiblePositionForPoint): * rendering/RenderBlock.cpp: Removed RenderBlock::positionForRenderer because it was not called anywhere. * rendering/RenderBlock.h: Ditto. 2011-01-22 Adrienne Walker Reviewed by James Robinson. [chromium] Fix compositor repaints for offscreen fixed elements https://bugs.webkit.org/show_bug.cgi?id=52681 The fast path scrolling was clipping offscreen invalidations. Additionally, the compositor was ignoring all invalidations that were entirely out of the content rect. Test: compositing/ to verify this caused no regressions. Tested fix manually in browser as I could not generate a LayoutTest that reproduced the bug in run-webkit-tests. * page/FrameView.cpp: (WebCore::FrameView::scrollContentsFastPath): * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::invalidateRootLayerRect): 2011-01-22 Alexey Proskuryakov Reviewed by Dan Bernstein. https://bugs.webkit.org/show_bug.cgi?id=52951 WebKit2 generates a bad PDF for cross process messaging * page/PrintContext.cpp: (WebCore::PrintContext::spoolRect): Use a correct offset to actually draw inside the requested rectangle. 2011-01-21 Yury Semikhatsky Reviewed by Adam Barth. Regression: new window.onerror() implementation leaks cross-origin Javascript errors https://bugs.webkit.org/show_bug.cgi?id=52903 In case of an exception in a script from different domain only generic message will be passed to window.onerror hander. Tests: http/tests/security/cross-origin-script-window-onerror-redirected.html http/tests/security/cross-origin-script-window-onerror.html * bindings/js/CachedScriptSourceProvider.h: use URL from the resource response to make sure we do all cross origin checks agains real script URL, not the original URL which may have resulted in a sequence of redirects to different domains. (WebCore::CachedScriptSourceProvider::CachedScriptSourceProvider): * bindings/v8/ScriptSourceCode.h: same for v8. (WebCore::ScriptSourceCode::url): * dom/ScriptExecutionContext.cpp: (WebCore::ScriptExecutionContext::dispatchErrorEvent): in case the error occurred in a script we cannot access provide concise "Script error." message without any information about the error source. This is what Firefox does in this case. 2011-01-21 Andreas Kling Reviewed by Kenneth Rohde Christiansen. [Qt] Always set composition mode through GraphicsContext https://bugs.webkit.org/show_bug.cgi?id=52940 GraphicsContext tracks the current composition mode so we should never call through to the QPainter directly. * platform/graphics/GraphicsContext.h: * platform/graphics/qt/GraphicsContextQt.cpp: (WebCore::toQtCompositionMode): Changed this method to a static inline since it's only used by GraphicsContextQt.cpp now. * platform/graphics/qt/ImageQt.cpp: (WebCore::Image::drawPattern): (WebCore::BitmapImage::draw): 2011-01-21 Dan Bernstein Reviewed by Adele Peterson. Inconsistent handling of no-break space in justification logic https://bugs.webkit.org/show_bug.cgi?id=52938 Test: fast/text/justify-nbsp.html * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Count no-break space as a space when computing the distribution of space between text boxes on the line. 2011-01-21 Charlie Reis Reviewed by Darin Fisher. Crash in WebCore::HistoryController::itemsAreClones https://bugs.webkit.org/show_bug.cgi?id=52819 Adds sanity checks to help diagnose the crash. * loader/HistoryController.cpp: 2011-01-21 Andreas Kling Reviewed by Ariya Hidayat. [Qt] Let QPainter decide whether a composition mode is supported or not Lacking Porter-Duff support in the paint engine shouldn't exclude the Source and Source-Over modes (and has nothing to do with the blend and raster-op modes.) Delegate this decision to QPainter instead (this will cause warnings if an unsupported mode is used, but that's a good thing.) * platform/graphics/qt/GraphicsContextQt.cpp: (WebCore::GraphicsContext::clearRect): (WebCore::GraphicsContext::setPlatformCompositeOperation): * platform/graphics/qt/TransparencyLayer.h: (WebCore::TransparencyLayer::TransparencyLayer): 2011-01-21 Chris Rogers Reviewed by Kenneth Russell. fix audio build: header file should be "Noncopyable.h" and not "NonCopyable.h" https://bugs.webkit.org/show_bug.cgi?id=52933 No new tests since this just fixes the build * webaudio/RealtimeAnalyser.h: 2011-01-21 Chris Rogers Reviewed by Kenneth Russell. Fix audio build: change ChromiumBridge to PlatformBridge https://bugs.webkit.org/show_bug.cgi?id=52928 No new tests since audio API is not yet implemented. * platform/audio/chromium/AudioBusChromium.cpp: (WebCore::AudioBus::loadPlatformResource): 2011-01-21 Chris Rogers Reviewed by Kenneth Russell. Add FFTFrameStub to avoid link errors during bringup on platforms without an FFT implementation https://bugs.webkit.org/show_bug.cgi?id=52922 No new tests since audio API is not yet implemented. * WebCore.gypi: * platform/audio/FFTFrameStub.cpp: Added. (WebCore::FFTFrame::FFTFrame): (WebCore::FFTFrame::~FFTFrame): (WebCore::FFTFrame::multiply): (WebCore::FFTFrame::doFFT): (WebCore::FFTFrame::doInverseFFT): (WebCore::FFTFrame::cleanup): (WebCore::FFTFrame::realData): (WebCore::FFTFrame::imagData): 2011-01-21 Tony Chang Reviewed by Sam Weinig. reduce number of FrameLoaderClient::didChangeScrollOffset calls https://bugs.webkit.org/show_bug.cgi?id=52915 Only notify of changes in scroll offset when there actually is a change. This regressed in r76291. Covered by Chromium browser_tests. * platform/ScrollAnimator.cpp: (WebCore::ScrollAnimator::scrollToOffsetWithoutAnimation): 2011-01-21 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: ~InspectorResourceAgent crashes on closing inspected page. https://bugs.webkit.org/show_bug.cgi?id=52900 * inspector/InspectorController.cpp: (WebCore::InspectorController::~InspectorController): (WebCore::InspectorController::inspectedPageDestroyed): 2011-01-21 Chris Rogers Reviewed by Darin Fisher. Add run-time enable support for the web audio API https://bugs.webkit.org/show_bug.cgi?id=52741 No new tests since audio API is not yet implemented. * WebCore.exp.in: * bindings/generic/RuntimeEnabledFeatures.cpp: * bindings/generic/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::setWebkitAudioContextEnabled): (WebCore::RuntimeEnabledFeatures::webkitAudioContextEnabled): * page/DOMWindow.idl: * page/Settings.cpp: (WebCore::Settings::Settings): (WebCore::Settings::setWebAudioEnabled): * page/Settings.h: (WebCore::Settings::webAudioEnabled): 2011-01-21 Martin Robinson Reviewed by Xan Lopez. [GTK] Menulist text often collides with separator https://bugs.webkit.org/show_bug.cgi?id=51155 Move menulist rendering to RenderThemeGtk and correct padding code for separators in menulists. * platform/gtk/RenderThemeGtk.cpp: (WebCore::RenderThemeGtk::RenderThemeGtk): Initialize new widget members. (WebCore::RenderThemeGtk::getComboBoxSeparatorWidth): Added. (WebCore::RenderThemeGtk::comboBoxArrowSize): Added. (WebCore::getButtonInnerBorder): Added. (WebCore::RenderThemeGtk::getComboBoxPadding): Do this manually instead of using Mozilla code. (WebCore::RenderThemeGtk::paintMenuList): Ditto. (WebCore::setupWidget): Abstracted this part of the setupWidgetAndAddToContainer out to handle child widgets of comboboxes. (WebCore::RenderThemeGtk::setupWidgetAndAddToContainer): Abstracted out setupWidget. (WebCore::RenderThemeGtk::gtkContainer): Added. (WebCore::getGtkComboBoxButton): Added. (WebCore::getGtkComboBoxPieces): Added. (WebCore::RenderThemeGtk::gtkComboBox): Call setupWidget here. (WebCore::RenderThemeGtk::refreshComboBoxChildren): Added. (WebCore::RenderThemeGtk::gtkComboBoxButton): Added. (WebCore::RenderThemeGtk::gtkComboBoxArrow): Added. (WebCore::RenderThemeGtk::gtkComboBoxSeparator): Added. * platform/gtk/RenderThemeGtk.h: Added new members and methods. * platform/gtk/WidgetRenderingContext.h: Added new members and methods. * platform/gtk/WidgetRenderingContextGtk2.cpp: (WebCore::WidgetRenderingContext::gtkPaintArrow): (WebCore::WidgetRenderingContext::gtkPaintVLine): * platform/gtk/WidgetRenderingContextGtk3.cpp: (WebCore::WidgetRenderingContext::gtkPaintArrow): (WebCore::WidgetRenderingContext::gtkPaintVLine): * platform/gtk/gtk2drawing.c: Removed code for drawing menulists and buttons. (moz_gtk_init): (moz_gtk_get_widget_border): (moz_gtk_widget_paint): * platform/gtk/gtk3drawing.c: (moz_gtk_init): (moz_gtk_get_widget_border): (moz_gtk_widget_paint): * platform/gtk/gtkdrawing.h: 2011-01-21 Sam Weinig Fix chromium mac build. * platform/chromium/ScrollbarThemeChromiumMac.mm: (WebCore::scrollbarStateToThemeState): (WebCore::ScrollbarThemeChromiumMac::paint): 2011-01-21 Sam Weinig Fix the windows build. * platform/ScrollbarThemeComposite.cpp: (WebCore::ScrollbarThemeComposite::paint): 2011-01-21 Chris Rogers Reviewed by Kenneth Russell. Add chromium bundled audio spatialization resources to WebAudio.grd https://bugs.webkit.org/show_bug.cgi?id=52651 No new tests since audio API is not yet implemented. * WebCore.gyp/WebCore.gyp: * platform/audio/chromium/AudioBusChromium.cpp: (WebCore::AudioBus::loadPlatformResource): 2011-01-21 Xiyuan Xia Reviewed by Tony Chang. Use WebThemeEngine for relevant RenderTheme parts for chromium/linux. https://bugs.webkit.org/show_bug.cgi?id=52826 * platform/chromium/ChromiumBridge.h: * rendering/RenderThemeChromiumLinux.cpp: (WebCore::getWebThemeState): (WebCore::RenderThemeChromiumLinux::adjustSliderThumbSize): (WebCore::RenderThemeChromiumLinux::paintCheckbox): (WebCore::RenderThemeChromiumLinux::setCheckboxSize): (WebCore::RenderThemeChromiumLinux::paintRadio): (WebCore::RenderThemeChromiumLinux::setRadioSize): (WebCore::RenderThemeChromiumLinux::paintButton): (WebCore::RenderThemeChromiumLinux::paintTextField): (WebCore::RenderThemeChromiumLinux::paintMenuList): (WebCore::RenderThemeChromiumLinux::paintSliderTrack): (WebCore::RenderThemeChromiumLinux::paintSliderThumb): (WebCore::RenderThemeChromiumLinux::adjustInnerSpinButtonStyle): (WebCore::RenderThemeChromiumLinux::paintInnerSpinButton): (WebCore::RenderThemeChromiumLinux::paintProgressBar): * rendering/RenderThemeChromiumLinux.h: * rendering/RenderThemeChromiumSkia.cpp: (WebCore::RenderThemeChromiumSkia::setCheckboxSize): (WebCore::RenderThemeChromiumSkia::setSizeIfAuto): (WebCore::RenderThemeChromiumSkia::indeterminateProgressValueRectFor): * rendering/RenderThemeChromiumSkia.h: 2011-01-21 Sam Weinig Reviewed by Anders Carlsson. Part 2 of "Cleanup Scrollbar/ScrollbarClient relationship" https://bugs.webkit.org/show_bug.cgi?id=52779 Rename ScrollbarClient -> ScrollableArea. - Also replaces Scrollbar::setClient with Scrollbar::disconnectFromScrollableArea since that was its only use case. * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * accessibility/AccessibilityScrollbar.cpp: (WebCore::AccessibilityScrollbar::setValue): * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::SelectorChecker::checkScrollbarPseudoClass): * page/FrameView.h: * platform/PopupMenuClient.h: * platform/ScrollAnimator.cpp: (WebCore::ScrollAnimator::create): (WebCore::ScrollAnimator::ScrollAnimator): (WebCore::ScrollAnimator::scroll): (WebCore::ScrollAnimator::notityPositionChanged): * platform/ScrollAnimator.h: * platform/ScrollAnimatorWin.cpp: (WebCore::ScrollAnimator::create): (WebCore::ScrollAnimatorWin::ScrollAnimatorWin): (WebCore::ScrollAnimatorWin::scroll): * platform/ScrollAnimatorWin.h: * platform/ScrollView.cpp: (WebCore::ScrollView::scroll): (WebCore::ScrollView::updateScrollbars): (WebCore::ScrollView::wheelEvent): * platform/ScrollView.h: * platform/ScrollableArea.cpp: Copied from WebCore/platform/ScrollbarClient.cpp. (WebCore::ScrollableArea::ScrollableArea): (WebCore::ScrollableArea::~ScrollableArea): (WebCore::ScrollableArea::scroll): (WebCore::ScrollableArea::scrollToOffsetWithoutAnimation): (WebCore::ScrollableArea::scrollToXOffsetWithoutAnimation): (WebCore::ScrollableArea::scrollToYOffsetWithoutAnimation): (WebCore::ScrollableArea::setScrollOffsetFromAnimation): * platform/ScrollableArea.h: Copied from WebCore/platform/ScrollbarClient.h. * platform/Scrollbar.cpp: (WebCore::Scrollbar::createNativeScrollbar): (WebCore::Scrollbar::Scrollbar): (WebCore::Scrollbar::offsetDidChange): (WebCore::Scrollbar::autoscrollPressedPart): (WebCore::Scrollbar::moveThumb): (WebCore::Scrollbar::mouseMoved): (WebCore::Scrollbar::isWindowActive): (WebCore::Scrollbar::invalidateRect): (WebCore::Scrollbar::convertToContainingView): (WebCore::Scrollbar::convertFromContainingView): * platform/Scrollbar.h: (WebCore::Scrollbar::disconnectFromScrollableArea): (WebCore::Scrollbar::scrollableArea): * platform/ScrollbarClient.cpp: Removed. * platform/ScrollbarClient.h: Removed. * platform/ScrollbarThemeComposite.cpp: * platform/chromium/FramelessScrollView.h: * platform/chromium/ScrollbarThemeChromium.cpp: (WebCore::ScrollbarThemeChromium::paintTickmarks): * platform/efl/ScrollbarEfl.cpp: (Scrollbar::createNativeScrollbar): (ScrollbarEfl::ScrollbarEfl): (scrollbarEflEdjeMessage): * platform/efl/ScrollbarEfl.h: * platform/gtk/MainFrameScrollbarGtk.cpp: (MainFrameScrollbarGtk::create): (MainFrameScrollbarGtk::MainFrameScrollbarGtk): (MainFrameScrollbarGtk::gtkValueChanged): * platform/gtk/MainFrameScrollbarGtk.h: * platform/mac/ScrollAnimatorMac.h: * platform/mac/ScrollAnimatorMac.mm: (WebCore::ScrollAnimator::create): (WebCore::ScrollAnimatorMac::ScrollAnimatorMac): (WebCore::ScrollAnimatorMac::scroll): * platform/mac/ScrollbarThemeMac.mm: (WebCore::ScrollbarThemeMac::paint): * platform/qt/ScrollbarQt.cpp: (WebCore::Scrollbar::contextMenu): * platform/win/PopupMenuWin.cpp: (WebCore::PopupMenuWin::scrollToRevealSelection): (WebCore::PopupMenuWin::wndProc): * platform/win/PopupMenuWin.h: * platform/win/ScrollbarThemeSafari.cpp: (WebCore::ScrollbarThemeSafari::paintTrackBackground): (WebCore::ScrollbarThemeSafari::paintButton): (WebCore::ScrollbarThemeSafari::paintThumb): * platform/wx/ScrollbarThemeWx.cpp: (WebCore::ScrollbarThemeWx::paint): * rendering/RenderDataGrid.h: * rendering/RenderLayer.cpp: (WebCore::RenderLayer::scrollToOffset): (WebCore::RenderLayer::destroyScrollbar): (WebCore::RenderLayer::scroll): * rendering/RenderLayer.h: * rendering/RenderListBox.cpp: (WebCore::RenderListBox::scrollToRevealElementAtListIndex): (WebCore::RenderListBox::scroll): (WebCore::RenderListBox::logicalScroll): (WebCore::RenderListBox::setScrollTop): (WebCore::RenderListBox::destroyScrollbar): * rendering/RenderListBox.h: * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::createScrollbar): * rendering/RenderMenuList.h: * rendering/RenderScrollbar.cpp: (WebCore::RenderScrollbar::createCustomScrollbar): (WebCore::RenderScrollbar::RenderScrollbar): * rendering/RenderScrollbar.h: * rendering/RenderTextControlSingleLine.cpp: (WebCore::RenderTextControlSingleLine::createScrollbar): * rendering/RenderTextControlSingleLine.h: 2011-01-21 Darin Adler Fix Leopard build. * rendering/mathml/RenderMathMLFraction.cpp: (WebCore::RenderMathMLFraction::layout): Use ceilf instead of ceil. 2011-01-21 Anton Muhin Reviewed by Nate Chapin. [v8] Properly deal with the case when conversion to string throws an exception for HTMLCollection accessors https://bugs.webkit.org/show_bug.cgi?id=52901 Test: fast/dom/htmlcollection-conversion-throws-exception.html * bindings/v8/custom/V8HTMLCollectionCustom.cpp: (WebCore::getItem): 2011-01-21 Adam Roben Separate flushing layer changes from rendering in CACFLayerTreeHost Old model: 1) A change is made to a GraphicsLayer. 2) CACFLayerTreeHost::flushPendingGraphicsLayerChangesSoon is called, which schedules the render timer. 3) The timer fires, which calls through to CACFLayerTreeHost::render, which performs the flush and then renders. New model: 1) A change is made to a GraphicsLayer. 2) CACFLayerTreeHost::flushPendingGraphicsLayerChangesSoon is called, which tells the new LayerChangesFlusher singleton that this host has changes that need to be flushed. 3) LayerChangesFlusher sets up a Windows hook that will get called on the next iteration of the message loop. 4) LayerChangesFlusher's hook is called, which calls through to CACFLayerTreeHost::flushPendingLayerChangesNow. 5) CACFLayerTreeHost::flushPendingLayerChangesNow schedules the render timer so the changes that were just flushed to the context will be rendered. When a change is made to a PlatformCALayer that doesn't have a corresponding GraphicsLayer (e.g., for rendering