Index: Source/WebCore/ChangeLog |
=================================================================== |
--- Source/WebCore/ChangeLog (revision 77575) |
+++ Source/WebCore/ChangeLog (working copy) |
@@ -1,3 +1,6143 @@ |
+2011-02-01 Mihai Parparita <mihaip@chromium.org> |
+ |
+ Reviewed by James Robinson. |
+ |
+ Async event handlers should not fire within a modal dialog |
+ https://bugs.webkit.org/show_bug.cgi?id=53202 |
+ |
+ Asychronous events that use EventQueue would currently fire while a |
+ modal dialog (e.g. window.alert()) was up. Change EventQueue to use a |
+ SuspendableTimer (which automatically gets suspended while dialogs are |
+ up and in other cases where JS execution is not allowed). |
+ |
+ Test: fast/events/scroll-event-during-modal-dialog.html |
+ |
+ * dom/Document.cpp: |
+ (WebCore::Document::Document): |
+ * dom/EventQueue.cpp: |
+ (WebCore::EventQueueTimer::EventQueueTimer): |
+ (WebCore::EventQueueTimer::fired): |
+ (WebCore::EventQueue::EventQueue): |
+ (WebCore::EventQueue::enqueueEvent): |
+ (WebCore::EventQueue::pendingEventTimerFired): |
+ * dom/EventQueue.h: |
+ (WebCore::EventQueue::create): |
+ * page/SuspendableTimer.cpp: |
+ (WebCore::SuspendableTimer::SuspendableTimer): |
+ (WebCore::SuspendableTimer::suspend): |
+ (WebCore::SuspendableTimer::resume): |
+ * page/SuspendableTimer.h: |
+ |
+2011-02-01 Patrick Gansterer <paroga@webkit.org> |
+ |
+ Reviewed by Andreas Kling. |
+ |
+ Change wrong PLATFORM(WIN) to USE(WININET) |
+ https://bugs.webkit.org/show_bug.cgi?id=53547 |
+ |
+ * platform/network/ResourceHandle.h: |
+ |
+2011-02-01 Beth Dakin <bdakin@apple.com> |
+ |
+ 32-bit build fix. |
+ |
+ * platform/mac/ScrollAnimatorMac.mm: |
+ (-[ScrollbarPainterControllerDelegate contentAreaRectForScrollerImpPair:]): |
+ |
+2011-01-25 Martin Robinson <mrobinson@igalia.com> |
+ |
+ Reviewed by Gustavo Noronha Silva. |
+ |
+ [GTK] Two tests crash after r76555 |
+ https://bugs.webkit.org/show_bug.cgi?id=53057 |
+ |
+ Instead of creating synchronous ResourceHandles manually, use the ::create factory. |
+ This ensures that ::start() is not called when there is a scheduled failure and also |
+ reduces code duplication. |
+ |
+ * platform/network/soup/ResourceHandleSoup.cpp: |
+ (WebCore::ResourceHandle::loadResourceSynchronously): Use the ::create factory method. |
+ |
+2011-02-01 Martin Robinson <mrobinson@igalia.com> |
+ |
+ Reviewed by Eric Seidel. |
+ |
+ [GTK] GObject DOM bindings do no support the CallWith attribute |
+ https://bugs.webkit.org/show_bug.cgi?id=53331 |
+ |
+ Disable building GObject DOM bindings for IndexedDB because we do not support |
+ the CallWith attribute at this time. |
+ |
+ * bindings/gobject/GNUmakefile.am: Disable building bindings for the IndexedDB API. |
+ |
+2011-02-01 Darin Adler <darin@apple.com> |
+ |
+ Reviewed by Brady Eidson. |
+ |
+ Fix a couple loose ends from the back/forward tree encode/decode work |
+ https://bugs.webkit.org/show_bug.cgi?id=53537 |
+ |
+ * history/HistoryItem.cpp: |
+ (WebCore::HistoryItem::encodeBackForwardTreeNode): Remove extra copy of |
+ original URL string; no need to encode it twice. |
+ (WebCore::HistoryItem::decodeBackForwardTree): Ditto. |
+ * history/HistoryItem.h: Removed declaration for function that is no |
+ longer defined nor used. |
+ |
+2011-02-01 Tony Chang <tony@chromium.org> |
+ |
+ Reviewed by Kent Tamura. |
+ |
+ [chromium] disable arm uninitialized variable warnings |
+ https://bugs.webkit.org/show_bug.cgi?id=53553 |
+ |
+ We just got another error: |
+ third_party/WebKit/Source/WebCore/css/CSSPrimitiveValue.cpp:123:error: |
+ 'colorTransparent.unstatic.4879' may be used uninitialized in this |
+ function |
+ |
+ * WebCore.gyp/WebCore.gyp: |
+ |
+2011-02-01 chris reiss <christopher.reiss@nokia.com> |
+ |
+ Reviewed by Adam Barth. |
+ |
+ Self-replicating code makes Safari hang and eventually crash |
+ https://bugs.webkit.org/show_bug.cgi?id=15123 |
+ |
+ |
+ Here we are replicating the Firefox safeguard against |
+ recursive document.write( ) 's. |
+ |
+ See https://bug197052.bugzilla.mozilla.org/attachment.cgi?id=293907 in bug |
+ https://bugzilla.mozilla.org/show_bug.cgi?id=197052 . Firefox does two things - |
+ a) imposes a recursion limit of 20 on document.write( ) and |
+ b) once that limit is passed, panics all the way the call stack (rather than just returning one level.) |
+ To see why this is necessary, consider the script : |
+ |
+ <script> |
+ var t = document.body.innerHTML; |
+ document.write(t); |
+ </script> |
+ |
+ This will create a tree both broad and deep as the script keeps appending itself to the text. If |
+ we just return one level after the recursion limit is reached, we still allow millions of copies to |
+ duplicate (and execute). |
+ |
+ The recursion is fortunately depth-first, so as soon as we cross this limit, we panic up the callstack |
+ to prevent this situation. (IE apparently does the same thing, with a lower recursion limit.) |
+ |
+ Test: fast/dom/Document/document-write-recursion.html |
+ Test: fast/dom/Document/document-close-iframe-load.html |
+ Test: fast/dom/Document/document-close-nested-iframe-load.html |
+ |
+ |
+ * dom/Document.cpp: |
+ (WebCore::Document::Document): |
+ (WebCore::Document::write): |
+ * dom/Document.h: |
+ |
+2011-02-01 Johnny Ding <jnd@chromium.org> |
+ |
+ Reviewed by Darin Adler. |
+ |
+ Don't set user gesture in HTMLAnchorElement's click handler because the click handler can be triggered by untrusted event. |
+ https://bugs.webkit.org/show_bug.cgi?id=53424 |
+ |
+ Test: fast/events/popup-blocked-from-untrusted-click-event-on-anchor.html |
+ |
+ * html/HTMLAnchorElement.cpp: |
+ (WebCore::handleLinkClick): |
+ |
+2011-02-01 Csaba Osztrogonác <ossy@webkit.org> |
+ |
+ Unreviewed Qt buildfix after r77286. |
+ |
+ https://bugs.webkit.org/show_bug.cgi?id=53520 |
+ Remove the physical terminology from IntRect and FloatRect. |
+ |
+ * platform/graphics/TiledBackingStore.cpp: |
+ (WebCore::TiledBackingStore::createTiles): |
+ |
+2011-02-01 Sam Weinig <sam@webkit.org> |
+ |
+ Fix Mac production builds. |
+ |
+ * DerivedSources.make: |
+ * WebCore.xcodeproj/project.pbxproj: |
+ * platform/mac/ScrollAnimatorMac.h: |
+ * platform/mac/ScrollbarThemeMac.h: |
+ |
+2011-02-01 Darin Adler <darin@apple.com> |
+ |
+ Reviewed by Chris Fleizach. |
+ |
+ REGRESSION: Removing focus from area element causes unwanted scrolling |
+ https://bugs.webkit.org/show_bug.cgi?id=50169 |
+ |
+ Test: fast/images/imagemap-scroll.html |
+ |
+ * html/HTMLAreaElement.cpp: |
+ (WebCore::HTMLAreaElement::setFocus): Added override. Calls the new |
+ RenderImage::areaElementFocusChanged function. |
+ (WebCore::HTMLAreaElement::updateFocusAppearance): Removed the code |
+ here that calls setNeedsLayout on the image's renderer. This was an |
+ attempt to cause repaint of the renderer, but this function does not |
+ need to do that. Also changed this to use the imageElement function |
+ to avoid repeating code. |
+ |
+ * html/HTMLAreaElement.h: Updated for above changes. |
+ |
+ * rendering/RenderImage.cpp: |
+ (WebCore::RenderImage::paint): Updated for name change. |
+ (WebCore::RenderImage::paintAreaElementFocusRing): Renamed this from |
+ paintFocusRing, because it only paints area focus rings, and should |
+ not be confused with paintFocusRing functions in other classes. Also |
+ removed the unused style argument. Removed the code that used an |
+ HTMLCollection to see if the focused area element is for this image |
+ and instead just call imageElement on the area element. |
+ (WebCore::RenderImage::areaElementFocusChanged): Added. Calls repaint. |
+ |
+ * rendering/RenderImage.h: Added a public areaElementFocusChanged |
+ function for HTMLAreaElement to call. Made the paintFocusRing function |
+ private, renamed it to paintAreaElementFocusRing, and removed its |
+ unused style argument. |
+ |
+2011-02-01 Patrick Gansterer <paroga@webkit.org> |
+ |
+ Unreviewed WinCE build fix for r77286. |
+ |
+ * platform/graphics/wince/GraphicsContextWinCE.cpp: |
+ (WebCore::TransparentLayerDC::TransparentLayerDC): |
+ |
+2011-02-01 Chris Fleizach <cfleizach@apple.com> |
+ |
+ Reviewed by Darin Adler. |
+ |
+ AX: AXPosition of AXScrollArea is wrong |
+ https://bugs.webkit.org/show_bug.cgi?id=53511 |
+ |
+ AccessibilityScrollView needed to return a valid documentFrameView() object. |
+ At the same time, the code from document() should be consolidated in |
+ AccessibilityObject, so all objects can use it. |
+ |
+ Test: platform/mac/accessibility/webkit-scrollarea-position.html |
+ |
+ * accessibility/AccessibilityObject.cpp: |
+ (WebCore::AccessibilityObject::document): |
+ * accessibility/AccessibilityObject.h: |
+ * accessibility/AccessibilityScrollView.cpp: |
+ (WebCore::AccessibilityScrollView::accessibilityHitTest): |
+ (WebCore::AccessibilityScrollView::documentFrameView): |
+ * accessibility/AccessibilityScrollView.h: |
+ |
+2011-02-01 Zhenyao Mo <zmo@google.com> |
+ |
+ Reviewed by Kenneth Russell. |
+ |
+ getUniform should support SAMPLER_2D or SAMPLER_CUBE |
+ https://bugs.webkit.org/show_bug.cgi?id=52190 |
+ |
+ * html/canvas/WebGLRenderingContext.cpp: |
+ (WebCore::WebGLRenderingContext::getUniform): |
+ |
+2011-02-01 Zhenyao Mo <zmo@google.com> |
+ |
+ Reviewed by Darin Adler. |
+ |
+ Fix the incorrect usage of RetainPtr cases in GraphicsContext3DCG.cpp |
+ https://bugs.webkit.org/show_bug.cgi?id=53531 |
+ |
+ With this fix, running WebGL conformance tests should no longer crash randomly. |
+ |
+ * platform/graphics/cg/GraphicsContext3DCG.cpp: |
+ (WebCore::GraphicsContext3D::getImageData): |
+ |
+2011-02-01 Dimitri Glazkov <dglazkov@chromium.org> |
+ |
+ One more Chromium build fix after r77286. |
+ |
+ * platform/chromium/ScrollbarThemeChromiumMac.mm: |
+ (WebCore::ScrollbarThemeChromiumMac::paint): Changed to not use topLeft(). |
+ |
+2011-02-01 Sam Weinig <sam@webkit.org> |
+ |
+ Fix the build for Beth. |
+ |
+ * platform/mac/ScrollAnimatorMac.mm: |
+ (-[ScrollbarPainterControllerDelegate inLiveResizeForScrollerImpPair:]): |
+ |
+2011-02-01 Sam Weinig <sam@webkit.org> |
+ |
+ Reviewed by Beth Dakin. |
+ |
+ Part 2 for <rdar://problem/8492788> |
+ Adopt WKScrollbarPainterController |
+ |
+ Use header detection to define scrollbar painting controller #define. |
+ |
+ * WebCore.exp.in: |
+ * platform/mac/ScrollAnimatorMac.h: |
+ * platform/mac/ScrollbarThemeMac.h: |
+ * platform/mac/WebCoreSystemInterface.h: |
+ * platform/mac/WebCoreSystemInterface.mm: |
+ |
+2011-02-01 David Hyatt <hyatt@apple.com> |
+ |
+ Reviewed by Oliver Hunt. |
+ |
+ https://bugs.webkit.org/show_bug.cgi?id=53520 |
+ |
+ Remove the physical terminology from IntRect and FloatRect. |
+ |
+ Now that we have flipped RenderBlocks for vertical-rl and horizontal-bt writing modes, |
+ we need to update our terminology to be more accurate. |
+ |
+ I'm borrowing a page from AppKit here (which also supports flipped NSViews) and |
+ renaming right() and bottom() to maxX() and maxY(). These terms remain accurate |
+ even for flipped rectangles. |
+ |
+ * accessibility/AccessibilityRenderObject.cpp: |
+ (WebCore::AccessibilityRenderObject::boundsForVisiblePositionRange): |
+ * accessibility/mac/AccessibilityObjectWrapper.mm: |
+ (-[AccessibilityObjectWrapper position]): |
+ * dom/ClientRect.h: |
+ (WebCore::ClientRect::right): |
+ (WebCore::ClientRect::bottom): |
+ * html/HTMLCanvasElement.cpp: |
+ (WebCore::HTMLCanvasElement::convertLogicalToDevice): |
+ * html/canvas/CanvasRenderingContext2D.cpp: |
+ (WebCore::normalizeRect): |
+ * inspector/InspectorAgent.cpp: |
+ (WebCore::InspectorAgent::drawElementTitle): |
+ * page/DOMWindow.cpp: |
+ (WebCore::DOMWindow::adjustWindowRect): |
+ * page/DragController.cpp: |
+ (WebCore::dragLocForSelectionDrag): |
+ * page/EventHandler.cpp: |
+ (WebCore::EventHandler::sendContextMenuEventForKey): |
+ * page/PrintContext.cpp: |
+ (WebCore::PrintContext::computePageRectsWithPageSizeInternal): |
+ (WebCore::PrintContext::pageNumberForElement): |
+ * page/SpatialNavigation.cpp: |
+ (WebCore::end): |
+ (WebCore::areRectsFullyAligned): |
+ (WebCore::areRectsMoreThanFullScreenApart): |
+ (WebCore::below): |
+ (WebCore::rightOf): |
+ (WebCore::isRectInDirection): |
+ (WebCore::entryAndExitPointsForDirection): |
+ (WebCore::virtualRectForDirection): |
+ * page/WindowFeatures.cpp: |
+ (WebCore::WindowFeatures::WindowFeatures): |
+ * platform/ScrollView.cpp: |
+ (WebCore::ScrollView::wheelEvent): |
+ * platform/Scrollbar.cpp: |
+ (WebCore::Scrollbar::setFrameRect): |
+ * platform/ScrollbarThemeComposite.cpp: |
+ (WebCore::ScrollbarThemeComposite::splitTrack): |
+ * platform/chromium/ScrollbarThemeChromium.cpp: |
+ (WebCore::ScrollbarThemeChromium::paintTickmarks): |
+ * platform/graphics/FloatQuad.h: |
+ (WebCore::FloatQuad::FloatQuad): |
+ * platform/graphics/FloatRect.cpp: |
+ (WebCore::FloatRect::intersects): |
+ (WebCore::FloatRect::contains): |
+ (WebCore::FloatRect::intersect): |
+ (WebCore::FloatRect::unite): |
+ (WebCore::enclosingIntRect): |
+ * platform/graphics/FloatRect.h: |
+ (WebCore::FloatRect::maxX): |
+ (WebCore::FloatRect::maxY): |
+ (WebCore::FloatRect::contains): |
+ * platform/graphics/IntRect.cpp: |
+ (WebCore::IntRect::intersects): |
+ (WebCore::IntRect::contains): |
+ (WebCore::IntRect::intersect): |
+ (WebCore::IntRect::unite): |
+ * platform/graphics/IntRect.h: |
+ (WebCore::IntRect::maxX): |
+ (WebCore::IntRect::maxY): |
+ (WebCore::IntRect::shiftXEdgeTo): |
+ (WebCore::IntRect::shiftMaxXEdgeTo): |
+ (WebCore::IntRect::shiftYEdgeTo): |
+ (WebCore::IntRect::shiftMaxYEdgeTo): |
+ (WebCore::IntRect::contains): |
+ * platform/graphics/WidthIterator.cpp: |
+ (WebCore::WidthIterator::advance): |
+ * platform/graphics/cg/GraphicsContextCG.cpp: |
+ (WebCore::GraphicsContext::drawRect): |
+ (WebCore::GraphicsContext::fillPath): |
+ (WebCore::GraphicsContext::fillRect): |
+ * platform/graphics/cg/ImageBufferCG.cpp: |
+ (WebCore::getImageData): |
+ (WebCore::putImageData): |
+ * platform/graphics/cg/ImageCG.cpp: |
+ (WebCore::BitmapImage::draw): |
+ * platform/graphics/filters/FilterEffect.cpp: |
+ (WebCore::FilterEffect::copyImageBytes): |
+ * platform/graphics/mac/ComplexTextController.cpp: |
+ (WebCore::ComplexTextController::adjustGlyphsAndAdvances): |
+ * platform/graphics/mac/SimpleFontDataMac.mm: |
+ (WebCore::SimpleFontData::platformBoundsForGlyph): |
+ * platform/graphics/transforms/AffineTransform.cpp: |
+ (WebCore::AffineTransform::mapRect): |
+ * platform/graphics/win/FontCGWin.cpp: |
+ (WebCore::drawGDIGlyphs): |
+ * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp: |
+ (WebCore::MediaPlayerPrivate::paint): |
+ * platform/gtk/RenderThemeGtk.cpp: |
+ (WebCore::centerRectVerticallyInParentInputElement): |
+ * platform/mac/WidgetMac.mm: |
+ (WebCore::Widget::paint): |
+ * rendering/InlineFlowBox.cpp: |
+ (WebCore::InlineFlowBox::addBoxShadowVisualOverflow): |
+ (WebCore::InlineFlowBox::addTextBoxVisualOverflow): |
+ * rendering/InlineTextBox.cpp: |
+ (WebCore::InlineTextBox::selectionRect): |
+ (WebCore::InlineTextBox::paint): |
+ (WebCore::InlineTextBox::positionForOffset): |
+ * rendering/RenderBlock.cpp: |
+ (WebCore::RenderBlock::addOverflowFromChildren): |
+ (WebCore::RenderBlock::paintChildren): |
+ (WebCore::RenderBlock::paintEllipsisBoxes): |
+ (WebCore::RenderBlock::inlineSelectionGaps): |
+ (WebCore::RenderBlock::adjustPointToColumnContents): |
+ (WebCore::RenderBlock::flipForWritingModeIncludingColumns): |
+ (WebCore::RenderBlock::adjustForColumns): |
+ * rendering/RenderBlock.h: |
+ (WebCore::RenderBlock::FloatingObject::right): |
+ (WebCore::RenderBlock::FloatingObject::bottom): |
+ * rendering/RenderBox.cpp: |
+ (WebCore::RenderBox::reflectedRect): |
+ (WebCore::RenderBox::localCaretRect): |
+ (WebCore::RenderBox::addShadowOverflow): |
+ (WebCore::RenderBox::addLayoutOverflow): |
+ (WebCore::RenderBox::visualOverflowRectForPropagation): |
+ (WebCore::RenderBox::layoutOverflowRectForPropagation): |
+ (WebCore::RenderBox::flipForWritingMode): |
+ * rendering/RenderFrameSet.cpp: |
+ (WebCore::RenderFrameSet::paintColumnBorder): |
+ (WebCore::RenderFrameSet::paintRowBorder): |
+ * rendering/RenderInline.cpp: |
+ (WebCore::RenderInline::paintOutlineForLine): |
+ * rendering/RenderLayer.cpp: |
+ (WebCore::RenderLayer::getRectToExpose): |
+ (WebCore::cornerRect): |
+ (WebCore::RenderLayer::positionOverflowControls): |
+ (WebCore::RenderLayer::overflowBottom): |
+ (WebCore::RenderLayer::overflowRight): |
+ (WebCore::RenderLayer::paintResizer): |
+ * rendering/RenderLineBoxList.cpp: |
+ (WebCore::RenderLineBoxList::rangeIntersectsRect): |
+ (WebCore::RenderLineBoxList::paint): |
+ * rendering/RenderListItem.cpp: |
+ (WebCore::RenderListItem::positionListMarker): |
+ * rendering/RenderListMarker.cpp: |
+ (WebCore::RenderListMarker::paint): |
+ * rendering/RenderObject.cpp: |
+ (WebCore::RenderObject::repaintAfterLayoutIfNeeded): |
+ * rendering/RenderOverflow.h: |
+ (WebCore::RenderOverflow::RenderOverflow): |
+ (WebCore::RenderOverflow::addLayoutOverflow): |
+ (WebCore::RenderOverflow::addVisualOverflow): |
+ (WebCore::RenderOverflow::setLayoutOverflow): |
+ (WebCore::RenderOverflow::setVisualOverflow): |
+ (WebCore::RenderOverflow::resetLayoutOverflow): |
+ * rendering/RenderReplaced.cpp: |
+ (WebCore::RenderReplaced::shouldPaint): |
+ * rendering/RenderScrollbarTheme.cpp: |
+ (WebCore::RenderScrollbarTheme::constrainTrackRectToTrackPieces): |
+ * rendering/RenderTable.cpp: |
+ (WebCore::RenderTable::paint): |
+ * rendering/RenderTableCell.cpp: |
+ (WebCore::RenderTableCell::paint): |
+ * rendering/RenderTableSection.cpp: |
+ (WebCore::RenderTableSection::paintObject): |
+ * rendering/RenderText.cpp: |
+ (WebCore::RenderText::absoluteQuads): |
+ * rendering/RenderTextControlSingleLine.cpp: |
+ (WebCore::RenderTextControlSingleLine::forwardEvent): |
+ * rendering/RenderThemeMac.mm: |
+ (WebCore::RenderThemeMac::paintMenuListButtonGradients): |
+ (WebCore::RenderThemeMac::paintMenuListButton): |
+ (WebCore::RenderThemeMac::paintSliderTrack): |
+ * rendering/RenderView.cpp: |
+ (WebCore::RenderView::computeRectForRepaint): |
+ (WebCore::RenderView::docBottom): |
+ (WebCore::RenderView::docRight): |
+ * rendering/RootInlineBox.cpp: |
+ (WebCore::RootInlineBox::paddedLayoutOverflowRect): |
+ * rendering/svg/RenderSVGInlineText.cpp: |
+ (WebCore::RenderSVGInlineText::localCaretRect): |
+ |
+2011-02-01 Beth Dakin <bdakin@apple.com> |
+ |
+ Reviewed by Sam Weinig. |
+ |
+ Fix for <rdar://problem/8492788> Adopt WKScrollbarPainterController |
+ |
+ Lots of new WebCoreSystemInterface functions to export. |
+ * WebCore.exp.in: |
+ * platform/mac/WebCoreSystemInterface.h: |
+ * platform/mac/WebCoreSystemInterface.mm: |
+ |
+ Let the scrollAnimator know when the mouse has |
+ moved anywhere inside the page, and when the mouse |
+ has moved in or out of the window. |
+ * page/EventHandler.cpp: |
+ (WebCore::EventHandler::mouseMoved): |
+ (WebCore::EventHandler::updateMouseEventTargetNode): |
+ |
+ Let the scrollAnimator know when the window has become |
+ active or inactive. |
+ * page/FocusController.cpp: |
+ (WebCore::FocusController::setActive): |
+ |
+ Let the scrollAnimator know when all of these things |
+ are happening. |
+ * page/FrameView.cpp: |
+ (WebCore::FrameView::setContentsSize): |
+ (WebCore::FrameView::didMoveOnscreen): |
+ (WebCore::FrameView::willMoveOffscreen): |
+ (WebCore::FrameView::currentMousePosition): |
+ (WebCore::FrameView::contentsResized): |
+ |
+ New functions called through WebKit2 that allow the |
+ scrollAnimator to know when a live resize starts and ends. |
+ (WebCore::FrameView::willStartLiveResize): |
+ (WebCore::FrameView::willEndLiveResize): |
+ * page/FrameView.h: |
+ |
+ New functions on ScrollAnimator that pass information |
+ to the WKPainterController when we're using one. |
+ * platform/ScrollAnimator.h: |
+ (WebCore::ScrollAnimator::scrollableArea): |
+ (WebCore::ScrollAnimator::contentAreaWillPaint): |
+ (WebCore::ScrollAnimator::mouseEnteredContentArea): |
+ (WebCore::ScrollAnimator::mouseExitedContentArea): |
+ (WebCore::ScrollAnimator::mouseMovedInContentArea): |
+ (WebCore::ScrollAnimator::willStartLiveResize): |
+ (WebCore::ScrollAnimator::contentsResized): |
+ (WebCore::ScrollAnimator::willEndLiveResize): |
+ (WebCore::ScrollAnimator::contentAreaDidShow): |
+ (WebCore::ScrollAnimator::contentAreaDidHide): |
+ (WebCore::ScrollAnimatorMac::ScrollAnimatorMac): |
+ (WebCore::ScrollAnimatorMac::scrollbarPainterDelegate): |
+ (WebCore::ScrollAnimatorMac::setPainterForPainterController): |
+ (WebCore::ScrollAnimatorMac::removePainterFromPainterController): |
+ (WebCore::ScrollAnimatorMac::notityPositionChanged): |
+ (WebCore::ScrollAnimatorMac::contentAreaWillPaint): |
+ (WebCore::ScrollAnimatorMac::mouseEnteredContentArea): |
+ (WebCore::ScrollAnimatorMac::mouseExitedContentArea): |
+ (WebCore::ScrollAnimatorMac::mouseMovedInContentArea): |
+ (WebCore::ScrollAnimatorMac::willStartLiveResize): |
+ (WebCore::ScrollAnimatorMac::contentsResized): |
+ (WebCore::ScrollAnimatorMac::willEndLiveResize): |
+ (WebCore::ScrollAnimatorMac::contentAreaDidShow): |
+ (WebCore::ScrollAnimatorMac::contentAreaDidHide): |
+ |
+ Let the scrollAnimator know when this is happening. |
+ * platform/ScrollView.cpp: |
+ (WebCore::ScrollView::paint): |
+ |
+ New function lets the scrollAnimator get the current |
+ mouse position. |
+ * platform/ScrollView.h: |
+ (WebCore::ScrollView::currentMousePosition): |
+ |
+ New function that returns the scrollAnimator when needed. |
+ * platform/ScrollableArea.h: |
+ (WebCore::ScrollableArea::scrollAnimator): |
+ |
+ Keep track of if we're in a live resize using a new memeber |
+ variable. |
+ * platform/mac/ScrollAnimatorMac.h: |
+ (WebCore::ScrollAnimatorMac::inLiveResize): |
+ * platform/mac/ScrollAnimatorMac.mm: |
+ (WebCore::view): |
+ |
+ New delegates for the WKPainter and WKPainterController |
+ (-[ScrollbarPainterControllerDelegate initWithScrollAnimator:WebCore::]): |
+ (-[ScrollbarPainterControllerDelegate contentAreaRectForScrollerImpPair:]): |
+ (-[ScrollbarPainterControllerDelegate inLiveResizeForScrollerImpPair:]): |
+ (-[ScrollbarPainterControllerDelegate mouseLocationInContentAreaForScrollerImpPair:]): |
+ (-[ScrollbarPainterControllerDelegate scrollerImpPair:convertContentPoint:toScrollerImp:]): |
+ (-[ScrollbarPainterControllerDelegate scrollerImpPair:setContentAreaNeedsDisplayInRect:]): |
+ (-[ScrollbarPainterControllerDelegate scrollerImpPair:updateScrollerStyleForNewRecommendedScrollerStyle:]): |
+ (-[ScrollKnobAnimation initWithScrollbarPainter:forScrollAnimator:WebCore::animateKnobAlphaTo:duration:]): |
+ (-[ScrollKnobAnimation setCurrentProgress:]): |
+ (-[ScrollbarPainterDelegate initWithScrollAnimator:WebCore::]): |
+ (-[ScrollbarPainterDelegate convertRectToBacking:]): |
+ (-[ScrollbarPainterDelegate convertRectFromBacking:]): |
+ (-[ScrollbarPainterDelegate layer]): |
+ (-[ScrollbarPainterDelegate setUpAnimation:scrollerPainter:animateKnobAlphaTo:duration:]): |
+ (-[ScrollbarPainterDelegate scrollerImp:animateKnobAlphaTo:duration:]): |
+ (-[ScrollbarPainterDelegate scrollerImp:animateTrackAlphaTo:duration:]): |
+ (-[ScrollbarPainterDelegate scrollerImp:overlayScrollerStateChangedTo:]): |
+ |
+ Get the WKScrollbarPainterRefs to synch up with the |
+ WKScrollbarPainterControllerRefs when appropriate |
+ * platform/mac/ScrollbarThemeMac.h: |
+ * platform/mac/ScrollbarThemeMac.mm: |
+ (WebCore::ScrollbarThemeMac::registerScrollbar): |
+ (WebCore::ScrollbarThemeMac::unregisterScrollbar): |
+ (WebCore::ScrollbarThemeMac::setNewPainterForScrollbar): |
+ (WebCore::ScrollbarThemeMac::usesOverlayScrollbars): |
+ |
+ Implement ScrollableArea's virtual function contentsSize() for access |
+ through the scrollAnimator. |
+ * rendering/RenderLayer.h: |
+ (WebCore::RenderLayer::contentsSize): |
+ |
+2011-02-01 Carol Szabo <carol.szabo@nokia.com> |
+ |
+ Reviewed by David Hyatt. |
+ |
+ layoutTestController.counterValueForElementById does not return the correct value |
+ https://bugs.webkit.org/show_bug.cgi?id=53037 |
+ |
+ Test: fast/css/counters/deep-before.html |
+ |
+ * rendering/RenderTreeAsText.cpp: |
+ (WebCore::counterValueForElement): |
+ Modified to use the newly available RenderObject::beforePseudoElement() |
+ and RenderObject::afterPseudoElement() instead of the old imperfect |
+ algorithm to find the before and after pseudo elements. |
+ |
+2011-02-01 Anton Muhin <antonm@chromium.org> |
+ |
+ Reviewed by Adam Barth. |
+ |
+ Allow access for security origin same as this. |
+ https://bugs.webkit.org/show_bug.cgi?id=53440 |
+ |
+ Hard to test as newly added path currently is never hit. |
+ |
+ * page/SecurityOrigin.cpp: |
+ (WebCore::SecurityOrigin::canAccess): allow access if this == other |
+ |
+2011-01-31 Oliver Hunt <oliver@apple.com> |
+ |
+ Reviewed by Geoffrey Garen. |
+ |
+ Update JSObject storage for new marking API |
+ https://bugs.webkit.org/show_bug.cgi?id=53467 |
+ |
+ Update WebCore to handle new anonymous slot behaviour. |
+ |
+ * bindings/js/JSDOMWindowShell.cpp: |
+ (WebCore::JSDOMWindowShell::setWindow): |
+ * bindings/js/WorkerScriptController.cpp: |
+ (WebCore::WorkerScriptController::initScript): |
+ * bindings/scripts/CodeGeneratorJS.pm: |
+ |
+2011-02-01 Xiaomei Ji <xji@chromium.org> |
+ |
+ Reviewed by David Hyatt. |
+ |
+ Fix a text rendering problem when enclosing block is RTL and text runs |
+ are in different directionality. |
+ https://bugs.webkit.org/show_bug.cgi?id=34176 |
+ |
+ The problem happens in the following example scenario (ABC represents |
+ Hebrew characters): |
+ <div dir=rtl>this is a <span><span>test <span>ABC</span></span></span></div> |
+ |
+ The line consists of 3 text runs -- TextRun1 TextRun2 TextRun3. In which |
+ TextRun1 and TextRun2's bidi level are 2, and TextRun3's bidi level is 1. |
+ TextRun2 and TextRun3's least common ancestor is not a sibling of TextRun1. |
+ |
+ The visual bidi run order of the text runs is TextRun3 TextRun1 TextRun2. |
+ |
+ Inside RenderBlock::constructLine(), when RenderBlock::createLineBoxes() |
+ creates InlineFlowBox for TextRun2, it should check an InlineFlowBox for |
+ the run's render object's ancestor (not only its parent) has already |
+ been constructed or has something following it on the line, in which |
+ case, create a new box for TextRun2 instead of sharing the same box with |
+ TextRun3. |
+ |
+ In other words, the following 2 div should render the same results |
+ (ABC represents Hebrew characters). |
+ <div dir=rtl>this is a <span><span>test <span>ABC</span></span></span></div> |
+ <div dir=rtl>this is a <span>Test <span>ABC</span></span></div> |
+ |
+ Test: fast/dom/34176.html |
+ |
+ * rendering/RenderBlockLineLayout.cpp: |
+ (WebCore::parentIsConstructedOrHaveNext): |
+ (WebCore::RenderBlock::createLineBoxes): |
+ |
+2011-02-01 Abhishek Arya <inferno@chromium.org> |
+ |
+ Reviewed by Dan Bernstein. |
+ |
+ Do not add a node in the document's stylesheet candidate node list if the |
+ node is already removed from document. |
+ https://bugs.webkit.org/show_bug.cgi?id=53441 |
+ |
+ Test: fast/css/stylesheet-candidate-nodes-crash.xhtml |
+ |
+ * dom/Document.cpp: |
+ (WebCore::Document::addStyleSheetCandidateNode): |
+ |
+2011-02-01 Dave Hyatt <hyatt@apple.com> |
+ |
+ Reviewed by Darin Adler. |
+ |
+ https://bugs.webkit.org/show_bug.cgi?id=46422, make printing and pagination work |
+ with vertical text. |
+ |
+ Change printing functions to check writing-mode and properly swap width and height |
+ as needed. |
+ |
+ Fix the setScrollOrigin function so that the origin doesn't cause |
+ scroll spasming during printing (this is only partially successful, but it's better |
+ than it was). |
+ |
+ Rewrite computePageRects to handle both RTL documents properly as well as vertical |
+ text documents properly. |
+ |
+ * WebCore.exp.in: |
+ * page/FrameView.cpp: |
+ (WebCore::FrameView::adjustViewSize): |
+ (WebCore::FrameView::forceLayoutForPagination): |
+ * page/PrintContext.cpp: |
+ (WebCore::PrintContext::computePageRects): |
+ (WebCore::PrintContext::computePageRectsWithPageSizeInternal): |
+ (WebCore::PrintContext::computeAutomaticScaleFactor): |
+ (WebCore::PrintContext::spoolPage): |
+ (WebCore::PrintContext::spoolRect): |
+ * page/PrintContext.h: |
+ * page/mac/WebCoreFrameView.h: |
+ * platform/ScrollView.cpp: |
+ (WebCore::ScrollView::wheelEvent): |
+ * platform/ScrollView.h: |
+ * platform/mac/ScrollViewMac.mm: |
+ (WebCore::ScrollView::platformSetScrollOrigin): |
+ * rendering/RenderView.cpp: |
+ (WebCore::RenderView::layout): |
+ |
+2011-02-01 Mikhail Naganov <mnaganov@chromium.org> |
+ |
+ Reviewed by Pavel Feldman. |
+ |
+ Web Inspector: Fix profiles reset to avoid clearing heap profiles in Chromium. |
+ |
+ https://bugs.webkit.org/show_bug.cgi?id=53500 |
+ |
+ * inspector/InspectorProfilerAgent.cpp: |
+ (WebCore::InspectorProfilerAgent::resetFrontendProfiles): |
+ |
+2011-02-01 Mikhail Naganov <mnaganov@chromium.org> |
+ |
+ Reviewed by Pavel Feldman. |
+ |
+ Web Inspector: [Chromium] Landing detailed heap snapshots, part 1. |
+ |
+ https://bugs.webkit.org/show_bug.cgi?id=53173 |
+ |
+ Adding code for accessing heap snapshot data and |
+ performing graph calculations. |
+ |
+ * English.lproj/localizedStrings.js: |
+ * inspector/front-end/HeapSnapshot.js: |
+ (WebInspector.HeapSnapshotArraySlice): Helper class to avoid array contents copying. |
+ (WebInspector.HeapSnapshotEdge): Wrapper for accessing graph edge properties. |
+ (WebInspector.HeapSnapshotEdgeIterator): |
+ (WebInspector.HeapSnapshotNode): Wrapper for accessing graph node properties. |
+ (WebInspector.HeapSnapshotNodeIterator): |
+ (WebInspector.HeapSnapshot): Wrapper for the heap snapshot. |
+ (WebInspector.HeapSnapshotFilteredOrderedIterator): |
+ (WebInspector.HeapSnapshotEdgesProvider): |
+ (WebInspector.HeapSnapshotNodesProvider): |
+ (WebInspector.HeapSnapshotPathFinder): |
+ * inspector/front-end/HeapSnapshotView.js: |
+ (WebInspector.HeapSnapshotView.prototype._convertSnapshot): |
+ |
+2011-02-01 Adam Roben <aroben@apple.com> |
+ |
+ Fix linker warnings in Release_LTCG builds |
+ |
+ * WebCore.vcproj/WebCore.vcproj: Exclude EventNames.cpp and EventTarget.cpp from all |
+ configurations, since they get pulled in via DOMAllInOne.cpp. |
+ |
+2011-02-01 Alexander Pavlov <apavlov@chromium.org> |
+ |
+ Reviewed by Yury Semikhatsky. |
+ |
+ Web Inspector: [Chromium] Wrongly labelled context-menu item for links in Web Inspector's side-pane |
+ https://bugs.webkit.org/show_bug.cgi?id=53482 |
+ |
+ * English.lproj/localizedStrings.js: |
+ * inspector/front-end/ElementsPanel.js: |
+ (WebInspector.ElementsPanel.prototype.populateHrefContextMenu): |
+ * inspector/front-end/inspector.js: |
+ (WebInspector.resourceForURL): |
+ (WebInspector.openLinkExternallyLabel): |
+ |
+2011-02-01 Anton Muhin <antonm@chromium.org> |
+ |
+ Reviewed by Adam Barth. |
+ |
+ Propagate parent document security origin to newly create Document XML response |
+ https://bugs.webkit.org/show_bug.cgi?id=53444 |
+ |
+ Covered by the existing tests. |
+ |
+ * xml/XMLHttpRequest.cpp: |
+ (WebCore::XMLHttpRequest::responseXML): |
+ |
+2011-02-01 Yury Semikhatsky <yurys@chromium.org> |
+ |
+ Unreviewed. Rollout r77230 which caused many layout tests |
+ crashes on Chromium Debug bots. |
+ |
+ Async event handlers should not fire within a modal dialog |
+ https://bugs.webkit.org/show_bug.cgi?id=53202 |
+ |
+ * dom/Document.cpp: |
+ (WebCore::Document::Document): |
+ * dom/EventQueue.cpp: |
+ (WebCore::EventQueue::EventQueue): |
+ (WebCore::EventQueue::enqueueEvent): |
+ (WebCore::EventQueue::pendingEventTimerFired): |
+ * dom/EventQueue.h: |
+ |
+2011-02-01 Zoltan Herczeg <zherczeg@webkit.org> |
+ |
+ Reviewed by Dirk Schulze. |
+ |
+ LightElement changes does not require relayout. |
+ https://bugs.webkit.org/show_bug.cgi?id=53232 |
+ |
+ When an attribute of a LightElement changes, it |
+ send an update message to the lighting filters |
+ to update its corresponding LightSource objects, |
+ and repaint the filters. |
+ |
+ Duplicated 'id' attributes removed from svg-filter-animation.svg. |
+ |
+ Existing dynamic-update tests covers this feature. |
+ |
+ 5x speedup on manual-tests/svg-filter-animation.svg |
+ |
+ * manual-tests/svg-filter-animation.svg: |
+ * platform/graphics/filters/DistantLightSource.h: |
+ * platform/graphics/filters/FEDiffuseLighting.cpp: |
+ (WebCore::FEDiffuseLighting::setLightingColor): |
+ (WebCore::FEDiffuseLighting::setSurfaceScale): |
+ (WebCore::FEDiffuseLighting::setDiffuseConstant): |
+ (WebCore::FEDiffuseLighting::setKernelUnitLengthX): |
+ (WebCore::FEDiffuseLighting::setKernelUnitLengthY): |
+ * platform/graphics/filters/FEDiffuseLighting.h: |
+ * platform/graphics/filters/LightSource.cpp: |
+ (WebCore::PointLightSource::setX): |
+ (WebCore::PointLightSource::setY): |
+ (WebCore::PointLightSource::setZ): |
+ (WebCore::SpotLightSource::setX): |
+ (WebCore::SpotLightSource::setY): |
+ (WebCore::SpotLightSource::setZ): |
+ (WebCore::SpotLightSource::setPointsAtX): |
+ (WebCore::SpotLightSource::setPointsAtY): |
+ (WebCore::SpotLightSource::setPointsAtZ): |
+ (WebCore::SpotLightSource::setSpecularExponent): |
+ (WebCore::SpotLightSource::setLimitingConeAngle): |
+ (WebCore::DistantLightSource::setAzimuth): |
+ (WebCore::DistantLightSource::setElevation): |
+ (WebCore::LightSource::setAzimuth): |
+ (WebCore::LightSource::setElevation): |
+ (WebCore::LightSource::setX): |
+ (WebCore::LightSource::setY): |
+ (WebCore::LightSource::setZ): |
+ (WebCore::LightSource::setPointsAtX): |
+ (WebCore::LightSource::setPointsAtY): |
+ (WebCore::LightSource::setPointsAtZ): |
+ (WebCore::LightSource::setSpecularExponent): |
+ (WebCore::LightSource::setLimitingConeAngle): |
+ * platform/graphics/filters/LightSource.h: |
+ * platform/graphics/filters/PointLightSource.h: |
+ * platform/graphics/filters/SpotLightSource.h: |
+ * rendering/svg/RenderSVGResourceFilter.cpp: |
+ (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged): |
+ * svg/SVGFEDiffuseLightingElement.cpp: |
+ (WebCore::SVGFEDiffuseLightingElement::setFilterEffectAttribute): |
+ (WebCore::SVGFEDiffuseLightingElement::lightElementAttributeChanged): |
+ (WebCore::SVGFEDiffuseLightingElement::build): |
+ (WebCore::SVGFEDiffuseLightingElement::findLightElement): |
+ (WebCore::SVGFEDiffuseLightingElement::findLight): |
+ * svg/SVGFEDiffuseLightingElement.h: |
+ * svg/SVGFELightElement.cpp: |
+ (WebCore::SVGFELightElement::svgAttributeChanged): |
+ * svg/SVGFilterPrimitiveStandardAttributes.cpp: |
+ (WebCore::SVGFilterPrimitiveStandardAttributes::setFilterEffectAttribute): |
+ * svg/SVGFilterPrimitiveStandardAttributes.h: |
+ |
+2011-02-01 Roland Steiner <rolandsteiner@chromium.org> |
+ |
+ Reviewed by Dimitri Glazkov. |
+ |
+ Bug 53289 - DOM: Move DocumentOrderedMap from Document into separate files |
+ https://bugs.webkit.org/show_bug.cgi?id=53289 |
+ |
+ Moving the nested class DocumentOrderedMap from Document into separate files, |
+ updating code where necessary. |
+ |
+ No new tests. (refactoring) |
+ |
+ * Android.mk: |
+ * CMakeLists.txt: |
+ * GNUMakefile.am: |
+ * WebCore.gypi: |
+ * WebCore.pro: |
+ * WebCore.vcproj/WebCore.vcproj: |
+ * WebCore.xcodeproj/project.pbxproj: |
+ * dom/Document.cpp: |
+ (WebCore::Document::getElementById): |
+ (WebCore::Document::getImageMap): |
+ * dom/Document.h: |
+ * dom/DocumentOrderedMap.cpp: Added. |
+ (WebCore::keyMatchesId): |
+ (WebCore::keyMatchesMapName): |
+ (WebCore::keyMatchesLowercasedMapName): |
+ (WebCore::DocumentOrderedMap::clear): |
+ (WebCore::DocumentOrderedMap::add): |
+ (WebCore::DocumentOrderedMap::remove): |
+ (WebCore::DocumentOrderedMap::get): |
+ (WebCore::DocumentOrderedMap::getElementById): |
+ (WebCore::DocumentOrderedMap::getElementByMapName): |
+ (WebCore::DocumentOrderedMap::getElementByLowercasedMapName): |
+ * dom/DocumentOrderedMap.h: Added. |
+ (WebCore::DocumentOrderedMap::contains): |
+ (WebCore::DocumentOrderedMap::containsMultiple): |
+ * dom/DOMAllInOne.cpp: |
+ |
+2011-02-01 Mario Sanchez Prada <msanchez@igalia.com> |
+ |
+ Reviewed by Martin Robinson. |
+ |
+ [Gtk] atk_text_set_caret_offset fails for list items |
+ https://bugs.webkit.org/show_bug.cgi?id=53388 |
+ |
+ Allow using text ranges across list items. |
+ |
+ * accessibility/gtk/AccessibilityObjectAtk.cpp: |
+ (WebCore::AccessibilityObject::allowsTextRanges): Add list items |
+ to the list of accessibility objects supporting text ranges. |
+ |
+2011-02-01 Mario Sanchez Prada <msanchez@igalia.com> |
+ |
+ Reviewed by Martin Robinson. |
+ |
+ [GTK] character range extents is off when the end of a wrapped line is included |
+ https://bugs.webkit.org/show_bug.cgi?id=53323 |
+ |
+ Fixed wrong calculation getting the range extents. |
+ |
+ * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: |
+ (webkit_accessible_text_get_range_extents): Removed '+1' since the |
+ requested interval shouldn't include the last character. |
+ |
+2011-02-01 Mario Sanchez Prada <msanchez@igalia.com> |
+ |
+ Reviewed by Martin Robinson. |
+ |
+ [GTK] Caret Offset is one off at the end of wrapped lines |
+ https://bugs.webkit.org/show_bug.cgi?id=53300 |
+ |
+ Consider linebreaks as special cases. |
+ |
+ * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: |
+ (objectAndOffsetUnignored): In order to avoid getting wrong values |
+ when around linebreaks, we need to workaround this by explicitly |
+ avoiding those '\n' text nodes from affecting the result of |
+ calling to TextIterator:rangeLength(). |
+ |
+2011-02-01 Roland Steiner <rolandsteiner@chromium.org> |
+ |
+ Unreviewed, rolling out r77229. |
+ http://trac.webkit.org/changeset/77229 |
+ https://bugs.webkit.org/show_bug.cgi?id=53289 |
+ |
+ revert mysterious build breakage |
+ |
+ * Android.mk: |
+ * CMakeLists.txt: |
+ * GNUmakefile.am: |
+ * WebCore.gypi: |
+ * WebCore.pro: |
+ * WebCore.vcproj/WebCore.vcproj: |
+ * WebCore.xcodeproj/project.pbxproj: |
+ * dom/DOMAllInOne.cpp: |
+ * dom/Document.cpp: |
+ (WebCore::Document::DocumentOrderedMap::clear): |
+ (WebCore::Document::DocumentOrderedMap::add): |
+ (WebCore::Document::DocumentOrderedMap::remove): |
+ (WebCore::Document::DocumentOrderedMap::get): |
+ (WebCore::keyMatchesId): |
+ (WebCore::Document::getElementById): |
+ (WebCore::keyMatchesMapName): |
+ (WebCore::keyMatchesLowercasedMapName): |
+ (WebCore::Document::getImageMap): |
+ * dom/Document.h: |
+ (WebCore::Document::DocumentOrderedMap::contains): |
+ (WebCore::Document::DocumentOrderedMap::containsMultiple): |
+ * dom/DocumentOrderedMap.cpp: Removed. |
+ * dom/DocumentOrderedMap.h: Removed. |
+ |
+2011-02-01 Mihai Parparita <mihaip@chromium.org> |
+ |
+ Reviewed by James Robinson. |
+ |
+ Async event handlers should not fire within a modal dialog |
+ https://bugs.webkit.org/show_bug.cgi?id=53202 |
+ |
+ Asychronous events that use EventQueue would currently fire while a |
+ modal dialog (e.g. window.alert()) was up. Change EventQueue to use a |
+ SuspendableTimer (which automatically gets suspended while dialogs are |
+ up and in other cases where JS execution is not allowed). |
+ |
+ Test: fast/events/scroll-event-during-modal-dialog.html |
+ |
+ * dom/Document.cpp: |
+ (WebCore::Document::Document): |
+ * dom/EventQueue.cpp: |
+ (WebCore::EventQueueTimer::EventQueueTimer): |
+ (WebCore::EventQueueTimer::fired): |
+ (WebCore::EventQueue::EventQueue): |
+ (WebCore::EventQueue::enqueueEvent): |
+ (WebCore::EventQueue::pendingEventTimerFired): |
+ * dom/EventQueue.h: |
+ (WebCore::EventQueue::create): |
+ |
+2011-02-01 Roland Steiner <rolandsteiner@chromium.org> |
+ |
+ Reviewed by Dimitri Glazkov. |
+ |
+ Bug 53289 - DOM: Move DocumentOrderedMap from Document into separate files |
+ https://bugs.webkit.org/show_bug.cgi?id=53289 |
+ |
+ Moving the nested class DocumentOrderedMap from Document into separate files, |
+ updating code where necessary. |
+ |
+ No new tests. (refactoring) |
+ |
+ * Android.mk: |
+ * CMakeLists.txt: |
+ * GNUMakefile.am: |
+ * WebCore.gypi: |
+ * WebCore.pro: |
+ * WebCore.vcproj/WebCore.vcproj: |
+ * WebCore.xcodeproj/project.pbxproj: |
+ * dom/Document.cpp: |
+ (WebCore::Document::getElementById): |
+ (WebCore::Document::getImageMap): |
+ * dom/Document.h: |
+ * dom/DocumentOrderedMap.cpp: Added. |
+ (WebCore::keyMatchesId): |
+ (WebCore::keyMatchesMapName): |
+ (WebCore::keyMatchesLowercasedMapName): |
+ (WebCore::DocumentOrderedMap::clear): |
+ (WebCore::DocumentOrderedMap::add): |
+ (WebCore::DocumentOrderedMap::remove): |
+ (WebCore::DocumentOrderedMap::get): |
+ (WebCore::DocumentOrderedMap::getElementById): |
+ (WebCore::DocumentOrderedMap::getElementByMapName): |
+ (WebCore::DocumentOrderedMap::getElementByLowercasedMapName): |
+ * dom/DocumentOrderedMap.h: Added. |
+ (WebCore::DocumentOrderedMap::contains): |
+ (WebCore::DocumentOrderedMap::containsMultiple): |
+ * dom/DOMAllInOne.cpp: |
+ |
+2011-02-01 Naoki Takano <takano.naoki@gmail.com> |
+ |
+ Reviewed by Darin Fisher. |
+ |
+ [Chromium] Autofill should work with HTML5 form elements |
+ https://bugs.webkit.org/show_bug.cgi?id=51809 |
+ http://crbug.com/65654 |
+ |
+ No new tests, because this fix is for Chromium project and hard to test only in WebKit project. |
+ |
+ * html/InputType.h: Insert comment for canSetSuggestedValue(). |
+ * html/TextFieldInputType.cpp: |
+ (WebCore::TextFieldInputType::canSetSuggestedValue): Implemented to return always true for that all text filed inputs can be completed. |
+ * html/TextFieldInputType.h: Declare canSetSuggestedValue(). |
+ * html/TextInputType.cpp: Delete canSetSuggestedValue() not to return true anymore. |
+ * html/TextInputType.h: Delete canSetSuggestedValue() not to return true anymore. |
+ |
+2011-02-01 Kent Tamura <tkent@chromium.org> |
+ |
+ Reviewed by Dan Bernstein. |
+ |
+ REGRESSION (r65062): Safari loops forever under WebCore::plainTextToMallocAllocatedBuffer() |
+ https://bugs.webkit.org/show_bug.cgi?id=53272 |
+ |
+ * editing/TextIterator.cpp: |
+ (WebCore::TextIterator::handleTextBox): Pass the appropriate renderer to emitText(). |
+ |
+2011-01-31 Alexey Proskuryakov <ap@apple.com> |
+ |
+ Reviewed by Maciej Stachowiak. |
+ |
+ https://bugs.webkit.org/show_bug.cgi?id=53466 |
+ Move WebKit2 to printing via API methods |
+ |
+ * WebCore.exp.in: Export IntRect::scale(). |
+ |
+2011-01-31 Patrick Gansterer <paroga@webkit.org> |
+ |
+ Reviewed by Adam Barth. |
+ |
+ Remove obsolete comment after r41871 |
+ https://bugs.webkit.org/show_bug.cgi?id=53406 |
+ |
+ * dom/Document.h: |
+ |
+2011-01-31 Simon Fraser <simon.fraser@apple.com> |
+ |
+ Fix according to reviewer comments: can just use Color::black now. |
+ |
+ * platform/graphics/ShadowBlur.cpp: |
+ (WebCore::ShadowBlur::drawInsetShadow): |
+ (WebCore::ShadowBlur::drawRectShadowWithoutTiling): |
+ |
+2011-01-31 Simon Fraser <simon.fraser@apple.com> |
+ |
+ Reviewed by Sam Weinig. |
+ |
+ Clean up ShadowBlur |
+ https://bugs.webkit.org/show_bug.cgi?id=53472 |
+ |
+ Some minor ShadowBlur cleanup. |
+ |
+ * platform/graphics/ShadowBlur.h: |
+ * platform/graphics/ShadowBlur.cpp: |
+ (WebCore::ShadowBlur::ShadowBlur): Use m_blurRadius rather than the radius |
+ paramter. |
+ (WebCore::ShadowBlur::adjustBlurRadius): Renamed from adjustBlurDistance. |
+ (WebCore::ShadowBlur::calculateLayerBoundingRect): Rename layerFloatRect to |
+ layerRect. Make frameSize a float. |
+ (WebCore::ShadowBlur::beginShadowLayer): This now takes a precomputed |
+ layerRect rather than calling calculateLayerBoundingRect() to compute |
+ it itself, since we were calling calculateLayerBoundingRect() twice. |
+ (WebCore::ShadowBlur::drawRectShadow): Optimize to call calculateLayerBoundingRect() |
+ only once. The shadowRect variable was unused, so two return paths could be |
+ collapsed into one. |
+ (WebCore::ShadowBlur::drawInsetShadow): Call calculateLayerBoundingRect() before |
+ beginShadowLayer() now. |
+ (WebCore::ShadowBlur::drawRectShadowWithoutTiling): The layerRect gets passed in. |
+ We always used alpha=1, so no need to pass that in. |
+ (WebCore::ShadowBlur::drawRectShadowWithTiling): We always used alpha=1, so no need to |
+ pass that in. Move shadowRect down to first use. |
+ ShadowBlur::clipBounds() was unused. |
+ |
+2011-01-31 No'am Rosenthal <noam.rosenthal@nokia.com> |
+ |
+ Reviewed by Kenneth Rohde Christiansen. |
+ |
+ [Qt] QWebElements example from QtWebKit Bridge documentation does not work at all |
+ https://bugs.webkit.org/show_bug.cgi?id=46748 |
+ |
+ This problem disappears when we register QWebElement using qRegisterMetaType, which we now do in QtInstance. |
+ Added a regression test to tst_QWebFrame. |
+ |
+ * bridge/qt/qt_instance.cpp: |
+ (JSC::Bindings::QtInstance::QtInstance): |
+ |
+2011-01-27 MORITA Hajime <morrita@google.com> |
+ |
+ Reviewed by Dimitri Glazkov. |
+ |
+ Convert <progress> shadow DOM to a DOM-based shadow. |
+ https://bugs.webkit.org/show_bug.cgi?id=50660 |
+ |
+ * Removed RenderProgress::m_valuePart, moved the shadow node |
+ to the shadow root of HTMLProgressElement. |
+ * Removed hard-coded pseudo ID for -webkit-progress-bar-value. |
+ ProgressBarValueElement is defined only for overriding |
+ shadowPseudoId(). |
+ |
+ No new tests. No behavioral change. |
+ |
+ * css/CSSSelector.cpp: |
+ (WebCore::CSSSelector::pseudoId): |
+ (WebCore::nameToPseudoTypeMap): |
+ (WebCore::CSSSelector::extractPseudoType): |
+ * css/CSSSelector.h: |
+ * html/HTMLProgressElement.cpp: |
+ (WebCore::ProgressBarValueElement::ProgressBarValueElement): |
+ (WebCore::ProgressBarValueElement::shadowPseudoId): |
+ (WebCore::ProgressBarValueElement::create): |
+ (WebCore::ProgressBarValueElement::detach): |
+ (WebCore::HTMLProgressElement::parseMappedAttribute): |
+ (WebCore::HTMLProgressElement::attach): |
+ (WebCore::HTMLProgressElement::valuePart): |
+ (WebCore::HTMLProgressElement::didElementStateChange): |
+ (WebCore::HTMLProgressElement::createShadowSubtreeIfNeeded): |
+ * html/HTMLProgressElement.h: |
+ * rendering/RenderProgress.cpp: |
+ (WebCore::RenderProgress::~RenderProgress): |
+ (WebCore::RenderProgress::updateFromElement): |
+ (WebCore::RenderProgress::layoutParts): |
+ (WebCore::RenderProgress::shouldHaveParts): |
+ (WebCore::RenderProgress::valuePart): |
+ * rendering/RenderProgress.h: |
+ * rendering/style/RenderStyleConstants.h: |
+ |
+2011-01-31 Charlie Reis <creis@chromium.org> |
+ |
+ Reviewed by Mihai Parparita. |
+ |
+ Add sanity check to help diagnose bug 52819 |
+ https://bugs.webkit.org/show_bug.cgi?id=53402 |
+ |
+ Crash early if the children of fromItem look invalid. |
+ |
+ * loader/HistoryController.cpp: |
+ |
+2011-01-31 Kalle Vahlman <kalle.vahlman@movial.com> |
+ |
+ Reviewed by Andreas Kling. |
+ |
+ [Qt] canvas.drawImage(HTMLVideoElement) doesn't work with Qt Multimedia backend |
+ https://bugs.webkit.org/show_bug.cgi?id=53325 |
+ |
+ Reimplement paintCurrentFrameInContext() rather than delegate the |
+ rendering to paint() to make sure we really do get the video frame |
+ content into the GraphicsContext, regardless of accelerated |
+ compositing and the video scene state. |
+ |
+ * platform/graphics/qt/MediaPlayerPrivateQt.cpp: |
+ (WebCore::MediaPlayerPrivateQt::paintCurrentFrameInContext): |
+ * platform/graphics/qt/MediaPlayerPrivateQt.h: |
+ |
+2011-01-31 Emil A Eklund <eae@chromium.org> |
+ |
+ Reviewed by Darin Adler. |
+ |
+ Setting "selected" attribute to false should have no effect in single line <select> |
+ https://bugs.webkit.org/show_bug.cgi?id=52436 |
+ |
+ Change SelectElement::setSelectedIndex to select the first selectable |
+ option when the select state of all options is set to false as required |
+ by the HTML5 specification. |
+ |
+ Test: fast/dom/HTMLSelectElement/selected-false.html |
+ |
+ * dom/SelectElement.cpp: |
+ (WebCore::SelectElement::setSelectedIndex): |
+ |
+2011-01-31 Alexander Pavlov <apavlov@chromium.org> |
+ |
+ Reviewed by Yury Semikhatsky. |
+ |
+ Web Inspector: Console source references need a left-margin |
+ https://bugs.webkit.org/show_bug.cgi?id=53308 |
+ |
+ * inspector/front-end/inspector.css: |
+ (.console-message-url): Added a 4px margin on the left. |
+ |
+2011-01-31 Carol Szabo <carol.szabo@nokia.com> |
+ |
+ Reviewed by David Hyatt. |
+ |
+ Code Changes only. |
+ |
+ It is needlessly expensive to find the generating node from an anonymous renderer of a pseudoelement. |
+ https://bugs.webkit.org/show_bug.cgi?id=53024 |
+ |
+ No new tests. No change in functionality |
+ |
+ * rendering/RenderObject.h: |
+ (WebCore::RenderObject::before): |
+ (WebCore::RenderObject::after): |
+ (WebCore::RenderObject::generatingNode): |
+ Added new accessors for the use of the CSS 2.1 counters code |
+ (mainlyly) |
+ * rendering/RenderObjectChildList.cpp: |
+ (WebCore::beforeAfterContainer): |
+ (WebCore::RenderObjectChildList::invalidateCounters): |
+ (WebCore::RenderObjectChildList::before): |
+ (WebCore::RenderObjectChildList::after): |
+ Refactored the code to take advantage of the new accessors. |
+ (WebCore::RenderObjectChildList::updateBeforeAfterContent): |
+ Changed to store the generating node in the :before and :after |
+ renderers. |
+ * rendering/RenderObjectChildList.h: |
+ |
+2011-01-31 Krithigassree Sambamurthy <krithigassree.sambamurthy@nokia.com> |
+ |
+ Reviewed by David Hyatt. |
+ |
+ Add background-clip to background shorthand |
+ https://bugs.webkit.org/show_bug.cgi?id=52080 |
+ |
+ Added background-clip to background-shorthand. Also made changes to |
+ include webkitMaskClip to the mask shorthand to keep both in sync. |
+ |
+ * css/CSSParser.cpp: |
+ (WebCore::CSSParser::parseValue): |
+ (WebCore::CSSParser::parseFillShorthand): |
+ |
+2011-01-31 Darin Adler <darin@apple.com> |
+ |
+ Reviewed by Adele Peterson. |
+ |
+ WKView should support scrollPageDown:, scrollPageUp:, scrollToBeg and other similar selectors |
+ https://bugs.webkit.org/show_bug.cgi?id=53460 |
+ |
+ * editing/EditorCommand.cpp: |
+ (WebCore::executeScrollPageBackward): Added. |
+ (WebCore::executeScrollPageForward): Added. |
+ (WebCore::executeScrollToBeginningOfDocument): Added. |
+ (WebCore::executeScrollToEndOfDocument): Added. |
+ (WebCore::createCommandMap): Added the four commands above to the map. |
+ |
+2011-01-31 Dan Bernstein <mitz@apple.com> |
+ |
+ Reviewed by Adele Peterson. |
+ |
+ Inter-ideograph justification should apply to hiragana and katakana as well |
+ https://bugs.webkit.org/show_bug.cgi?id=53464 |
+ |
+ Changed the test for expansion opportunities from isCJKIdeograph() to isCJKIdeographOrSymbol(). |
+ |
+ * platform/graphics/Font.cpp: |
+ (WebCore::Font::expansionOpportunityCount): |
+ * platform/graphics/WidthIterator.cpp: |
+ (WebCore::WidthIterator::advance): |
+ * platform/graphics/mac/ComplexTextController.cpp: |
+ (WebCore::ComplexTextController::adjustGlyphsAndAdvances): |
+ |
+2011-01-31 Dimitri Glazkov <dglazkov@chromium.org> |
+ |
+ Reviewed by James Robinson. |
+ |
+ REGRESSION(r76951): Appearance of media controls changed slightly on Qt/Chromium ports |
+ https://bugs.webkit.org/show_bug.cgi?id=53314 |
+ |
+ Fixes media/controls-strict.html on Chromium. |
+ |
+ * css/mediaControlsChromium.css: |
+ (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline): |
+ Added proper box-sizing to avoid differences between strict/quirks mode. |
+ |
+2011-01-31 Kent Tamura <tkent@chromium.org> |
+ |
+ Reviewed by Dimitri Glazkov. |
+ |
+ Validation message bubble shouldn't inherit text-security style |
+ https://bugs.webkit.org/show_bug.cgi?id=53457 |
+ |
+ No new tests because the validation message feature depends on timers |
+ and is enabled only in Chromium port. |
+ |
+ * css/html.css: |
+ (::-webkit-validation-bubble): Reset -webkit-text-security. |
+ |
+2011-01-31 Michael Saboff <msaboff@apple.com> |
+ |
+ Reviewed by Geoffrey Garen. |
+ |
+ Potentially Unsafe HashSet of RuntimeObject* in RootObject definition |
+ https://bugs.webkit.org/show_bug.cgi?id=53271 |
+ |
+ Reapplying this patch again. |
+ The removal of this patch in <http://trac.webkit.org/changeset/77125> |
+ as part of https://bugs.webkit.org/show_bug.cgi?id=53418, |
+ removed the both the first (failing) patch (r76893) and this fixed |
+ patch (r76969). This patch includes slight changes necessitated by |
+ r77151. |
+ |
+ Reapplying this patch with the change that the second ASSERT in |
+ RootObject::removeRuntimeObject was changed to use |
+ .uncheckedGet() instead of the failing .get(). The object in question |
+ could be in the process of being GC'ed. The get() call will not return |
+ such an object while the uncheckedGet() call will return the (unsafe) |
+ object. This is the behavior we want. |
+ |
+ Precautionary change. |
+ Changed RootObject to use WeakGCMap instead of HashSet. |
+ Found will looking for another issue, but can't produce a test case |
+ that is problematic. THerefore there aren't any new tests. |
+ |
+ * bridge/runtime_root.cpp: |
+ (JSC::Bindings::RootObject::invalidate): |
+ (JSC::Bindings::RootObject::addRuntimeObject): |
+ (JSC::Bindings::RootObject::removeRuntimeObject): |
+ * bridge/runtime_root.h: |
+ |
+2011-01-31 Andreas Kling <kling@webkit.org> |
+ |
+ Unbreak Qt build after r77151. |
+ |
+ * bridge/qt/qt_instance.cpp: |
+ (JSC::Bindings::QtInstance::removeCachedMethod): |
+ (JSC::Bindings::QtInstance::markAggregate): |
+ |
+2011-01-31 takano takumi <takano@apple.com> |
+ |
+ Reviewed by Dave Hyatt. |
+ |
+ Implement text-combine rendering code |
+ https://bugs.webkit.org/show_bug.cgi?id=50621 |
+ |
+ Test: fast/text/international/text-combine-image-test.html |
+ |
+ * Android.mk: Added RenderCombineText.cpp/h |
+ * CMakeLists.txt: Added RenderCombineText.cpp/h |
+ * GNUmakefile.am: Added RenderCombineText.cpp/h |
+ * WebCore.exp.in: |
+ * WebCore.gypi: Added RenderCombineText.cpp/h |
+ * WebCore.pro: Added RenderCombineText.cpp/h |
+ * WebCore.vcproj/WebCore.vcproj: Added RenderCombineText.cpp/h |
+ * WebCore.xcodeproj/project.pbxproj: Added RenderCombineText.cpp/h |
+ * css/CSSFontFaceSource.cpp: |
+ (WebCore::CSSFontFaceSource::getFontData): |
+ - Added fontDescription.widthVariant to SimpleFontData creation. |
+ * css/CSSStyleSelector.cpp: |
+ (WebCore::CSSStyleSelector::applyProperty): |
+ - Changed to set "Unique" flag to RenderStyle in case of TextCombine. |
+ * dom/Text.cpp: |
+ (WebCore::Text::createRenderer): |
+ - Changed to create RenderCombineText in case of TextCombine. |
+ * loader/cache/CachedFont.cpp: |
+ (WebCore::CachedFont::platformDataFromCustomData): |
+ - Added FontWidthVariant as an argument for FontPlatformData creation. |
+ * loader/cache/CachedFont.h: |
+ - Ditto. |
+ * platform/graphics/Font.h: |
+ (WebCore::Font::widthVariant): |
+ - The accessor to FontWidthVariant member variable. |
+ * platform/graphics/FontCache.cpp: |
+ - Made cache to incorporate FontWidthVariant value. |
+ (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey): |
+ (WebCore::FontPlatformDataCacheKey::operator==): |
+ (WebCore::computeHash): |
+ (WebCore::FontCache::getCachedFontPlatformData): |
+ * platform/graphics/FontDescription.h: |
+ - Add a member variable that holds a width variant - none, half-width, third-width, and quarter-width. |
+ (WebCore::FontDescription::FontDescription): |
+ (WebCore::FontDescription::widthVariant): |
+ (WebCore::FontDescription::setWidthVariant): |
+ (WebCore::FontDescription::operator==): |
+ * platform/graphics/FontWidthVariant.h: Added. |
+ * platform/graphics/cairo/FontCustomPlatformData.h: |
+ - Changed to carry FontWidthVariant value. |
+ * platform/graphics/cocoa/FontPlatformData.h: |
+ - Changed to carry FontWidthVariant value. |
+ (WebCore::FontPlatformData::FontPlatformData): |
+ (WebCore::FontPlatformData::widthVariant): |
+ (WebCore::FontPlatformData::hash): |
+ (WebCore::FontPlatformData::operator==): |
+ * platform/graphics/cocoa/FontPlatformDataCocoa.mm: |
+ (WebCore::FontPlatformData::FontPlatformData): |
+ - Changed to carry FontWidthVariant value. |
+ (WebCore::FontPlatformData::operator=): |
+ - Ditto. |
+ (WebCore::mapFontWidthVariantToCTFeatureSelector): |
+ - A function to map a FontWidthVariant value to a CoreText's text spacing feature selector. |
+ (WebCore::FontPlatformData::ctFont): |
+ - Changed to create CTFont with text spacing variant based on FontWidthVariant. |
+ * platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp: |
+ (WebCore::FontCustomPlatformData::fontPlatformData): |
+ - Changed to carry FontWidthVariant value. |
+ * platform/graphics/haiku/FontCustomPlatformData.cpp: |
+ (WebCore::FontCustomPlatformData::fontPlatformData): |
+ - Changed to carry FontWidthVariant value. |
+ * platform/graphics/haiku/FontCustomPlatformData.h: |
+ * platform/graphics/mac/FontCacheMac.mm: |
+ (WebCore::FontCache::createFontPlatformData): |
+ - Changed to carry FontWidthVariant value. |
+ * platform/graphics/mac/FontCustomPlatformData.cpp: |
+ (WebCore::FontCustomPlatformData::fontPlatformData): |
+ - Changed to carry FontWidthVariant value. |
+ * platform/graphics/mac/FontCustomPlatformData.h: |
+ - Ditto. |
+ * platform/graphics/mac/GlyphPageTreeNodeMac.cpp: |
+ (WebCore::shouldUseCoreText): |
+ - Changed to skip CT path when width variant is specified. |
+ * platform/graphics/pango/FontCustomPlatformDataPango.cpp: |
+ (WebCore::FontCustomPlatformData::fontPlatformData): |
+ - Ditto. |
+ * platform/graphics/qt/FontCustomPlatformData.h: |
+ - Ditto. |
+ * platform/graphics/qt/FontCustomPlatformDataQt.cpp: |
+ (WebCore::FontCustomPlatformData::fontPlatformData): |
+ - Ditto. |
+ * platform/graphics/skia/FontCustomPlatformData.cpp: |
+ (WebCore::FontCustomPlatformData::fontPlatformData): |
+ - Ditto. |
+ * platform/graphics/skia/FontCustomPlatformData.h: |
+ - Ditto. |
+ * platform/graphics/win/FontCustomPlatformData.cpp: |
+ (WebCore::FontCustomPlatformData::fontPlatformData): |
+ - Ditto. |
+ * platform/graphics/win/FontCustomPlatformData.h: |
+ - Ditto. |
+ * platform/graphics/win/FontCustomPlatformDataCairo.cpp: |
+ - Ditto. |
+ (WebCore::FontCustomPlatformData::fontPlatformData): |
+ - Ditto. |
+ * platform/graphics/win/FontCustomPlatformDataCairo.h: |
+ - Ditto. |
+ * platform/graphics/wince/FontCustomPlatformData.cpp: |
+ (WebCore::FontCustomPlatformData::fontPlatformData): |
+ - Ditto. |
+ * platform/graphics/wince/FontCustomPlatformData.h: |
+ - Ditto. |
+ * platform/graphics/wx/FontCustomPlatformData.cpp: |
+ (WebCore::FontCustomPlatformData::fontPlatformData): |
+ - Ditto. |
+ * platform/graphics/wx/FontCustomPlatformData.h: |
+ - Ditto. |
+ * rendering/InlineTextBox.cpp: |
+ (WebCore::InlineTextBox::paint): |
+ - In case of RenderCombineText, we don't rotate text even in vertical writing. Also, we render original text |
+ instead of text returned from text(). |
+ * rendering/RenderBlock.cpp: |
+ (WebCore::RenderBlock::computeInlinePreferredLogicalWidths): |
+ - Made to call RenderCombinedText's prepareTextCombine() here. |
+ * rendering/RenderBlockLineLayout.cpp: |
+ (WebCore::textWidth): |
+ - Made to always use the render object's width() in case of TextCombine. |
+ (WebCore::RenderBlock::findNextLineBreak): |
+ - Made to call RenderCombinedText's prepareTextCombine() here. |
+ * rendering/RenderCombineText.cpp: Added. A subclass of RenderText. |
+ (WebCore::RenderCombineText::RenderCombineText): |
+ (WebCore::RenderCombineText::styleDidChange): |
+ - Clear the flag that indicated the font has been prepared for combining. The font will be reinitialized in |
+ the next call of RenderBlock::findNextLineBreak(). |
+ (WebCore::RenderCombineText::setTextInternal): |
+ - Ditto. |
+ (WebCore::RenderCombineText::width): |
+ - Returns 1-em width in case of font combine. |
+ (WebCore::RenderCombineText::adjustTextOrigin): |
+ - Adjust drawing origin point in case of font combine. |
+ (WebCore::RenderCombineText::charactersToRender): |
+ - Return original text instead of current text in case of font combine. |
+ (WebCore::RenderCombineText::combineText): |
+ - This function tries to pack passed text with; 1) the current font as is, 2) the font created |
+ from the descriptor with half-width variant specified, 3) the font with third-width variant, 4) the font |
+ with quarter-width variant. |
+ - If a suitable font successfully found, replace the current font with the new font. If no appropriate font found, |
+ we give up text-combine as the CSS spec describes. |
+ - If a new font found, we replace the text with 0xFFFC. This is needed for a combined text block to be able to |
+ behave like a single character against text decorations. |
+ * rendering/RenderCombineText.h: Added. |
+ (WebCore::RenderCombineText::isCombined): |
+ (WebCore::RenderCombineText::combinedTextWidth): |
+ - Returns 1-em width in case of font combine. |
+ (WebCore::RenderCombineText::renderName): |
+ (WebCore::toRenderCombineText): |
+ * rendering/RenderText.cpp: |
+ (WebCore::RenderText::widthFromCache): |
+ - Made to call RenderCombineText's combinedTextWidth when the text is combined. |
+ * rendering/RenderingAllInOne.cpp: Added RenderCombineText.cpp |
+ * rendering/style/RenderStyle.h: |
+ (WebCore::InheritedFlags::hasTextCombine): |
+ - Added for a quick test of TextCombine. |
+ |
+2011-01-31 Oliver Hunt <oliver@apple.com> |
+ |
+ Convert markstack to a slot visitor API |
+ https://bugs.webkit.org/show_bug.cgi?id=53219 |
+ |
+ rolling r77098, r77099, r77100, r77109, and |
+ r77111 back in, along with a few more Qt fix attempts. |
+ |
+ * ForwardingHeaders/runtime/WriteBarrier.h: Added. |
+ * WebCore.exp.in: |
+ * bindings/js/DOMWrapperWorld.h: |
+ (WebCore::DOMWrapperWorld::globalData): |
+ * bindings/js/JSAudioConstructor.cpp: |
+ (WebCore::JSAudioConstructor::JSAudioConstructor): |
+ * bindings/js/JSDOMBinding.cpp: |
+ (WebCore::markDOMNodesForDocument): |
+ (WebCore::markDOMObjectWrapper): |
+ (WebCore::markDOMNodeWrapper): |
+ * bindings/js/JSDOMGlobalObject.cpp: |
+ (WebCore::JSDOMGlobalObject::markChildren): |
+ (WebCore::JSDOMGlobalObject::setInjectedScript): |
+ (WebCore::JSDOMGlobalObject::injectedScript): |
+ * bindings/js/JSDOMGlobalObject.h: |
+ (WebCore::JSDOMGlobalObject::JSDOMGlobalObjectData::JSDOMGlobalObjectData): |
+ (WebCore::getDOMConstructor): |
+ * bindings/js/JSDOMWindowCustom.cpp: |
+ (WebCore::JSDOMWindow::setLocation): |
+ (WebCore::DialogHandler::dialogCreated): |
+ * bindings/js/JSDOMWindowShell.cpp: |
+ (WebCore::JSDOMWindowShell::JSDOMWindowShell): |
+ (WebCore::JSDOMWindowShell::setWindow): |
+ (WebCore::JSDOMWindowShell::markChildren): |
+ (WebCore::JSDOMWindowShell::unwrappedObject): |
+ * bindings/js/JSDOMWindowShell.h: |
+ (WebCore::JSDOMWindowShell::window): |
+ (WebCore::JSDOMWindowShell::setWindow): |
+ * bindings/js/JSDeviceMotionEventCustom.cpp: |
+ (WebCore::createAccelerationObject): |
+ (WebCore::createRotationRateObject): |
+ * bindings/js/JSEventListener.cpp: |
+ (WebCore::JSEventListener::JSEventListener): |
+ (WebCore::JSEventListener::markJSFunction): |
+ * bindings/js/JSEventListener.h: |
+ (WebCore::JSEventListener::jsFunction): |
+ * bindings/js/JSHTMLDocumentCustom.cpp: |
+ (WebCore::JSHTMLDocument::setAll): |
+ * bindings/js/JSImageConstructor.cpp: |
+ (WebCore::JSImageConstructor::JSImageConstructor): |
+ * bindings/js/JSImageDataCustom.cpp: |
+ (WebCore::toJS): |
+ * bindings/js/JSJavaScriptCallFrameCustom.cpp: |
+ (WebCore::JSJavaScriptCallFrame::scopeChain): |
+ (WebCore::JSJavaScriptCallFrame::scopeType): |
+ * bindings/js/JSNodeFilterCondition.cpp: |
+ (WebCore::JSNodeFilterCondition::markAggregate): |
+ (WebCore::JSNodeFilterCondition::acceptNode): |
+ * bindings/js/JSNodeFilterCondition.h: |
+ * bindings/js/JSNodeFilterCustom.cpp: |
+ * bindings/js/JSOptionConstructor.cpp: |
+ (WebCore::JSOptionConstructor::JSOptionConstructor): |
+ * bindings/js/JSSQLResultSetRowListCustom.cpp: |
+ (WebCore::JSSQLResultSetRowList::item): |
+ * bindings/js/ScriptCachedFrameData.cpp: |
+ (WebCore::ScriptCachedFrameData::restore): |
+ * bindings/js/ScriptObject.cpp: |
+ (WebCore::ScriptGlobalObject::set): |
+ * bindings/js/SerializedScriptValue.cpp: |
+ (WebCore::CloneDeserializer::putProperty): |
+ * bindings/scripts/CodeGeneratorJS.pm: |
+ * bridge/qt/qt_class.cpp: |
+ (JSC::Bindings::QtClass::fallbackObject): |
+ * bridge/qt/qt_instance.cpp: |
+ (JSC::Bindings::QtInstance::QtInstance): |
+ (JSC::Bindings::QtInstance::removeCachedMethod): |
+ (JSC::Bindings::QtInstance::markAggregate): |
+ * bridge/qt/qt_instance.h: |
+ * bridge/qt/qt_runtime.cpp: |
+ (JSC::Bindings::QtRuntimeMetaMethod::QtRuntimeMetaMethod): |
+ (JSC::Bindings::QtRuntimeMetaMethod::markChildren): |
+ (JSC::Bindings::QtRuntimeMetaMethod::connectGetter): |
+ (JSC::Bindings::QtRuntimeMetaMethod::disconnectGetter): |
+ * bridge/qt/qt_runtime.h: |
+ * dom/Document.h: |
+ |
+2011-01-31 Dan Winship <danw@gnome.org> |
+ |
+ Reviewed by Gustavo Noronha Silva. |
+ |
+ wss (websockets ssl) support for gtk via new gio TLS support |
+ https://bugs.webkit.org/show_bug.cgi?id=50344 |
+ |
+ Update to use GPollableOutputStream and GTlsConnection to |
+ implement wss URLs |
+ |
+ * platform/network/soup/SocketStreamHandle.h: |
+ * platform/network/soup/SocketStreamHandleSoup.cpp: |
+ (WebCore::SocketStreamHandle::SocketStreamHandle): |
+ (WebCore::SocketStreamHandle::connected): |
+ (WebCore::SocketStreamHandle::platformSend): |
+ (WebCore::SocketStreamHandle::beginWaitingForSocketWritability): |
+ (WebCore::writeReadyCallback): |
+ |
+2011-01-31 Abhishek Arya <inferno@chromium.org> |
+ |
+ Reviewed by Dimitri Glazkov. |
+ |
+ Check the textarea node still exists in document before casting |
+ it to HTMLTextAreaElement. |
+ https://bugs.webkit.org/show_bug.cgi?id=53429 |
+ |
+ Test: fast/forms/textarea-node-removed-from-document-crash.html |
+ |
+ * rendering/RenderTextControlMultiLine.cpp: |
+ (WebCore::RenderTextControlMultiLine::~RenderTextControlMultiLine): |
+ |
+2011-01-27 Abhishek Arya <inferno@chromium.org> |
+ |
+ Reviewed by Dave Hyatt. |
+ |
+ If beforeChild is wrapped in an anonymous table section, we need to |
+ go the parent to find it and use it before adding childs to table. |
+ https://bugs.webkit.org/show_bug.cgi?id=53276 |
+ |
+ We need to make sure that beforeChild's parent is "this" before calling |
+ RenderBox::addChild. The previous condition in while is too restrictive |
+ and fails to calculate the right beforeChild value when its display |
+ style is table caption. |
+ Test: fast/table/before-child-non-table-section-add-table-crash.html |
+ |
+ * rendering/RenderTable.cpp: |
+ (WebCore::RenderTable::addChild): |
+ |
+2011-01-31 Shane Stephens <shanestephens@google.com> |
+ |
+ Reviewed by Simon Fraser. |
+ |
+ AffineTransform::translateRight incorrectly computes a translateLeft. |
+ https://bugs.webkit.org/show_bug.cgi?id=52551 |
+ |
+ Removed translateRight and converted all uses to perform standard |
+ matrix multiplication. |
+ |
+ No new tests because patch doesn't modify functionality. |
+ |
+ * platform/graphics/transforms/AffineTransform.cpp: |
+ * platform/graphics/transforms/AffineTransform.h: |
+ (WebCore::AffineTransform::translation): |
+ * rendering/svg/RenderSVGResourceMarker.cpp: |
+ (WebCore::RenderSVGResourceMarker::localToParentTransform): |
+ * rendering/svg/RenderSVGRoot.cpp: |
+ (WebCore::RenderSVGRoot::localToRepaintContainerTransform): |
+ (WebCore::RenderSVGRoot::localToParentTransform): |
+ * rendering/svg/RenderSVGViewportContainer.cpp: |
+ (WebCore::RenderSVGViewportContainer::localToParentTransform): |
+ * rendering/svg/SVGTextLayoutEngine.cpp: |
+ (WebCore::SVGTextLayoutEngine::finalizeTransformMatrices): |
+ |
+2011-01-31 Mario Sanchez Prada <msanchez@igalia.com> |
+ |
+ Reviewed by Martin Robinson. |
+ |
+ [Gtk] atk_text_set_caret_offset returns True even when it is unsuccessful |
+ https://bugs.webkit.org/show_bug.cgi?id=53389 |
+ |
+ Return FALSE when not able to set the caret at the specified offset. |
+ |
+ * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: |
+ (webkit_accessible_text_set_caret_offset): Return FALSE when the |
+ range created is NULL and adjust offset to account for list markers. |
+ |
+2011-01-28 Pavel Feldman <pfeldman@chromium.org> |
+ |
+ Reviewed by Yury Semikhatsky. |
+ |
+ Web Inspector: copy HAR to clipboard instead of saving blob on export. |
+ https://bugs.webkit.org/show_bug.cgi?id=53328 |
+ |
+ * inspector/front-end/NetworkPanel.js: |
+ (WebInspector.NetworkPanel.prototype._exportAll): |
+ (WebInspector.NetworkPanel.prototype._exportResource): |
+ |
+2011-01-30 Pavel Feldman <pfeldman@chromium.org> |
+ |
+ Reviewed by Timothy Hatcher. |
+ |
+ Web Inspector: speed up network panel rendering. |
+ https://bugs.webkit.org/show_bug.cgi?id=53397 |
+ |
+ * inspector/front-end/DataGrid.js: |
+ (WebInspector.DataGrid.prototype.get scrollContainer): |
+ * inspector/front-end/NetworkPanel.js: |
+ (WebInspector.NetworkPanel.prototype.elementsToRestoreScrollPositionsFor): |
+ (WebInspector.NetworkPanel.prototype._positionSummaryBar): |
+ (WebInspector.NetworkPanel.prototype._createTable): |
+ (WebInspector.NetworkPanel.prototype._exportResource): |
+ (WebInspector.NetworkPanel.prototype._onScroll): |
+ * inspector/front-end/networkPanel.css: |
+ (.network-sidebar .data-grid.small tr.offscreen): |
+ (.network-sidebar .data-grid tr.offscreen): |
+ (.network-sidebar .data-grid tr.offscreen td): |
+ |
+2011-01-31 Peter Varga <pvarga@webkit.org> |
+ |
+ Reviewed by Andreas Kling. |
+ |
+ Remove wrec from WebCore |
+ https://bugs.webkit.org/show_bug.cgi?id=53298 |
+ |
+ No new tests needed. |
+ |
+ * Android.jscbindings.mk: |
+ * ForwardingHeaders/wrec/WREC.h: Removed. |
+ * WebCore.vcproj/WebCore.vcproj: |
+ * WebCore.vcproj/copyForwardingHeaders.cmd: |
+ |
+2011-01-31 Sheriff Bot <webkit.review.bot@gmail.com> |
+ |
+ Unreviewed, rolling out r76969. |
+ http://trac.webkit.org/changeset/76969 |
+ https://bugs.webkit.org/show_bug.cgi?id=53418 |
+ |
+ "It is causing crashes in GTK+ and Leopard bots" (Requested by |
+ alexg__ on #webkit). |
+ |
+ * bridge/runtime_root.cpp: |
+ (JSC::Bindings::RootObject::invalidate): |
+ (JSC::Bindings::RootObject::addRuntimeObject): |
+ (JSC::Bindings::RootObject::removeRuntimeObject): |
+ * bridge/runtime_root.h: |
+ |
+2011-01-31 Antti Koivisto <antti@apple.com> |
+ |
+ Not reviewed. |
+ |
+ Spelling. |
+ |
+ * css/CSSSelectorList.h: |
+ (WebCore::CSSSelectorList::next): |
+ |
+2011-01-31 Yury Semikhatsky <yurys@chromium.org> |
+ |
+ Unreviewed. Fix Chromium compilation on Linux. |
+ |
+ * platform/graphics/ShadowBlur.cpp: added PLATFORM(CHROMIUM) guard |
+ * platform/graphics/ShadowBlur.h: added missing ColorSpace.h header include |
+ |
+2011-01-31 Yury Semikhatsky <yurys@chromium.org> |
+ |
+ Unreviewed. Fix Chromium compilation on Mac broken by r77101. |
+ |
+ * WebCore.gypi: add ShadowBlur.{h,cpp} to the gypi file. |
+ |
+2011-01-31 Mikhail Naganov <mnaganov@chromium.org> |
+ |
+ Reviewed by Yury Semikhatsky. |
+ |
+ WebInspector: Change button title from "Clear CPU profiles" to "Clear all profiles". |
+ |
+ https://bugs.webkit.org/show_bug.cgi?id=53309 |
+ |
+ * English.lproj/localizedStrings.js: |
+ * inspector/front-end/ProfilesPanel.js: |
+ (WebInspector.ProfilesPanel): |
+ |
+2011-01-31 Carlos Garcia Campos <cgarcia@igalia.com> |
+ |
+ Unreviewed, fix the build with current GTK+ 3.x. |
+ |
+ * plugins/gtk/gtk2xtbin.c: |
+ * plugins/gtk/gtk2xtbin.h: |
+ |
+2011-01-30 Kenichi Ishibashi <bashi@google.com> |
+ |
+ Reviewed by Kent Tamura. |
+ |
+ Dangling form associated elements should not be registered on the document |
+ https://bugs.webkit.org/show_bug.cgi?id=53223 |
+ |
+ Adds insertedIntoDocument() and remvoedFromDocument() to |
+ FormAssociatedElement class to register the element on the document |
+ if and only if it actually inserted into (removed from) the document. |
+ |
+ Test: fast/forms/dangling-form-element-crash.html |
+ |
+ * html/FormAssociatedElement.cpp: |
+ (WebCore::FormAssociatedElement::insertedIntoDocument): Added. |
+ (WebCore::FormAssociatedElement::removedFromDocument): Ditto. |
+ (WebCore::FormAssociatedElement::insertedIntoTree): Don't register |
+ the element to a document. |
+ (WebCore::FormAssociatedElement::removedFromTree): Don't unregister |
+ the element from a document. |
+ * html/FormAssociatedElement.h: |
+ * html/HTMLFormControlElement.cpp: |
+ (WebCore::HTMLFormControlElement::insertedIntoDocument): Added. |
+ (WebCore::HTMLFormControlElement::removedFromDocument): Ditto. |
+ * html/HTMLFormControlElement.h: |
+ * html/HTMLObjectElement.cpp: |
+ (WebCore::HTMLObjectElement::insertedIntoDocument): Calls |
+ FormAssociatedElement::insertedIntoDocument(). |
+ (WebCore::HTMLObjectElement::removedFromDocument): Calls |
+ FormAssociatedElement::removedFromDocument(). |
+ |
+2011-01-30 Csaba Osztrogonác <ossy@webkit.org> |
+ |
+ Unreviewed, rolling out r77098, r77099, r77100, r77109, and |
+ r77111. |
+ http://trac.webkit.org/changeset/77098 |
+ http://trac.webkit.org/changeset/77099 |
+ http://trac.webkit.org/changeset/77100 |
+ http://trac.webkit.org/changeset/77109 |
+ http://trac.webkit.org/changeset/77111 |
+ https://bugs.webkit.org/show_bug.cgi?id=53219 |
+ |
+ Qt build is broken |
+ |
+ * ForwardingHeaders/runtime/WriteBarrier.h: Removed. |
+ * WebCore.exp.in: |
+ * bindings/js/DOMWrapperWorld.h: |
+ * bindings/js/JSAudioConstructor.cpp: |
+ (WebCore::JSAudioConstructor::JSAudioConstructor): |
+ * bindings/js/JSDOMBinding.cpp: |
+ (WebCore::markDOMNodesForDocument): |
+ (WebCore::markDOMObjectWrapper): |
+ (WebCore::markDOMNodeWrapper): |
+ * bindings/js/JSDOMGlobalObject.cpp: |
+ (WebCore::JSDOMGlobalObject::markChildren): |
+ (WebCore::JSDOMGlobalObject::setInjectedScript): |
+ (WebCore::JSDOMGlobalObject::injectedScript): |
+ * bindings/js/JSDOMGlobalObject.h: |
+ (WebCore::JSDOMGlobalObject::JSDOMGlobalObjectData::JSDOMGlobalObjectData): |
+ (WebCore::getDOMConstructor): |
+ * bindings/js/JSDOMWindowCustom.cpp: |
+ (WebCore::JSDOMWindow::setLocation): |
+ (WebCore::DialogHandler::dialogCreated): |
+ * bindings/js/JSDOMWindowShell.cpp: |
+ (WebCore::JSDOMWindowShell::JSDOMWindowShell): |
+ (WebCore::JSDOMWindowShell::setWindow): |
+ (WebCore::JSDOMWindowShell::markChildren): |
+ (WebCore::JSDOMWindowShell::unwrappedObject): |
+ * bindings/js/JSDOMWindowShell.h: |
+ (WebCore::JSDOMWindowShell::window): |
+ (WebCore::JSDOMWindowShell::setWindow): |
+ * bindings/js/JSDeviceMotionEventCustom.cpp: |
+ (WebCore::createAccelerationObject): |
+ (WebCore::createRotationRateObject): |
+ * bindings/js/JSEventListener.cpp: |
+ (WebCore::JSEventListener::JSEventListener): |
+ (WebCore::JSEventListener::markJSFunction): |
+ * bindings/js/JSEventListener.h: |
+ (WebCore::JSEventListener::jsFunction): |
+ * bindings/js/JSHTMLDocumentCustom.cpp: |
+ (WebCore::JSHTMLDocument::setAll): |
+ * bindings/js/JSImageConstructor.cpp: |
+ (WebCore::JSImageConstructor::JSImageConstructor): |
+ * bindings/js/JSImageDataCustom.cpp: |
+ (WebCore::toJS): |
+ * bindings/js/JSJavaScriptCallFrameCustom.cpp: |
+ (WebCore::JSJavaScriptCallFrame::scopeChain): |
+ (WebCore::JSJavaScriptCallFrame::scopeType): |
+ * bindings/js/JSNodeFilterCondition.cpp: |
+ (WebCore::JSNodeFilterCondition::markAggregate): |
+ (WebCore::JSNodeFilterCondition::acceptNode): |
+ * bindings/js/JSNodeFilterCondition.h: |
+ * bindings/js/JSNodeFilterCustom.cpp: |
+ * bindings/js/JSOptionConstructor.cpp: |
+ (WebCore::JSOptionConstructor::JSOptionConstructor): |
+ * bindings/js/JSSQLResultSetRowListCustom.cpp: |
+ (WebCore::JSSQLResultSetRowList::item): |
+ * bindings/js/ScriptCachedFrameData.cpp: |
+ (WebCore::ScriptCachedFrameData::restore): |
+ * bindings/js/ScriptObject.cpp: |
+ (WebCore::ScriptGlobalObject::set): |
+ * bindings/js/SerializedScriptValue.cpp: |
+ (WebCore::CloneDeserializer::putProperty): |
+ * bindings/scripts/CodeGeneratorJS.pm: |
+ * bridge/qt/qt_instance.cpp: |
+ (JSC::Bindings::QtInstance::QtInstance): |
+ (JSC::Bindings::QtInstance::removeCachedMethod): |
+ (JSC::Bindings::QtInstance::markAggregate): |
+ * bridge/qt/qt_instance.h: |
+ * bridge/qt/qt_runtime.cpp: |
+ (JSC::Bindings::QtRuntimeMetaMethod::QtRuntimeMetaMethod): |
+ (JSC::Bindings::QtRuntimeMetaMethod::markChildren): |
+ (JSC::Bindings::QtRuntimeMetaMethod::connectGetter): |
+ (JSC::Bindings::QtRuntimeMetaMethod::disconnectGetter): |
+ * bridge/qt/qt_runtime.h: |
+ * bridge/runtime_root.cpp: |
+ (JSC::Bindings::RootObject::invalidate): |
+ * bridge/runtime_root.h: |
+ * dom/Document.h: |
+ |
+2011-01-30 Sheriff Bot <webkit.review.bot@gmail.com> |
+ |
+ Unreviewed, rolling out r77107. |
+ http://trac.webkit.org/changeset/77107 |
+ https://bugs.webkit.org/show_bug.cgi?id=53412 |
+ |
+ Caused 5 new form-related test crashes (Requested by smfr on |
+ #webkit). |
+ |
+ * css/CSSSelector.cpp: |
+ (WebCore::CSSSelector::pseudoId): |
+ (WebCore::nameToPseudoTypeMap): |
+ (WebCore::CSSSelector::extractPseudoType): |
+ * css/CSSSelector.h: |
+ * html/HTMLProgressElement.cpp: |
+ (WebCore::HTMLProgressElement::parseMappedAttribute): |
+ (WebCore::HTMLProgressElement::attach): |
+ * html/HTMLProgressElement.h: |
+ * rendering/RenderProgress.cpp: |
+ (WebCore::RenderProgress::~RenderProgress): |
+ (WebCore::RenderProgress::updateFromElement): |
+ (WebCore::RenderProgress::layoutParts): |
+ (WebCore::RenderProgress::shouldHaveParts): |
+ * rendering/RenderProgress.h: |
+ * rendering/style/RenderStyleConstants.h: |
+ |
+2011-01-30 Simon Fraser <simon.fraser@apple.com> |
+ |
+ Reviewed by Sam Weinig. |
+ |
+ Enhance ShadowBlur to render inset box shadows |
+ https://bugs.webkit.org/show_bug.cgi?id=51567 |
+ |
+ Use ShadowBlur for inset box-shadows with CG. It |
+ currently lacks a tiled version, but is still much |
+ faster than CG shadows. |
+ |
+ Test: fast/box-shadow/inset-box-shadow-radius.html |
+ |
+ * platform/graphics/ShadowBlur.cpp: |
+ * platform/graphics/ShadowBlur.h: New method for inset |
+ shadows. |
+ (WebCore::ShadowBlur::drawInsetShadow): |
+ |
+ * platform/graphics/GraphicsContext.cpp: #ifdef out |
+ fillRectWithRoundedHole() for CG. |
+ |
+ * platform/graphics/cg/GraphicsContextCG.cpp: |
+ (WebCore::GraphicsContext::fillRectWithRoundedHole): If there's |
+ a shadow with a radius > 0, use ShadowBlur. |
+ |
+2011-01-28 Kenneth Russell <kbr@google.com> |
+ |
+ Reviewed by Chris Marrin. |
+ |
+ WebGL shows PNG Textures with indexed colors too dark |
+ https://bugs.webkit.org/show_bug.cgi?id=47477 |
+ |
+ Properly handle indexed PNG images by re-rendering them as RGBA |
+ images before upload. Verified with this layout test and the test |
+ cases from bugs 47477 and 53269. |
+ |
+ * platform/graphics/cg/GraphicsContext3DCG.cpp: |
+ (WebCore::GraphicsContext3D::getImageData): |
+ |
+2011-01-27 MORITA Hajime <morrita@google.com> |
+ |
+ Reviewed by Dimitri Glazkov. |
+ |
+ Convert <progress> shadow DOM to a DOM-based shadow. |
+ https://bugs.webkit.org/show_bug.cgi?id=50660 |
+ |
+ * Removed RenderProgress::m_valuePart, moved the shadow node |
+ to the shadow root of HTMLProgressElement. |
+ * Removed hard-coded pseudo ID for -webkit-progress-bar-value. |
+ ProgressBarValueElement is defined only for overriding |
+ shadowPseudoId(). |
+ |
+ No new tests. No behavioral change. |
+ |
+ * css/CSSSelector.cpp: |
+ (WebCore::CSSSelector::pseudoId): |
+ (WebCore::nameToPseudoTypeMap): |
+ (WebCore::CSSSelector::extractPseudoType): |
+ * css/CSSSelector.h: |
+ * html/HTMLProgressElement.cpp: |
+ (WebCore::ProgressBarValueElement::ProgressBarValueElement): |
+ (WebCore::ProgressBarValueElement::shadowPseudoId): |
+ (WebCore::ProgressBarValueElement::create): |
+ (WebCore::HTMLProgressElement::parseMappedAttribute): |
+ (WebCore::HTMLProgressElement::attach): |
+ (WebCore::HTMLProgressElement::valuePart): |
+ (WebCore::HTMLProgressElement::didElementStateChange): |
+ (WebCore::HTMLProgressElement::createShadowSubtreeIfNeeded): |
+ * html/HTMLProgressElement.h: |
+ * rendering/RenderProgress.cpp: |
+ (WebCore::RenderProgress::~RenderProgress): |
+ (WebCore::RenderProgress::updateFromElement): |
+ (WebCore::RenderProgress::layoutParts): |
+ (WebCore::RenderProgress::shouldHaveParts): |
+ (WebCore::RenderProgress::valuePart): |
+ * rendering/RenderProgress.h: |
+ * rendering/style/RenderStyleConstants.h: |
+ |
+2011-01-30 Simon Fraser <simon.fraser@apple.com> |
+ |
+ Reviewed by Ariya Hidayat. |
+ |
+ Enhance ShadowBlur to render inset box shadows; Part 1. |
+ https://bugs.webkit.org/show_bug.cgi?id=51567 |
+ |
+ Add a new method to GraphicsContext to render a rect with a rounded hole, |
+ for use by inset box-shadow code. Knowledge that we're rendering a rounded |
+ hole will enable ShadowBlur to be used here in future. |
+ |
+ * platform/graphics/GraphicsContext.cpp: |
+ (WebCore::GraphicsContext::fillRectWithRoundedHole): |
+ * platform/graphics/GraphicsContext.h: |
+ * rendering/RenderBoxModelObject.cpp: |
+ (WebCore::RenderBoxModelObject::paintBoxShadow): |
+ |
+2011-01-23 MORITA Hajime <morrita@google.com> |
+ |
+ Reviewed by Eric Seidel. |
+ |
+ REGRESSION: Inset shadow with too large border radius misses rounded corner. |
+ https://bugs.webkit.org/show_bug.cgi?id=52800 |
+ |
+ The refactoring on r76083 broke the invariant between border |
+ IntRect and its radii because RoundedIntRect::setRect() is called |
+ after getRoundedInnerBorderWithBorderWidths(), which enforces the |
+ invariant. Th rounded-rect clipping code verifies the invariant, |
+ and discard the invalid radii, that results broken paintings. |
+ |
+ This change moved setRect() before |
+ getRoundedInnerBorderWithBorderWidths() not to modify the valid |
+ RoundedIntRect value. |
+ |
+ Test: fast/box-shadow/inset-with-extraordinary-radii-and-border.html |
+ |
+ * rendering/RenderBoxModelObject.cpp: |
+ (WebCore::RenderBoxModelObject::paintBoxShadow): |
+ |
+2011-01-30 Simon Fraser <simon.fraser@apple.com> |
+ |
+ Attempt to fix Windows build by adding ShadowBlur.cpp/h to the |
+ vcproj. |
+ |
+ * WebCore.vcproj/WebCore.vcproj: |
+ |
+2011-01-30 Simon Fraser <simon.fraser@apple.com> |
+ |
+ Reviewed by Dan Bernstein. |
+ |
+ -webkit-box-shadow causes awful scroll/resize/redraw performance |
+ https://bugs.webkit.org/show_bug.cgi?id=22102 |
+ |
+ Use ShadowBlur for CG, whe rendering shadows on rects and |
+ rounded rects outside of canvas. |
+ |
+ CG shadows with a radius of more than 8px do not render |
+ correctly. We preserve this incorrect rendering by compensating |
+ for it when rending -webkit-box-shadow. Calls that should use |
+ this deprecated radius behavior now use setLegacyShadow(). |
+ |
+ Test: fast/box-shadow/box-shadow-transformed.html |
+ |
+ * html/canvas/CanvasRenderingContext2D.cpp: Use setLegacyShadow() |
+ for canvas, to indicate that it should use the deprecated radius |
+ behavior. |
+ (WebCore::CanvasRenderingContext2D::setAllAttributesToDefault): Ditto. |
+ (WebCore::CanvasRenderingContext2D::setShadow): Ditto. |
+ (WebCore::CanvasRenderingContext2D::applyShadow): Ditto. |
+ |
+ * platform/graphics/GraphicsContext.cpp: |
+ (WebCore::GraphicsContext::setLegacyShadow): Set the m_state.shadowsUseLegacyRadius bit. |
+ |
+ * platform/graphics/GraphicsContext.h: |
+ (WebCore::GraphicsContextState::GraphicsContextState): Add a |
+ shadowsUseLegacyRadius bit to the state. |
+ |
+ * platform/graphics/cg/GraphicsContextCG.cpp: |
+ (WebCore::radiusToLegacyRadius): Map from the actual radius to one |
+ that approximates CG behavior. |
+ (WebCore::hasBlurredShadow): Helper that returns true if we have a shadow |
+ with a non-zero blur radius. |
+ (WebCore::GraphicsContext::fillRect): Use ShadowBlur if not canvas. |
+ (WebCore::GraphicsContext::fillRoundedRect): Ditto. |
+ (WebCore::GraphicsContext::setPlatformShadow): Comment. |
+ |
+ * rendering/RenderBoxModelObject.cpp: |
+ (WebCore::RenderBoxModelObject::paintBoxShadow): Call setLegacyShadow() |
+ for -webkit-box-shadow. |
+ |
+ * platform/graphics/ShadowBlur.cpp: |
+ (WebCore::ShadowBlur::calculateLayerBoundingRect): Fix some pixel crack issues |
+ by rounding up the blur radius. |
+ (WebCore::ShadowBlur::drawRectShadow): Ditto |
+ (WebCore::ShadowBlur::drawRectShadowWithTiling): Ditto. |
+ |
+2011-01-30 Oliver Hunt <oliver@apple.com> |
+ |
+ Try to fix Qt build (again). |
+ |
+ * bridge/qt/qt_runtime.cpp: |
+ (JSC::Bindings::QtRuntimeMetaMethod::connectGetter): |
+ (JSC::Bindings::QtRuntimeMetaMethod::disconnectGetter): |
+ |
+2011-01-30 Oliver Hunt <oliver@apple.com> |
+ |
+ Try to fix Qt build. |
+ |
+ * bridge/qt/qt_instance.cpp: |
+ (JSC::Bindings::QtInstance::QtInstance): |
+ (JSC::Bindings::QtInstance::removeCachedMethod): |
+ (JSC::Bindings::QtInstance::markAggregate): |
+ * bridge/qt/qt_instance.h: |
+ |
+2011-01-30 Oliver Hunt <oliver@apple.com> |
+ |
+ Convert markstack to a slot visitor API |
+ https://bugs.webkit.org/show_bug.cgi?id=53219 |
+ |
+ rolling r77006 and r77020 back in. |
+ |
+ * ForwardingHeaders/runtime/WriteBarrier.h: Added. |
+ * WebCore.exp.in: |
+ * bindings/js/DOMWrapperWorld.h: |
+ (WebCore::DOMWrapperWorld::globalData): |
+ * bindings/js/JSAudioConstructor.cpp: |
+ (WebCore::JSAudioConstructor::JSAudioConstructor): |
+ * bindings/js/JSDOMBinding.cpp: |
+ (WebCore::markDOMNodesForDocument): |
+ (WebCore::markDOMObjectWrapper): |
+ (WebCore::markDOMNodeWrapper): |
+ * bindings/js/JSDOMGlobalObject.cpp: |
+ (WebCore::JSDOMGlobalObject::markChildren): |
+ (WebCore::JSDOMGlobalObject::setInjectedScript): |
+ (WebCore::JSDOMGlobalObject::injectedScript): |
+ * bindings/js/JSDOMGlobalObject.h: |
+ (WebCore::JSDOMGlobalObject::JSDOMGlobalObjectData::JSDOMGlobalObjectData): |
+ (WebCore::getDOMConstructor): |
+ * bindings/js/JSDOMWindowCustom.cpp: |
+ (WebCore::JSDOMWindow::setLocation): |
+ (WebCore::DialogHandler::dialogCreated): |
+ * bindings/js/JSDOMWindowShell.cpp: |
+ (WebCore::JSDOMWindowShell::JSDOMWindowShell): |
+ (WebCore::JSDOMWindowShell::setWindow): |
+ (WebCore::JSDOMWindowShell::markChildren): |
+ (WebCore::JSDOMWindowShell::unwrappedObject): |
+ * bindings/js/JSDOMWindowShell.h: |
+ (WebCore::JSDOMWindowShell::window): |
+ (WebCore::JSDOMWindowShell::setWindow): |
+ * bindings/js/JSDeviceMotionEventCustom.cpp: |
+ (WebCore::createAccelerationObject): |
+ (WebCore::createRotationRateObject): |
+ * bindings/js/JSEventListener.cpp: |
+ (WebCore::JSEventListener::JSEventListener): |
+ (WebCore::JSEventListener::markJSFunction): |
+ * bindings/js/JSEventListener.h: |
+ (WebCore::JSEventListener::jsFunction): |
+ * bindings/js/JSHTMLDocumentCustom.cpp: |
+ (WebCore::JSHTMLDocument::setAll): |
+ * bindings/js/JSImageConstructor.cpp: |
+ (WebCore::JSImageConstructor::JSImageConstructor): |
+ * bindings/js/JSImageDataCustom.cpp: |
+ (WebCore::toJS): |
+ * bindings/js/JSJavaScriptCallFrameCustom.cpp: |
+ (WebCore::JSJavaScriptCallFrame::scopeChain): |
+ (WebCore::JSJavaScriptCallFrame::scopeType): |
+ * bindings/js/JSNodeFilterCondition.cpp: |
+ (WebCore::JSNodeFilterCondition::markAggregate): |
+ (WebCore::JSNodeFilterCondition::acceptNode): |
+ * bindings/js/JSNodeFilterCondition.h: |
+ * bindings/js/JSNodeFilterCustom.cpp: |
+ * bindings/js/JSOptionConstructor.cpp: |
+ (WebCore::JSOptionConstructor::JSOptionConstructor): |
+ * bindings/js/JSSQLResultSetRowListCustom.cpp: |
+ (WebCore::JSSQLResultSetRowList::item): |
+ * bindings/js/ScriptCachedFrameData.cpp: |
+ (WebCore::ScriptCachedFrameData::restore): |
+ * bindings/js/ScriptObject.cpp: |
+ (WebCore::ScriptGlobalObject::set): |
+ * bindings/js/SerializedScriptValue.cpp: |
+ (WebCore::CloneDeserializer::putProperty): |
+ * bindings/scripts/CodeGeneratorJS.pm: |
+ * bridge/qt/qt_runtime.cpp: |
+ (JSC::Bindings::QtRuntimeMetaMethod::QtRuntimeMetaMethod): |
+ (JSC::Bindings::QtRuntimeMetaMethod::markChildren): |
+ (JSC::Bindings::QtRuntimeMetaMethod::connectGetter): |
+ (JSC::Bindings::QtRuntimeMetaMethod::disconnectGetter): |
+ * bridge/qt/qt_runtime.h: |
+ * bridge/runtime_root.cpp: |
+ (JSC::Bindings::RootObject::invalidate): |
+ * bridge/runtime_root.h: |
+ * dom/Document.h: |
+ |
+2011-01-30 Simon Fraser <simon.fraser@apple.com> |
+ |
+ Reviewed by Sam Weinig. |
+ |
+ Make ContextShadow code cross-platform |
+ https://bugs.webkit.org/show_bug.cgi?id=51312 |
+ |
+ Add a new class, ShadowBlur, that contains most of the |
+ code from ContextShadow, but is fully cross-platform. |
+ It depends on one new method, GraphicsContext::clipBounds(), |
+ which platforms will have to implement. |
+ |
+ Add ShadowBlur to the Mac Xcode project, but don't use it |
+ anywhere yet. |
+ |
+ * WebCore.xcodeproj/project.pbxproj: |
+ * platform/graphics/GraphicsContext.cpp: |
+ (WebCore::GraphicsContext::clipBounds): |
+ * platform/graphics/GraphicsContext.h: |
+ * platform/graphics/ShadowBlur.cpp: Added. |
+ (WebCore::roundUpToMultipleOf32): |
+ (WebCore::ScratchBuffer::ScratchBuffer): |
+ (WebCore::ScratchBuffer::getScratchBuffer): |
+ (WebCore::ScratchBuffer::scheduleScratchBufferPurge): |
+ (WebCore::ScratchBuffer::timerFired): |
+ (WebCore::ScratchBuffer::clearScratchBuffer): |
+ (WebCore::ScratchBuffer::shared): |
+ (WebCore::ShadowBlur::ShadowBlur): |
+ (WebCore::ShadowBlur::blurLayerImage): |
+ (WebCore::ShadowBlur::adjustBlurDistance): |
+ (WebCore::ShadowBlur::calculateLayerBoundingRect): |
+ (WebCore::ShadowBlur::beginShadowLayer): |
+ (WebCore::ShadowBlur::endShadowLayer): |
+ (WebCore::ShadowBlur::drawRectShadow): |
+ (WebCore::ShadowBlur::drawRectShadowWithoutTiling): |
+ (WebCore::ShadowBlur::drawRectShadowWithTiling): |
+ (WebCore::ShadowBlur::clipBounds): |
+ * platform/graphics/ShadowBlur.h: Added. |
+ (WebCore::ShadowBlur::setShadowsIgnoreTransforms): |
+ (WebCore::ShadowBlur::shadowsIgnoreTransforms): |
+ * platform/graphics/cg/GraphicsContextCG.cpp: |
+ (WebCore::GraphicsContext::clipBounds): |
+ |
+2011-01-29 Simon Fraser <simon.fraser@apple.com> |
+ |
+ Reviewed by Dan Bernstein. |
+ |
+ CSS3 gradients with em-based stops fail to repaint when font size changes |
+ https://bugs.webkit.org/show_bug.cgi?id=51845 |
+ |
+ Mark as uncacheable gradidients whose color stops depend on font size, |
+ and don't attempt to put these into CSSImageGeneratorValue's image cache. |
+ This means we return a new gradient each time, which is fairly cheap, and |
+ fixes repaint issues under changing font size. |
+ |
+ Test: fast/repaint/gradients-em-stops-repaint.html |
+ |
+ * css/CSSGradientValue.cpp: |
+ (WebCore::CSSGradientValue::image): |
+ (WebCore::CSSGradientValue::isCacheable): |
+ * css/CSSGradientValue.h: |
+ |
+2011-01-29 Geoffrey Garen <ggaren@apple.com> |
+ |
+ Undo try to fix the Qt build. |
+ |
+ My guess didn't work. |
+ |
+ * WebCore.pro: |
+ |
+2011-01-29 Geoffrey Garen <ggaren@apple.com> |
+ |
+ Try to fix the Qt build. |
+ |
+ * WebCore.pro: Added platform/text/CharacterNames.h. |
+ |
+2011-01-28 Geoffrey Garen <ggaren@apple.com> |
+ |
+ Reviewed by Maciej Stachowiak. |
+ |
+ Some more Heap cleanup. |
+ https://bugs.webkit.org/show_bug.cgi?id=53357 |
+ |
+ Updated for JavaScriptCore changes. |
+ |
+ * bindings/js/ScriptGCEvent.cpp: |
+ (WebCore::ScriptGCEvent::getHeapSize): |
+ |
+2011-01-29 Adam Barth <abarth@webkit.org> |
+ |
+ Reviewed by Daniel Bates. |
+ |
+ Fix XSSFilter crash when extracting the source for a token twice |
+ https://bugs.webkit.org/show_bug.cgi?id=53368 |
+ |
+ Previously, it was unsafe to extract the source for the same token |
+ twice because the HTMLSourceTracker would advance its internal |
+ representation of the SegmentedString. This patch introduces a cache |
+ to make calling HTMLSourceTracker::sourceForToken multiple times safe. |
+ |
+ * html/parser/HTMLSourceTracker.cpp: |
+ (WebCore::HTMLSourceTracker::end): |
+ (WebCore::HTMLSourceTracker::sourceForToken): |
+ * html/parser/HTMLSourceTracker.h: |
+ |
+2011-01-29 Maciej Stachowiak <mjs@apple.com> |
+ |
+ Reviewed by Dan Bernstein. |
+ |
+ Fix fat build for both 32-bit and 64-bit under llvm-gcc 4.2 |
+ https://bugs.webkit.org/show_bug.cgi?id=53386 |
+ |
+ * platform/mac/ScrollAnimatorMac.mm: |
+ (WebCore::elasticDeltaForReboundDelta): |
+ (WebCore::scrollWheelMultiplier): |
+ (WebCore::ScrollAnimatorMac::smoothScrollWithEvent): |
+ (WebCore::ScrollAnimatorMac::beginScrollGesture): |
+ (WebCore::roundTowardZero): |
+ (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired): |
+ |
+2011-01-29 Daniel Bates <dbates@rim.com> |
+ |
+ Reviewed by Maciej Stachowiak. |
+ |
+ Remove reference to ${CMAKE_SOURCE_DIR}/Source in CMake files |
+ https://bugs.webkit.org/show_bug.cgi?id=53382 |
+ |
+ Our file system hierarchy ensures that CMAKE_SOURCE_DIR is defined to be /Source. |
+ So, ${CMAKE_SOURCE_DIR}/Source evaluates to the non-existent directory /Source/Source. |
+ Therefore, we should remove such references. |
+ |
+ * CMakeLists.txt: |
+ |
+2011-01-29 Sam Weinig <sam@webkit.org> |
+ |
+ Reviewed by Jon Honeycutt. |
+ |
+ Fix 32-bit build on the Mac. |
+ |
+ * platform/mac/ScrollAnimatorMac.mm: |
+ (WebCore::roundTowardZero): |
+ (WebCore::roundToDevicePixelTowardZero): |
+ Use floats instead of doubles to avoid double-to-float conversion |
+ issues. |
+ |
+2011-01-29 Simon Fraser <simon.fraser@apple.com> |
+ |
+ Reviewed by Adam Barth. |
+ |
+ Use clampToInteger() functions in a few places |
+ https://bugs.webkit.org/show_bug.cgi?id=53363 |
+ |
+ * css/CSSStyleSelector.cpp: |
+ (WebCore::CSSStyleSelector::applyProperty): Use clampToInteger() for z-index. |
+ (WebCore::CSSStyleSelector::createTransformOperations): Use clampToPositiveInteger(). |
+ * platform/graphics/transforms/PerspectiveTransformOperation.cpp: Ditto. |
+ (WebCore::PerspectiveTransformOperation::blend): Ditto. |
+ |
+2011-01-29 Patrick Gansterer <paroga@webkit.org> |
+ |
+ Reviewed by David Kilzer. |
+ |
+ Move CharacterNames.h into WTF directory |
+ https://bugs.webkit.org/show_bug.cgi?id=49618 |
+ |
+ * ForwardingHeaders/wtf/unicode/CharacterNames.h: Added. |
+ * GNUmakefile.am: |
+ * WebCore.gypi: |
+ * WebCore.vcproj/WebCore.vcproj: |
+ * WebCore.xcodeproj/project.pbxproj: |
+ * accessibility/AccessibilityObject.cpp: |
+ * accessibility/AccessibilityRenderObject.cpp: |
+ * bindings/cpp/WebDOMHTMLDocumentCustom.cpp: |
+ * bindings/js/JSHTMLDocumentCustom.cpp: |
+ * dom/Position.cpp: |
+ * dom/SelectElement.cpp: |
+ * editing/CompositeEditCommand.cpp: |
+ * editing/Editor.cpp: |
+ * editing/HTMLInterchange.cpp: |
+ * editing/InsertTextCommand.cpp: |
+ * editing/MarkupAccumulator.cpp: |
+ * editing/TextIterator.cpp: |
+ * editing/VisibleSelection.cpp: |
+ * editing/htmlediting.cpp: |
+ * editing/htmlediting.h: |
+ * editing/markup.cpp: |
+ * html/FTPDirectoryDocument.cpp: |
+ * html/HTMLFormControlElement.cpp: |
+ * html/parser/HTMLTreeBuilder.cpp: |
+ * loader/appcache/ManifestParser.cpp: |
+ * platform/chromium/PopupMenuChromium.cpp: |
+ * platform/graphics/Font.h: |
+ * platform/graphics/FontFastPath.cpp: |
+ * platform/graphics/GlyphPageTreeNode.cpp: |
+ * platform/graphics/StringTruncator.cpp: |
+ * platform/graphics/mac/ComplexTextController.cpp: |
+ * platform/graphics/mac/ComplexTextControllerATSUI.cpp: |
+ * platform/graphics/wince/GraphicsContextWinCE.cpp: |
+ * platform/mac/PasteboardMac.mm: |
+ * platform/text/TextCodecICU.cpp: |
+ * platform/text/mac/TextCodecMac.cpp: |
+ * platform/text/transcoder/FontTranscoder.cpp: |
+ * rendering/RenderBlockLineLayout.cpp: |
+ * rendering/RenderFlexibleBox.cpp: |
+ * rendering/RenderListMarker.cpp: |
+ * rendering/RenderText.cpp: |
+ * rendering/RenderTextControl.cpp: |
+ * rendering/RenderTreeAsText.cpp: |
+ * rendering/break_lines.cpp: |
+ * rendering/mathml/RenderMathMLOperator.h: |
+ * websockets/WebSocketHandshake.cpp: |
+ * wml/WMLTableElement.cpp: |
+ |
+2011-01-29 Dan Winship <danw@gnome.org> |
+ |
+ Reviewed by Xan Lopez. |
+ |
+ [GTK] Remove HAVE_LIBSOUP_2_29_90 conditionals; we depend on |
+ libsoup 2.33.1 now. |
+ https://bugs.webkit.org/show_bug.cgi?id=50675 |
+ |
+ * platform/network/soup/CookieJarSoup.cpp: |
+ (WebCore::defaultCookieJar): |
+ (WebCore::setCookies): |
+ * platform/network/soup/ResourceHandleSoup.cpp: |
+ (WebCore::ResourceHandle::prepareForURL): |
+ (WebCore::restartedCallback): |
+ (WebCore::startHttp): |
+ * platform/network/soup/ResourceRequestSoup.cpp: |
+ (WebCore::ResourceRequest::updateSoupMessage): |
+ (WebCore::ResourceRequest::toSoupMessage): |
+ (WebCore::ResourceRequest::updateFromSoupMessage): |
+ |
+2011-01-29 Adam Barth <abarth@webkit.org> |
+ |
+ Reviewed by Daniel Bates. |
+ |
+ XSSFilter should replace URLs with about:blank instead of the empty string |
+ https://bugs.webkit.org/show_bug.cgi?id=53370 |
+ |
+ Using the empty string will make the URL complete to the current |
+ document's URL, which isn't really what we want. Instead, we want to |
+ use about:blank, which is safe. |
+ |
+ * html/parser/XSSFilter.cpp: |
+ (WebCore::XSSFilter::filterObjectToken): |
+ (WebCore::XSSFilter::filterEmbedToken): |
+ |
+2011-01-29 Adam Barth <abarth@webkit.org> |
+ |
+ Reviewed by Daniel Bates. |
+ |
+ XSSFilter should pass xssAuditor/script-tag-addslashes* |
+ https://bugs.webkit.org/show_bug.cgi?id=53365 |
+ |
+ We need to canonicalize strings to avoid being tricked by addslashes. |
+ |
+ * html/parser/XSSFilter.cpp: |
+ (WebCore::HTMLNames::isNonCanonicalCharacter): |
+ - This function is copied from the XSSAuditor (with some tweaks). |
+ We'll eventually remove the XSSAuditor once we've got XSSFilter |
+ working properly. |
+ (WebCore::HTMLNames::canonicalize): |
+ (WebCore::HTMLNames::decodeURL): |
+ (WebCore::XSSFilter::isContainedInRequest): |
+ |
+2011-01-29 Adam Barth <abarth@webkit.org> |
+ |
+ Reviewed by Daniel Bates. |
+ |
+ XSSFilter should pass xssAuditor/script-tag-with-source-same-host.html |
+ and xssAuditor/script-tag-post-* |
+ https://bugs.webkit.org/show_bug.cgi?id=53364 |
+ |
+ We're supposed to allow loading same-origin resources even if they |
+ appear as part of the request. |
+ |
+ Also, we're supposed to look at the POST data too. :) |
+ |
+ * html/parser/XSSFilter.cpp: |
+ (WebCore::XSSFilter::eraseAttributeIfInjected): |
+ (WebCore::XSSFilter::isSameOriginResource): |
+ - Copy/paste from XSSAuditor::isSameOriginResource. We'll |
+ eventually remove the XSSAuditor version when XSSFilter is done. |
+ * html/parser/XSSFilter.h: |
+ |
+2011-01-29 Adam Barth <abarth@webkit.org> |
+ |
+ Reviewed by Daniel Bates. |
+ |
+ XSSFilter should pass 16 of the xssAuditor/script-tag* tests |
+ https://bugs.webkit.org/show_bug.cgi?id=53362 |
+ |
+ Turns out we need to replace the src attribute of script tags with |
+ about:blank to avoid loading the main document URL as a script. Also, |
+ move misplaced return statement that was triggering the console message |
+ too often. |
+ |
+ * html/parser/HTMLToken.h: |
+ (WebCore::HTMLToken::appendToAttributeValue): |
+ * html/parser/XSSFilter.cpp: |
+ (WebCore::XSSFilter::filterScriptToken): |
+ (WebCore::XSSFilter::eraseAttributeIfInjected): |
+ * html/parser/XSSFilter.h: |
+ |
+2011-01-28 Jon Honeycutt <jhoneycutt@apple.com> |
+ |
+ Downloads in WK2 on Windows should write resume data to bundle |
+ https://bugs.webkit.org/show_bug.cgi?id=53282 |
+ <rdar://problem/8753077> |
+ |
+ Reviewed by Alice Liu. |
+ |
+ * WebCore.vcproj/WebCore.vcproj: |
+ Added new files to project. |
+ |
+ * platform/network/cf/DownloadBundle.h: Added. |
+ * platform/network/win/DownloadBundleWin.cpp: Added. |
+ (WebCore::DownloadBundle::magicNumber): |
+ Moved from WebKit's WebDownload so that WebKit and WebKit2 can share |
+ it. |
+ (WebCore::DownloadBundle::fileExtension): |
+ Ditto. |
+ (WebCore::DownloadBundle::appendResumeData): |
+ Ditto - but modified to return bool rather than HRESULT and to clean up |
+ whitespace. |
+ (WebCore::DownloadBundle::extractResumeData): |
+ Ditto - modified to clean up whitespace. |
+ |
+2011-01-29 Sheriff Bot <webkit.review.bot@gmail.com> |
+ |
+ Unreviewed, rolling out r77050. |
+ http://trac.webkit.org/changeset/77050 |
+ https://bugs.webkit.org/show_bug.cgi?id=53371 |
+ |
+ Caused a crash in Chromium's test_shell_tests (Requested by |
+ rniwa on #webkit). |
+ |
+ * html/parser/HTMLTreeBuilder.cpp: |
+ (WebCore::HTMLTreeBuilder::FragmentParsingContext::FragmentParsingContext): |
+ (WebCore::HTMLTreeBuilder::FragmentParsingContext::document): |
+ (WebCore::HTMLTreeBuilder::FragmentParsingContext::finished): |
+ * html/parser/HTMLTreeBuilder.h: |
+ |
+2011-01-28 Eric Seidel <eric@webkit.org> |
+ |
+ Reviewed by Darin Adler. |
+ |
+ HTML5 TreeBuilder regressed a Peacekeeper DOM test by 40% |
+ https://bugs.webkit.org/show_bug.cgi?id=48719 |
+ |
+ It's unclear exactly what the Peacekeeper benchmark is testing, |
+ because I haven't found a way to run it myself. |
+ |
+ However, I constructed a benchmark which shows at least one possible slow point. |
+ The HTML5 spec talks about creating a new document for every time we use |
+ the fragment parsing algorithm. Document() it turns out, it a huge bloated |
+ mess, and the constructor and destructor do a huge amount of work. |
+ To avoid constructing (or destructing) documents for each innerHTML call, |
+ this patch adds a shared dummy document used by all innerHTML calls. |
+ |
+ This patch brings us from 7x slower than Safari 5 on tiny-innerHTML |
+ to only 1.5x slower than Safari 5. I'm sure there is more work to do here. |
+ |
+ Saving a shared Document like this is error prone. Currently |
+ DummyDocumentFactory::releaseDocument() calls removeAllChildren() |
+ in an attempt to clear the Document's state. However it's possible |
+ that that call is not sufficient and we'll have future bugs here. |
+ |
+ * html/parser/HTMLTreeBuilder.cpp: |
+ (WebCore::DummyDocumentFactory::createDummyDocument): |
+ (WebCore::DummyDocumentFactory::releaseDocument): |
+ (WebCore::HTMLTreeBuilder::FragmentParsingContext::FragmentParsingContext): |
+ (WebCore::HTMLTreeBuilder::FragmentParsingContext::document): |
+ (WebCore::HTMLTreeBuilder::FragmentParsingContext::finished): |
+ * html/parser/HTMLTreeBuilder.h: |
+ |
+2011-01-28 Johnny Ding <jnd@chromium.org> |
+ |
+ Reviewed by Adam Barth. |
+ |
+ Gesture API: Don't use current gesture status to set "forceUserGesture" parameter when calling ScriptController::executeScript. |
+ The "forceUserGesture" parameter should be only set when you are definitely sure that the running script is from a hyper-link. |
+ https://bugs.webkit.org/show_bug.cgi?id=53244 |
+ |
+ Test: fast/events/popup-blocked-from-iframe-src.html |
+ |
+ * bindings/ScriptControllerBase.cpp: |
+ (WebCore::ScriptController::executeIfJavaScriptURL): |
+ |
+2011-01-28 Simon Fraser <simon.fraser@apple.com> |
+ |
+ Reviewed by Gavin Barraclough. |
+ |
+ Add various clampToInt() methods to MathExtras.h |
+ https://bugs.webkit.org/show_bug.cgi?id=52910 |
+ |
+ Use clampToInteger() from MathExtras.h |
+ |
+ * css/CSSParser.cpp: |
+ (WebCore::CSSParser::parseCounter): |
+ |
+2011-01-28 Sheriff Bot <webkit.review.bot@gmail.com> |
+ |
+ Unreviewed, rolling out r77006 and r77020. |
+ http://trac.webkit.org/changeset/77006 |
+ http://trac.webkit.org/changeset/77020 |
+ https://bugs.webkit.org/show_bug.cgi?id=53360 |
+ |
+ "Broke Windows tests" (Requested by rniwa on #webkit). |
+ |
+ * ForwardingHeaders/runtime/WriteBarrier.h: Removed. |
+ * WebCore.exp.in: |
+ * bindings/js/DOMWrapperWorld.h: |
+ * bindings/js/JSAudioConstructor.cpp: |
+ (WebCore::JSAudioConstructor::JSAudioConstructor): |
+ * bindings/js/JSDOMBinding.cpp: |
+ (WebCore::markDOMNodesForDocument): |
+ (WebCore::markDOMObjectWrapper): |
+ (WebCore::markDOMNodeWrapper): |
+ * bindings/js/JSDOMGlobalObject.cpp: |
+ (WebCore::JSDOMGlobalObject::markChildren): |
+ (WebCore::JSDOMGlobalObject::setInjectedScript): |
+ (WebCore::JSDOMGlobalObject::injectedScript): |
+ * bindings/js/JSDOMGlobalObject.h: |
+ (WebCore::JSDOMGlobalObject::JSDOMGlobalObjectData::JSDOMGlobalObjectData): |
+ (WebCore::getDOMConstructor): |
+ * bindings/js/JSDOMWindowCustom.cpp: |
+ (WebCore::JSDOMWindow::setLocation): |
+ (WebCore::DialogHandler::dialogCreated): |
+ * bindings/js/JSDOMWindowShell.cpp: |
+ (WebCore::JSDOMWindowShell::JSDOMWindowShell): |
+ (WebCore::JSDOMWindowShell::setWindow): |
+ (WebCore::JSDOMWindowShell::markChildren): |
+ (WebCore::JSDOMWindowShell::unwrappedObject): |
+ * bindings/js/JSDOMWindowShell.h: |
+ (WebCore::JSDOMWindowShell::window): |
+ (WebCore::JSDOMWindowShell::setWindow): |
+ * bindings/js/JSDeviceMotionEventCustom.cpp: |
+ (WebCore::createAccelerationObject): |
+ (WebCore::createRotationRateObject): |
+ * bindings/js/JSEventListener.cpp: |
+ (WebCore::JSEventListener::JSEventListener): |
+ (WebCore::JSEventListener::markJSFunction): |
+ * bindings/js/JSEventListener.h: |
+ (WebCore::JSEventListener::jsFunction): |
+ * bindings/js/JSHTMLDocumentCustom.cpp: |
+ (WebCore::JSHTMLDocument::setAll): |
+ * bindings/js/JSImageConstructor.cpp: |
+ (WebCore::JSImageConstructor::JSImageConstructor): |
+ * bindings/js/JSImageDataCustom.cpp: |
+ (WebCore::toJS): |
+ * bindings/js/JSJavaScriptCallFrameCustom.cpp: |
+ (WebCore::JSJavaScriptCallFrame::scopeChain): |
+ (WebCore::JSJavaScriptCallFrame::scopeType): |
+ * bindings/js/JSNodeFilterCondition.cpp: |
+ (WebCore::JSNodeFilterCondition::markAggregate): |
+ (WebCore::JSNodeFilterCondition::acceptNode): |
+ * bindings/js/JSNodeFilterCondition.h: |
+ * bindings/js/JSNodeFilterCustom.cpp: |
+ * bindings/js/JSOptionConstructor.cpp: |
+ (WebCore::JSOptionConstructor::JSOptionConstructor): |
+ * bindings/js/JSSQLResultSetRowListCustom.cpp: |
+ (WebCore::JSSQLResultSetRowList::item): |
+ * bindings/js/ScriptCachedFrameData.cpp: |
+ (WebCore::ScriptCachedFrameData::restore): |
+ * bindings/js/ScriptObject.cpp: |
+ (WebCore::ScriptGlobalObject::set): |
+ * bindings/js/SerializedScriptValue.cpp: |
+ (WebCore::CloneDeserializer::putProperty): |
+ * bindings/scripts/CodeGeneratorJS.pm: |
+ * bridge/qt/qt_runtime.cpp: |
+ (JSC::Bindings::QtRuntimeMetaMethod::QtRuntimeMetaMethod): |
+ (JSC::Bindings::QtRuntimeMetaMethod::markChildren): |
+ (JSC::Bindings::QtRuntimeMetaMethod::connectGetter): |
+ (JSC::Bindings::QtRuntimeMetaMethod::disconnectGetter): |
+ * bridge/qt/qt_runtime.h: |
+ * bridge/runtime_root.cpp: |
+ (JSC::Bindings::RootObject::invalidate): |
+ * bridge/runtime_root.h: |
+ * dom/Document.h: |
+ |
+2011-01-28 Adam Barth <abarth@webkit.org> |
+ |
+ Reviewed by Eric Seidel. |
+ |
+ XSSFilter should log to the console when it blocks something |
+ https://bugs.webkit.org/show_bug.cgi?id=53354 |
+ |
+ This patch refactors a bunch of methods in XSSFilter to return a bool |
+ indicating whether they blocked anything. Using this bool, we decide |
+ whether to log to the console. We're using the same log message as the |
+ XSSAuditor, but it seems likely we can improve this message in the |
+ future (especially by piping in the correct line number, which is now |
+ accessible via the parser). |
+ |
+ * html/parser/XSSFilter.cpp: |
+ (WebCore::HTMLNames::isNameOfInlineEventHandler): |
+ (WebCore::XSSFilter::filterToken): |
+ (WebCore::XSSFilter::filterTokenInitial): |
+ (WebCore::XSSFilter::filterTokenAfterScriptStartTag): |
+ (WebCore::XSSFilter::filterScriptToken): |
+ (WebCore::XSSFilter::filterObjectToken): |
+ (WebCore::XSSFilter::filterEmbedToken): |
+ (WebCore::XSSFilter::filterAppletToken): |
+ (WebCore::XSSFilter::filterMetaToken): |
+ (WebCore::XSSFilter::filterBaseToken): |
+ (WebCore::XSSFilter::eraseInlineEventHandlersIfInjected): |
+ * html/parser/XSSFilter.h: |
+ |
+2011-01-28 Adam Barth <abarth@webkit.org> |
+ |
+ Reviewed by Daniel Bates. |
+ |
+ Wire up settings->xssAuditorEnabled to XSSFilter |
+ https://bugs.webkit.org/show_bug.cgi?id=53345 |
+ |
+ * html/parser/XSSFilter.cpp: |
+ (WebCore::XSSFilter::XSSFilter): |
+ (WebCore::XSSFilter::filterToken): |
+ * html/parser/XSSFilter.h: |
+ |
+2011-01-28 Adam Barth <abarth@webkit.org> |
+ |
+ Reviewed by Daniel Bates. |
+ |
+ Teach XSSFilter about <meta> and <base> tags |
+ https://bugs.webkit.org/show_bug.cgi?id=53339 |
+ |
+ I'm not 100% sure we need to block <meta http-equiv>, but it seems |
+ prudent given how powerful that attribute is. We definitely need to |
+ block injection of <base href> because that can redirect script tags |
+ that use relative URLs. |
+ |
+ * html/parser/XSSFilter.cpp: |
+ (WebCore::XSSFilter::filterToken): |
+ (WebCore::XSSFilter::filterMetaToken): |
+ (WebCore::XSSFilter::filterBaseToken): |
+ * html/parser/XSSFilter.h: |
+ |
+2011-01-28 Adam Barth <abarth@webkit.org> |
+ |
+ Reviewed by Daniel Bates. |
+ |
+ Teach XSSFilter about <applet> |
+ https://bugs.webkit.org/show_bug.cgi?id=53338 |
+ |
+ HTML5 is pretty light on information about how the <applet> tag works. |
+ According to this site: |
+ |
+ http://download.oracle.com/javase/1.4.2/docs/guide/misc/applet.html |
+ |
+ The "code" and "object" attributes are the essential attributes for |
+ determining which piece of Java to run. We might need to expand to the |
+ codebase and archive attributes at some point, but hopefully code and |
+ object will be sufficient. |
+ |
+ * html/parser/XSSFilter.cpp: |
+ (WebCore::XSSFilter::filterToken): |
+ (WebCore::XSSFilter::filterAppletToken): |
+ * html/parser/XSSFilter.h: |
+ |
+2011-01-28 Adam Barth <abarth@webkit.org> |
+ |
+ Reviewed by Daniel Bates. |
+ |
+ Teach the XSSFilter about object and embed tags |
+ https://bugs.webkit.org/show_bug.cgi?id=53336 |
+ |
+ For <object> and <embed>, we filter out attribute values that either |
+ indicate which piece of media to load or which plugin to load. In a |
+ perfect world, we'd only need to filter out the URLs of the media, but |
+ some plug-ins (like Flash) have lots of fun places you can hide the |
+ URL (e.g., the "movie" <param>). |
+ |
+ * html/parser/XSSFilter.cpp: |
+ (WebCore::XSSFilter::filterToken): |
+ (WebCore::XSSFilter::filterScriptToken): |
+ (WebCore::XSSFilter::filterObjectToken): |
+ (WebCore::XSSFilter::filterEmbedToken): |
+ (WebCore::XSSFilter::eraseAttributeIfInjected): |
+ * html/parser/XSSFilter.h: |
+ |
+2011-01-28 Oliver Hunt <oliver@apple.com> |
+ |
+ Fix Qt build. |
+ |
+ * bridge/qt/qt_runtime.cpp: |
+ (JSC::Bindings::QtRuntimeMetaMethod::QtRuntimeMetaMethod): |
+ (JSC::Bindings::QtRuntimeMetaMethod::markChildren): |
+ (JSC::Bindings::QtRuntimeMetaMethod::connectGetter): |
+ (JSC::Bindings::QtRuntimeMetaMethod::disconnectGetter): |
+ * bridge/qt/qt_runtime.h: |
+ |
+2011-01-28 Antti Koivisto <antti@apple.com> |
+ |
+ Reviewed by Simon Fraser. |
+ |
+ CSS styles are shared based on uninitialized property values |
+ https://bugs.webkit.org/show_bug.cgi?id=53285 |
+ |
+ Null test. |
+ |
+ * dom/NamedNodeMap.cpp: |
+ (WebCore::NamedNodeMap::mappedMapsEquivalent): |
+ |
+2011-01-27 Oliver Hunt <oliver@apple.com> |
+ |
+ Reviewed by Geoffrey Garen. |
+ |
+ Convert markstack to a slot visitor API |
+ https://bugs.webkit.org/show_bug.cgi?id=53219 |
+ |
+ Update WebCore to the new marking apis, correct bindings |
+ codegen. |
+ |
+ * ForwardingHeaders/runtime/WriteBarrier.h: Added. |
+ * WebCore.exp.in: |
+ * bindings/js/DOMWrapperWorld.h: |
+ (WebCore::DOMWrapperWorld::globalData): |
+ * bindings/js/JSAudioConstructor.cpp: |
+ (WebCore::JSAudioConstructor::JSAudioConstructor): |
+ * bindings/js/JSDOMBinding.cpp: |
+ (WebCore::markDOMNodesForDocument): |
+ (WebCore::markDOMObjectWrapper): |
+ (WebCore::markDOMNodeWrapper): |
+ * bindings/js/JSDOMGlobalObject.cpp: |
+ (WebCore::JSDOMGlobalObject::markChildren): |
+ (WebCore::JSDOMGlobalObject::setInjectedScript): |
+ (WebCore::JSDOMGlobalObject::injectedScript): |
+ * bindings/js/JSDOMGlobalObject.h: |
+ (WebCore::JSDOMGlobalObject::JSDOMGlobalObjectData::JSDOMGlobalObjectData): |
+ (WebCore::getDOMConstructor): |
+ * bindings/js/JSDOMWindowCustom.cpp: |
+ (WebCore::JSDOMWindow::setLocation): |
+ (WebCore::DialogHandler::dialogCreated): |
+ * bindings/js/JSDOMWindowShell.cpp: |
+ (WebCore::JSDOMWindowShell::JSDOMWindowShell): |
+ (WebCore::JSDOMWindowShell::setWindow): |
+ (WebCore::JSDOMWindowShell::markChildren): |
+ (WebCore::JSDOMWindowShell::unwrappedObject): |
+ * bindings/js/JSDOMWindowShell.h: |
+ (WebCore::JSDOMWindowShell::window): |
+ (WebCore::JSDOMWindowShell::setWindow): |
+ * bindings/js/JSEventListener.cpp: |
+ (WebCore::JSEventListener::JSEventListener): |
+ (WebCore::JSEventListener::markJSFunction): |
+ * bindings/js/JSEventListener.h: |
+ (WebCore::JSEventListener::jsFunction): |
+ * bindings/js/JSHTMLDocumentCustom.cpp: |
+ (WebCore::JSHTMLDocument::setAll): |
+ * bindings/js/JSImageConstructor.cpp: |
+ (WebCore::JSImageConstructor::JSImageConstructor): |
+ * bindings/js/JSImageDataCustom.cpp: |
+ (WebCore::toJS): |
+ * bindings/js/JSJavaScriptCallFrameCustom.cpp: |
+ (WebCore::JSJavaScriptCallFrame::scopeChain): |
+ (WebCore::JSJavaScriptCallFrame::scopeType): |
+ * bindings/js/JSNodeFilterCondition.cpp: |
+ (WebCore::JSNodeFilterCondition::markAggregate): |
+ (WebCore::JSNodeFilterCondition::acceptNode): |
+ * bindings/js/JSNodeFilterCondition.h: |
+ * bindings/js/JSNodeFilterCustom.cpp: |
+ * bindings/js/JSOptionConstructor.cpp: |
+ (WebCore::JSOptionConstructor::JSOptionConstructor): |
+ * bindings/js/JSSQLResultSetRowListCustom.cpp: |
+ (WebCore::JSSQLResultSetRowList::item): |
+ * bindings/js/ScriptCachedFrameData.cpp: |
+ (WebCore::ScriptCachedFrameData::restore): |
+ * bindings/js/ScriptObject.cpp: |
+ (WebCore::ScriptGlobalObject::set): |
+ * bindings/js/SerializedScriptValue.cpp: |
+ (WebCore::CloneDeserializer::putProperty): |
+ * bindings/scripts/CodeGeneratorJS.pm: |
+ * dom/Document.h: |
+ |
+2011-01-28 Sam Weinig <sam@webkit.org> |
+ |
+ Reviewed by Anders Carlsson. |
+ |
+ Keyboard scrolling doesn’t work in WebKit2 |
+ <rdar://problem/8909672> |
+ |
+ * platform/mac/ScrollAnimatorMac.mm: |
+ (-[ScrollAnimationHelperDelegate convertSizeToBacking:]): |
+ (-[ScrollAnimationHelperDelegate convertSizeFromBacking:]): |
+ Add additional necessary delegate methods. |
+ |
+2011-01-29 Darin Adler <darin@apple.com> |
+ |
+ Reviewed by Dan Bernstein. |
+ |
+ Re-land this patch with the missing null check that caused crashes in layout tests. |
+ |
+ Changing cursor style has no effect until the mouse moves |
+ https://bugs.webkit.org/show_bug.cgi?id=14344 |
+ rdar://problem/7563712 |
+ |
+ No tests added because we don't have infrastructure for testing actual cursor |
+ changes (as opposed to cursor style computation) at this time. We might add it later. |
+ |
+ * page/EventHandler.cpp: |
+ (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon): Added. |
+ * page/EventHandler.h: Ditto. |
+ |
+ * rendering/RenderObject.cpp: |
+ (WebCore::areNonIdenticalCursorListsEqual): Added. |
+ (WebCore::areCursorsEqual): Added. |
+ (WebCore::RenderObject::styleDidChange): Call dispatchFakeMouseMoveEventSoon if |
+ cursor styles changed. |
+ |
+2011-01-28 Justin Schuh <jschuh@chromium.org> |
+ |
+ Reviewed by Eric Seidel. |
+ |
+ We should hold RefPtrs to SVG font faces |
+ https://bugs.webkit.org/show_bug.cgi?id=53270 |
+ |
+ Test: svg/custom/use-multiple-on-nested-disallowed-font.html |
+ |
+ * css/CSSFontFaceSource.cpp: |
+ (WebCore::CSSFontFaceSource::getFontData): |
+ * css/CSSFontFaceSource.h: |
+ * svg/SVGFontFaceElement.cpp: |
+ (WebCore::SVGFontFaceElement::associatedFontElement): |
+ * svg/SVGFontFaceElement.h: |
+ |
+2011-01-28 Zhenyao Mo <zmo@google.com> |
+ |
+ Reviewed by Kenneth Russell. |
+ |
+ uniformN*v should generate INVALID_VALUE of the array size is not a multiple of N |
+ https://bugs.webkit.org/show_bug.cgi?id=53306 |
+ |
+ * html/canvas/WebGLRenderingContext.cpp: |
+ (WebCore::WebGLRenderingContext::validateUniformMatrixParameters): |
+ |
+2011-01-28 Tom Sepez <tsepez@chromium.org> |
+ |
+ Reviewed by Eric Seidel. |
+ |
+ NULL pointer crash in TextIterator::handleTextBox() |
+ https://bugs.webkit.org/show_bug.cgi?id=53267 |
+ |
+ Test: fast/css/rtl-nth-child-first-letter-crash.html |
+ |
+ * editing/TextIterator.cpp: |
+ (WebCore::TextIterator::handleTextBox): |
+ |
+2011-01-28 Adrienne Walker <enne@google.com> |
+ |
+ Reviewed by Kenneth Russell. |
+ |
+ [chromium] Remove a spurious diagnostic CRASH check. |
+ https://bugs.webkit.org/show_bug.cgi?id=52379 |
+ |
+ * platform/graphics/chromium/LayerTilerChromium.cpp: |
+ (WebCore::LayerTilerChromium::invalidateRect): |
+ |
+2011-01-28 Dan Bernstein <mitz@apple.com> |
+ |
+ Reviewed by Sam Weinig. |
+ |
+ <rdar://problem/4761512> <select> can't display right-to-left (rtl) languages |
+ https://bugs.webkit.org/show_bug.cgi?id=19785 |
+ |
+ Changed <select> pop-up menus on Mac OS X Snow Leopard and later to have their items aligned in the |
+ direction corresponding to the writing direction of the <select> element, with the checkmarks |
+ on the "start" side, and use the <option>'s writing direction rather than "natural". Made the |
+ pop-up button match the menu by adding a Chrome boolean function, selectItemAlignmentFollowsMenuWritingDirection(), |
+ which returns true for this pop-up behavior. |
+ |
+ * loader/EmptyClients.h: |
+ (WebCore::EmptyChromeClient::selectItemAlignmentFollowsMenuWritingDirection): Added. |
+ * manual-tests/pop-up-alignment-and-direction.html: Added. |
+ * page/Chrome.cpp: |
+ (WebCore::Chrome::selectItemAlignmentFollowsMenuWritingDirection): Added. Calls through to the |
+ client. |
+ * page/Chrome.h: |
+ * page/ChromeClient.h: |
+ * platform/PopupMenuStyle.h: |
+ (WebCore::PopupMenuStyle::PopupMenuStyle): Added hasTextDirectionOverride parameter and member |
+ variable initialization. |
+ (WebCore::PopupMenuStyle::hasTextDirectionOverride): Added this accessor. |
+ * platform/mac/PopupMenuMac.mm: |
+ (WebCore::PopupMenuMac::populate): Set the pop-up's layout direction and items' text alignment |
+ to match the menu's writing direction. Set items' writing direction and direction override |
+ according to their styles. |
+ * rendering/RenderMenuList.cpp: |
+ (WebCore::RenderMenuList::RenderMenuList): Removed unncesaary initialization of a smart pointer. |
+ (WebCore::RenderMenuList::adjustInnerStyle): If the alignment of items in the menu follows the |
+ menu's writing direction, use that alignment for the button as well. Also in this mode, use the |
+ item's writing direction and override setting. |
+ (WebCore::RenderMenuList::setTextFromOption): Store the option element's style. |
+ (WebCore::RenderMenuList::itemStyle): Pass the text direction override value. |
+ (WebCore::RenderMenuList::menuStyle): Ditto. Also use the button's direction, not the inner text's. |
+ * rendering/RenderMenuList.h: |
+ * rendering/RenderTextControlSingleLine.cpp: |
+ (WebCore::RenderTextControlSingleLine::menuStyle): Pass the text direction override value. |
+ |
+2011-01-28 Adam Barth <abarth@webkit.org> |
+ |
+ Reviewed by Daniel Bates. |
+ |
+ Teach XSSFilter how to filter <script> elements |
+ https://bugs.webkit.org/show_bug.cgi?id=53279 |
+ |
+ This patch adds the ability for the XSSFilter to block injected |
+ <script> elements. Handling script elements is slightly subtle because |
+ these elements act very differently depending on whether they have a |
+ src attribute. |
+ |
+ In the "src case", which check whether the src attribute was present in |
+ the request. In the "non-src case", we check whether the start tag and |
+ the body of the script element was included in the request. Checking |
+ for the whole start tag means we miss out on some attribute splitting |
+ attacks inside of script tags, but that doesn't seem like that big a |
+ deal. |
+ |
+ This patch also introduces some amount of state into the XSSFilter |
+ because inline script elements span multiple tokens. There's a lot of |
+ tuning and optimization left in these cases, some of which I've noted |
+ with FIXMEs. |
+ |
+ To test this patch, I played around with some of the existing |
+ XSSAuditor tests. Hopefully I'll be able to run the test suite more |
+ systematically in the future. |
+ |
+ * html/parser/HTMLToken.h: |
+ (WebCore::HTMLToken::eraseCharacters): |
+ (WebCore::HTMLToken::eraseValueOfAttribute): |
+ * html/parser/XSSFilter.cpp: |
+ (WebCore::HTMLNames::hasName): |
+ (WebCore::HTMLNames::findAttributeWithName): |
+ (WebCore::HTMLNames::isNameOfScriptCarryingAttribute): |
+ (WebCore::XSSFilter::XSSFilter): |
+ (WebCore::XSSFilter::filterToken): |
+ (WebCore::XSSFilter::filterTokenAfterScriptStartTag): |
+ (WebCore::XSSFilter::filterScriptToken): |
+ (WebCore::XSSFilter::snippetForRange): |
+ (WebCore::XSSFilter::snippetForAttribute): |
+ * html/parser/XSSFilter.h: |
+ |
+2011-01-28 Adam Barth <abarth@webkit.org> |
+ |
+ Reviewed by Daniel Bates. |
+ |
+ Sketch out new XSS filter design (disabled by default) |
+ https://bugs.webkit.org/show_bug.cgi?id=53205 |
+ |
+ This patch adds a basic sketch of the new XSS filter design. Rather |
+ than watching scripts as they execute, in this design, we watch tokens |
+ emitted by the tokenizer. We then map the tokens directly back into |
+ input characters, which lets us skip all the complicated logic related |
+ to HTML entities and double-decoding of JavaScript URLs. |
+ |
+ This patch contains only the bare essentially machinery. I'll add more |
+ in future patches and eventually remove the previous code once this |
+ code is up and running correctly. |
+ |
+ * Android.mk: |
+ * CMakeLists.txt: |
+ * GNUmakefile.am: |
+ * WebCore.gypi: |
+ * WebCore.pro: |
+ * WebCore.vcproj/WebCore.vcproj: |
+ * WebCore.xcodeproj/project.pbxproj: |
+ * html/parser/HTMLDocumentParser.cpp: |
+ (WebCore::HTMLDocumentParser::HTMLDocumentParser): |
+ (WebCore::HTMLDocumentParser::pumpTokenizer): |
+ (WebCore::HTMLDocumentParser::sourceForToken): |
+ * html/parser/HTMLDocumentParser.h: |
+ * html/parser/XSSFilter.cpp: Added. |
+ * html/parser/XSSFilter.h: Added. |
+ |
+2011-01-28 Michael Saboff <msaboff@apple.com> |
+ |
+ Reviewed by Geoffrey Garen. |
+ |
+ Potentially Unsafe HashSet of RuntimeObject* in RootObject definition |
+ https://bugs.webkit.org/show_bug.cgi?id=53271 |
+ |
+ Reapplying this patch with the change that the second ASSERT in |
+ RootObject::removeRuntimeObject was changed to use |
+ .uncheckedGet() instead of the failing .get(). The object in question |
+ could be in the process of being GC'ed. The get() call will not return |
+ such an object while the uncheckedGet() call will return the (unsafe) |
+ object. This is the behavior we want. |
+ |
+ Precautionary change. |
+ Changed RootObject to use WeakGCMap instead of HashSet. |
+ Found will looking for another issue, but can't produce a test case |
+ that is problematic. THerefore there aren't any new tests. |
+ |
+ * bridge/runtime_root.cpp: |
+ (JSC::Bindings::RootObject::invalidate): |
+ (JSC::Bindings::RootObject::addRuntimeObject): |
+ (JSC::Bindings::RootObject::removeRuntimeObject): |
+ * bridge/runtime_root.h: |
+ |
+2011-01-28 Adam Roben <aroben@apple.com> |
+ |
+ Notify CACFLayerTreeHost when the context is flushed |
+ |
+ LegacyCACFLayerTreeHost was keeping this a secret, which meant that WebCore's animation |
+ timers were never starting. |
+ |
+ Fixes <http://webkit.org/b/53302> [Windows 7 Release Tests] changesets 76853, 76856, and |
+ 76858 broke ~36 animations, compositing, and transitions tests |
+ |
+ Reviewed by Sam Weinig. |
+ |
+ * platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp: |
+ (WebCore::LegacyCACFLayerTreeHost::contextDidChange): Call up to the base class after we |
+ start our render timer. |
+ |
+2011-01-28 Antti Koivisto <antti@apple.com> |
+ |
+ Reviewed by Dan Bernstein. |
+ |
+ Remove dead code that tried to map from CSS values to parser values |
+ https://bugs.webkit.org/show_bug.cgi?id=53318 |
+ |
+ * css/CSSFunctionValue.cpp: |
+ * css/CSSFunctionValue.h: |
+ * css/CSSPrimitiveValue.cpp: |
+ * css/CSSPrimitiveValue.h: |
+ * css/CSSValue.h: |
+ * css/CSSValueList.cpp: |
+ * css/CSSValueList.h: |
+ |
+2011-01-28 Enrica Casucci <enrica@apple.com> |
+ |
+ Reviewed by Adam Roben. |
+ |
+ Some drag and drop tests fail since r76824 |
+ https://bugs.webkit.org/show_bug.cgi?id=53304 |
+ |
+ There were '||' instead of '&&' in the checks for valid |
+ clipboard content. |
+ |
+ * platform/win/ClipboardWin.cpp: |
+ (WebCore::ClipboardWin::getData): |
+ (WebCore::ClipboardWin::types): |
+ (WebCore::ClipboardWin::files): |
+ |
+2011-01-28 Martin Robinson <mrobinson@igalia.com> |
+ |
+ [GTK] AudioProcessingEvent.h and JSJavaScriptAudioNode.h: No such file or directory |
+ https://bugs.webkit.org/show_bug.cgi?id=52889 |
+ |
+ Build fix for WebAudio. Include WebAudio source files on the source |
+ list when WebAudio is enabled. |
+ |
+ * GNUmakefile.am: Include missing source files. |
+ |
+2011-01-28 Sam Weinig <sam@webkit.org> |
+ |
+ Reviewed by Maciej Stachowiak. |
+ |
+ Add basic rubber banding support |
+ <rdar://problem/8219429> |
+ https://bugs.webkit.org/show_bug.cgi?id=53277 |
+ |
+ * page/EventHandler.cpp: |
+ (WebCore::EventHandler::handleGestureEvent): |
+ Pass gesture events to the FrameView. |
+ |
+ * platform/ScrollAnimator.cpp: |
+ (WebCore::ScrollAnimator::handleGestureEvent): |
+ * platform/ScrollAnimator.h: |
+ Add stubbed out implementation. |
+ |
+ * platform/ScrollView.cpp: |
+ (WebCore::ScrollView::ScrollView): |
+ (WebCore::ScrollView::overhangAmount): |
+ (WebCore::ScrollView::wheelEvent): |
+ * platform/ScrollView.h: |
+ * platform/ScrollableArea.cpp: |
+ (WebCore::ScrollableArea::ScrollableArea): |
+ (WebCore::ScrollableArea::handleGestureEvent): |
+ * platform/ScrollableArea.h: |
+ (WebCore::ScrollableArea::constrainsScrollingToContentEdge): |
+ (WebCore::ScrollableArea::setConstrainsScrollingToContentEdge): |
+ Move constrains scrolling bit to ScrollableArea from ScrollView. |
+ |
+ (WebCore::ScrollableArea::contentsSize): |
+ (WebCore::ScrollableArea::overhangAmount): |
+ Add additional virtual functions for information needed by the animator. |
+ |
+ * platform/mac/ScrollAnimatorMac.h: |
+ * platform/mac/ScrollAnimatorMac.mm: |
+ (WebCore::ScrollAnimatorMac::ScrollAnimatorMac): |
+ (WebCore::ScrollAnimatorMac::immediateScrollByDeltaX): |
+ (WebCore::ScrollAnimatorMac::immediateScrollByDeltaY): |
+ (WebCore::elasticDeltaForTimeDelta): |
+ (WebCore::elasticDeltaForReboundDelta): |
+ (WebCore::reboundDeltaForElasticDelta): |
+ (WebCore::scrollWheelMultiplier): |
+ (WebCore::ScrollAnimatorMac::handleWheelEvent): |
+ (WebCore::ScrollAnimatorMac::handleGestureEvent): |
+ (WebCore::ScrollAnimatorMac::pinnedInDirection): |
+ (WebCore::ScrollAnimatorMac::allowsVerticalStretching): |
+ (WebCore::ScrollAnimatorMac::allowsHorizontalStretching): |
+ (WebCore::ScrollAnimatorMac::smoothScrollWithEvent): |
+ (WebCore::ScrollAnimatorMac::beginScrollGesture): |
+ (WebCore::ScrollAnimatorMac::endScrollGesture): |
+ (WebCore::ScrollAnimatorMac::snapRubberBand): |
+ (WebCore::roundTowardZero): |
+ (WebCore::roundToDevicePixelTowardZero): |
+ (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired): |
+ Implement basic rubber banding. |
+ |
+2011-01-28 Dan Bernstein <mitz@apple.com> |
+ |
+ Reviewed by Anders Carlsson. |
+ |
+ Changing unicode-bidi doesn’t force layout |
+ https://bugs.webkit.org/show_bug.cgi?id=53311 |
+ |
+ Test: fast/dynamic/unicode-bidi.html |
+ |
+ * rendering/style/RenderStyle.cpp: |
+ (WebCore::RenderStyle::diff): Return a layout difference if unicode-bidi values differ. |
+ |
+2011-01-27 Dimitri Glazkov <dglazkov@chromium.org> |
+ |
+ Reviewed by Kent Tamura. |
+ |
+ Change HTMLInputElement-derived parts of media element shadow DOM to use shadowPseudoId. |
+ https://bugs.webkit.org/show_bug.cgi?id=53122 |
+ |
+ This is the first step in converting HTMLMediaElement to the new shadow DOM. |
+ |
+ Should not regress any existing tests. No observable change in behavior. |
+ |
+ * css/CSSSelector.cpp: |
+ (WebCore::CSSSelector::pseudoId): Removed now-unnecessary hard-coded pseudo-element selectors. |
+ (WebCore::nameToPseudoTypeMap): Ditto. |
+ (WebCore::CSSSelector::extractPseudoType): Ditto. |
+ * css/CSSSelector.h: Ditto. |
+ * css/mediaControls.css: Added proper initial values, now that elements use the proper selector pipeline. |
+ * rendering/MediaControlElements.cpp: |
+ (WebCore::MediaControlInputElement::MediaControlInputElement): Removed the switch statement, |
+ which is now replaced with virtual shadowPseudoId on each corresponding class. |
+ (WebCore::MediaControlInputElement::styleForElement): Changed to use element pipeline. |
+ (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement): Changed to set |
+ display type in constructor. |
+ (WebCore::MediaControlMuteButtonElement::create): Changed to not take PseudoId as |
+ constructor argument. |
+ (WebCore::MediaControlMuteButtonElement::shadowPseudoId): Added. |
+ (WebCore::MediaControlVolumeSliderMuteButtonElement::MediaControlVolumeSliderMuteButtonElement): Added |
+ to disambiguate from the MediaControlMuteButtonElement. |
+ (WebCore::MediaControlVolumeSliderMuteButtonElement::create): Added. |
+ (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId): Added. |
+ (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement): Changed to not take PseudoId as |
+ constructor argument. |
+ (WebCore::MediaControlPlayButtonElement::shadowPseudoId): Added. |
+ (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement): Changed to not take PseudoId as |
+ constructor argument. |
+ (WebCore::MediaControlSeekForwardButtonElement::MediaControlSeekForwardButtonElement): Added. |
+ (WebCore::MediaControlSeekForwardButtonElement::create): Added. |
+ (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId): Added. |
+ (WebCore::MediaControlSeekBackButtonElement::MediaControlSeekBackButtonElement): Added. |
+ (WebCore::MediaControlSeekBackButtonElement::create): Added. |
+ (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId): Added. |
+ (WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement): Added. |
+ (WebCore::MediaControlRewindButtonElement::shadowPseudoId): Added. |
+ (WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement): Changed to not take PseudoId as |
+ constructor argument. |
+ (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId): Added. |
+ (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement): Changed to not take PseudoId as |
+ constructor argument. |
+ (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId): Added. |
+ (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Changed to not take PseudoId as |
+ constructor argument. |
+ (WebCore::MediaControlTimelineElement::shadowPseudoId): Added. |
+ (WebCore::MediaControlVolumeSliderElement::MediaControlVolumeSliderElement): Changed to not take PseudoId as |
+ constructor argument. |
+ (WebCore::MediaControlVolumeSliderElement::shadowPseudoId): Added. |
+ (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): Changed to not take PseudoId as |
+ constructor argument. |
+ (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId): Added. |
+ * rendering/MediaControlElements.h: |
+ (WebCore::MediaControlSeekForwardButtonElement::isForwardButton): Added. |
+ (WebCore::MediaControlSeekBackButtonElement::isForwardButton): Added. |
+ * rendering/RenderMedia.cpp: |
+ (WebCore::RenderMedia::createMuteButton): Changed to use new constructor. |
+ (WebCore::RenderMedia::createSeekBackButton): Ditto. |
+ (WebCore::RenderMedia::createSeekForwardButton): Ditto. |
+ (WebCore::RenderMedia::createVolumeSliderMuteButton): Ditto. |
+ * rendering/style/RenderStyleConstants.h: Removed constants that are no longer used. |
+ |
+2011-01-27 Dimitri Glazkov <dglazkov@chromium.org> |
+ |
+ Reviewed by Eric Carlson. |
+ |
+ Split MediaControls out of RenderMedia. |
+ https://bugs.webkit.org/show_bug.cgi?id=53252 |
+ |
+ Near-mechanical moving of stuff, no change in behavior, thus no new tests. |
+ |
+ * Android.mk: Added MediaControls to build system. |
+ * CMakeLists.txt: Ditto. |
+ * GNUmakefile.am: Ditto. |
+ * WebCore.gypi: Ditto. |
+ * WebCore.pro: Ditto. |
+ * WebCore.vcproj/WebCore.vcproj: Ditto. |
+ * WebCore.xcodeproj/project.pbxproj: Ditto. |
+ * html/HTMLMediaElement.cpp: |
+ (WebCore::HTMLMediaElement::defaultEventHandler): Changed to forward events to MediaControls. |
+ * html/shadow/MediaControls.cpp: Copied all controls-related methods from |
+ Source/WebCore/rendering/RenderMedia.cpp, pulled them into their own class called MediaControls. |
+ * html/shadow/MediaControls.h: Ditto from Source/WebCore/rendering/RenderMedia.h. |
+ * rendering/MediaControlElements.cpp: |
+ (WebCore::MediaControlTimelineElement::defaultEventHandler): Changed to use MediaControls. |
+ * rendering/RenderMedia.cpp: |
+ (WebCore::RenderMedia::RenderMedia): Moved relevant constructor initializers out to MediaControls. |
+ (WebCore::RenderMedia::destroy): Changed to use MediaControls. |
+ (WebCore::RenderMedia::styleDidChange): Ditto. |
+ (WebCore::RenderMedia::layout): Ditto. |
+ (WebCore::RenderMedia::updateFromElement): Ditto. |
+ * rendering/RenderMedia.h: Updated defs accordingly and removed player() accessor, which |
+ is only used by sub-class RenderVideo. |
+ (WebCore::RenderMedia::controls): Added. |
+ * rendering/RenderVideo.cpp: |
+ (WebCore::RenderVideo::~RenderVideo): Changed to access MediaPlayer* directly from mediaElement(). |
+ (WebCore::RenderVideo::calculateIntrinsicSize): Ditto. |
+ (WebCore::RenderVideo::paintReplaced): Ditto. |
+ (WebCore::RenderVideo::updatePlayer): Ditto. |
+ (WebCore::RenderVideo::supportsAcceleratedRendering): Ditto. |
+ (WebCore::RenderVideo::acceleratedRenderingStateChanged): Ditto. |
+ |
+2011-01-28 Pavel Feldman <pfeldman@chromium.org> |
+ |
+ Reviewed by Yury Semikhatsky. |
+ |
+ Web Inspector: allow remote debugging with front-end |
+ served from the cloud. |
+ https://bugs.webkit.org/show_bug.cgi?id=53303 |
+ |
+ * inspector/front-end/inspector.js: |
+ |
+2011-01-28 Aparna Nandyal <aparna.nand@wipro.com> |
+ |
+ Reviewed by Andreas Kling. |
+ |
+ Setting value of m_PressedPos to make scrolling smooth |
+ |
+ Page scroll popup menu "Scroll here" option not working when cliking above scroll slider/handler. |
+ https://bugs.webkit.org/show_bug.cgi?id=51349 |
+ |
+ The value of m_PressedPos was getting set before moveThumb() call |
+ in all other scenarios except when "Scroll Here" option is used. |
+ Hence scrolling with this option was not as expected even in cases |
+ where scrolling was happening. The thumb would move in unexpected |
+ direction. m_PressedPos is now set to pressed position so delta is |
+ calculated. |
+ Unable to write a test case as the test needs to click on "Scroll |
+ Here" option of context sensitive menu and QTest is unable to do it. |
+ Besides no new functionality introduced. |
+ |
+ * platform/qt/ScrollbarQt.cpp: |
+ (WebCore::Scrollbar::contextMenu): |
+ |
+2011-01-28 Andrey Kosyakov <caseq@chromium.org> |
+ |
+ Reviewed by Pavel Feldman. |
+ |
+ Web Inspector: [Extensions API] add JSON schema for extensions API |
+ https://bugs.webkit.org/show_bug.cgi?id=53236 |
+ |
+ * inspector/front-end/ExtensionAPISchema.json: Added. |
+ |
+2011-01-27 Zhenyao Mo <zmo@google.com> |
+ |
+ Reviewed by Kenneth Russell. |
+ |
+ Remove _LENGTH enumerants |
+ https://bugs.webkit.org/show_bug.cgi?id=53259 |
+ |
+ * html/canvas/WebGLRenderingContext.cpp: Remove queries for *LENGTH. |
+ (WebCore::WebGLRenderingContext::getProgramParameter): |
+ (WebCore::WebGLRenderingContext::getShaderParameter): |
+ * html/canvas/WebGLRenderingContext.idl: Remove *LENGTH. |
+ |
+2011-01-28 Alexander Pavlov <apavlov@chromium.org> |
+ |
+ Reviewed by Yury Semikhatsky. |
+ |
+ Web Inspector: syntax highlight inline JS and CSS in HTML resources |
+ https://bugs.webkit.org/show_bug.cgi?id=30831 |
+ |
+ * inspector/front-end/SourceHTMLTokenizer.js: |
+ (WebInspector.SourceHTMLTokenizer): |
+ (WebInspector.SourceHTMLTokenizer.prototype.set line): |
+ (WebInspector.SourceHTMLTokenizer.prototype.nextToken): |
+ * inspector/front-end/SourceHTMLTokenizer.re2js: |
+ |
+2011-01-28 Alexander Pavlov <apavlov@chromium.org> |
+ |
+ Reviewed by Yury Semikhatsky. |
+ |
+ Web Inspector: [STYLES] Up/Down-suggestion breaks an existing keyword |
+ https://bugs.webkit.org/show_bug.cgi?id=53295 |
+ |
+ Select the current word suffix before switching to the next suggestion. |
+ |
+ * inspector/front-end/StylesSidebarPane.js: |
+ (): |
+ |
+2011-01-28 Alejandro G. Castro <alex@igalia.com> |
+ |
+ Reviewed by Xan Lopez. |
+ |
+ [GTK] Fix dist compilation for the release |
+ https://bugs.webkit.org/show_bug.cgi?id=53290 |
+ |
+ * GNUmakefile.am: Added inspector files to the extra dist. |
+ |
+2011-01-28 Ilya Sherman <isherman@chromium.org> |
+ |
+ Reviewed by Andreas Kling. |
+ |
+ Const-correct HTMLSelectElement and WebSelectElement |
+ https://bugs.webkit.org/show_bug.cgi?id=53293 |
+ |
+ * html/HTMLSelectElement.cpp: |
+ (WebCore::HTMLSelectElement::value): const. |
+ * html/HTMLSelectElement.h: |
+ |
+2011-01-28 Sheriff Bot <webkit.review.bot@gmail.com> |
+ |
+ Unreviewed, rolling out r76893. |
+ http://trac.webkit.org/changeset/76893 |
+ https://bugs.webkit.org/show_bug.cgi?id=53287 |
+ |
+ It made some tests crash on GTK and Qt debug bots (Requested |
+ by Ossy on #webkit). |
+ |
+ * bridge/runtime_root.cpp: |
+ (JSC::Bindings::RootObject::invalidate): |
+ (JSC::Bindings::RootObject::addRuntimeObject): |
+ (JSC::Bindings::RootObject::removeRuntimeObject): |
+ * bridge/runtime_root.h: |
+ |
+2011-01-27 Greg Coletta <greg.coletta@nokia.com> |
+ |
+ Reviewed by Laszlo Gombos. |
+ |
+ Get rid of prefix header dependency for WebKit2 build system |
+ https://bugs.webkit.org/show_bug.cgi?id=50174 |
+ |
+ Guard EmptyProtocalDefinitions.h to make sure it's not included twice. |
+ |
+ * platform/mac/EmptyProtocolDefinitions.h: |
+ |
+2011-01-27 Abhishek Arya <inferno@chromium.org> |
+ |
+ Reviewed by Dan Bernstein. |
+ |
+ Recalc table sections if needed before calculating the first line |
+ box baseline. |
+ https://bugs.webkit.org/show_bug.cgi?id=53265 |
+ |
+ When we try to calculate the baseline position of a table cell, |
+ we recurse through all the child sibling boxes (when children are |
+ non inline) and add their first linebox baseline values. If one of |
+ the children is a table with pending section recalc, we will access |
+ wrong table section values. We recalc table sections if it is needed. |
+ |
+ Test: fast/table/recalc-section-first-body-crash-main.html |
+ |
+ * rendering/RenderTable.cpp: |
+ (WebCore::RenderTable::firstLineBoxBaseline): |
+ |
+2011-01-27 Adrienne Walker <enne@google.com> |
+ |
+ Reviewed by Kenneth Russell. |
+ |
+ [chromium] Add CRASH calls to further debug tiled compositor memcpy crash. |
+ https://bugs.webkit.org/show_bug.cgi?id=52379 |
+ |
+ Test: LayoutTests/compositing (to verify these weren't triggered) |
+ |
+ * platform/graphics/chromium/LayerTilerChromium.cpp: |
+ (WebCore::LayerTilerChromium::invalidateRect): |
+ (WebCore::LayerTilerChromium::update): |
+ |
+2011-01-27 Alexander Pavlov <apavlov@chromium.org> |
+ |
+ Reviewed by Pavel Feldman. |
+ |
+ Web Inspector: [STYLES] Cancelled suggestion of a property name results in a visual artifact |
+ https://bugs.webkit.org/show_bug.cgi?id=53242 |
+ |
+ * inspector/front-end/StylesSidebarPane.js: |
+ (WebInspector.StylePropertyTreeElement.prototype): |
+ |
+2011-01-27 Sheriff Bot <webkit.review.bot@gmail.com> |
+ |
+ Unreviewed, rolling out r76891. |
+ http://trac.webkit.org/changeset/76891 |
+ https://bugs.webkit.org/show_bug.cgi?id=53280 |
+ |
+ Makes every layout test crash (Requested by othermaciej on |
+ #webkit). |
+ |
+ * page/EventHandler.cpp: |
+ * page/EventHandler.h: |
+ * rendering/RenderObject.cpp: |
+ (WebCore::RenderObject::styleDidChange): |
+ |
+2011-01-27 Ryosuke Niwa <rniwa@webkit.org> |
+ |
+ Unreviewed, rolling out r76839. |
+ http://trac.webkit.org/changeset/76839 |
+ https://bugs.webkit.org/show_bug.cgi?id=49744 |
+ |
+ broke pixel tests |
+ |
+ * rendering/RenderBox.cpp: |
+ (WebCore::RenderBox::localCaretRect): |
+ |
+2011-01-27 Emil A Eklund <eae@chromium.org> |
+ |
+ Reviewed by Darin Adler. |
+ |
+ contentEditable formatBlock crashes on divs with contenteditable="false" |
+ https://bugs.webkit.org/show_bug.cgi?id=53263 |
+ |
+ Check if editableRootForPosition returns null for position. |
+ |
+ Test: editing/execCommand/format-block-contenteditable-false.html |
+ |
+ * editing/FormatBlockCommand.cpp: |
+ (WebCore::FormatBlockCommand::formatRange): |
+ |
+2011-01-27 Dimitri Glazkov <dglazkov@chromium.org> |
+ |
+ Reviewed by Darin Adler. |
+ |
+ Remove RenderMedia members that aren't used. |
+ https://bugs.webkit.org/show_bug.cgi?id=53245 |
+ |
+ Refactoring, no change in behavior, so no new tests. |
+ |
+ * rendering/RenderMedia.h: Removed unused member variables. |
+ |
+2011-01-27 Michael Saboff <msaboff@apple.com> |
+ |
+ Reviewed by Darin Adler. |
+ |
+ Potentially Unsafe HashSet of RuntimeObject* in RootObject definition |
+ https://bugs.webkit.org/show_bug.cgi?id=53271 |
+ |
+ Precautionary change. |
+ Changed RootObject to use WeakGCMap instead of HashSet. |
+ Found will looking for another issue, but can't produce a test case |
+ that is problematic. THerefore there aren't any new tests. |
+ |
+ * bridge/runtime_root.cpp: |
+ (JSC::Bindings::RootObject::invalidate): |
+ (JSC::Bindings::RootObject::addRuntimeObject): |
+ (JSC::Bindings::RootObject::removeRuntimeObject): |
+ * bridge/runtime_root.h: |
+ |
+2011-01-27 Kenneth Russell <kbr@google.com> |
+ |
+ Reviewed by James Robinson. |
+ |
+ Rename Typed Array slice() to subset() |
+ https://bugs.webkit.org/show_bug.cgi?id=53273 |
+ |
+ * bindings/js/JSArrayBufferViewHelper.h: |
+ (WebCore::constructArrayBufferView): |
+ * bindings/v8/custom/V8ArrayBufferViewCustom.h: |
+ (WebCore::constructWebGLArray): |
+ * html/canvas/Float32Array.cpp: |
+ (WebCore::Float32Array::subset): |
+ * html/canvas/Float32Array.h: |
+ * html/canvas/Float32Array.idl: |
+ * html/canvas/Int16Array.cpp: |
+ (WebCore::Int16Array::subset): |
+ * html/canvas/Int16Array.h: |
+ * html/canvas/Int16Array.idl: |
+ * html/canvas/Int32Array.cpp: |
+ (WebCore::Int32Array::subset): |
+ * html/canvas/Int32Array.h: |
+ * html/canvas/Int32Array.idl: |
+ * html/canvas/Int8Array.cpp: |
+ (WebCore::Int8Array::subset): |
+ * html/canvas/Int8Array.h: |
+ * html/canvas/Int8Array.idl: |
+ * html/canvas/TypedArrayBase.h: |
+ (WebCore::TypedArrayBase::subsetImpl): |
+ * html/canvas/Uint16Array.cpp: |
+ (WebCore::Uint16Array::subset): |
+ * html/canvas/Uint16Array.h: |
+ * html/canvas/Uint16Array.idl: |
+ * html/canvas/Uint32Array.cpp: |
+ (WebCore::Uint32Array::subset): |
+ * html/canvas/Uint32Array.h: |
+ * html/canvas/Uint32Array.idl: |
+ * html/canvas/Uint8Array.cpp: |
+ (WebCore::Uint8Array::subset): |
+ * html/canvas/Uint8Array.h: |
+ * html/canvas/Uint8Array.idl: |
+ |
+2011-01-27 Darin Adler <darin@apple.com> |
+ |
+ Reviewed by Dan Bernstein. |
+ |
+ Changing cursor style has no effect until the mouse moves |
+ https://bugs.webkit.org/show_bug.cgi?id=14344 |
+ rdar://problem/7563712 |
+ |
+ No tests added because we don't have infrastructure for testing actual cursor |
+ changes (as opposed to cursor style computation) at this time. We might add it later. |
+ |
+ * page/EventHandler.cpp: |
+ (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon): Added. |
+ * page/EventHandler.h: Ditto. |
+ |
+ * rendering/RenderObject.cpp: |
+ (WebCore::areNonIdenticalCursorListsEqual): Added. |
+ (WebCore::areCursorsEqual): Added. |
+ (WebCore::RenderObject::styleDidChange): Call dispatchFakeMouseMoveEventSoon if |
+ cursor styles changed. |
+ |
+2011-01-27 Leo Yang <leo.yang@torchmobile.com.cn> |
+ |
+ Reviewed by Dirk Schulze. |
+ |
+ SVG Use Cycle is not detected |
+ https://bugs.webkit.org/show_bug.cgi?id=52544 |
+ |
+ We should check if SVGUseElement::buildInstanceTree finds problem |
+ for every child node. If it finds problem for any children we must |
+ return immediately because otherwise the foundProblem variable may |
+ be rewritten to false. |
+ |
+ Test: svg/custom/recursive-use2.svg |
+ |
+ * svg/SVGUseElement.cpp: |
+ (WebCore::SVGUseElement::buildInstanceTree): |
+ |
+2011-01-27 Zhenyao Mo <zmo@google.com> |
+ |
+ Reviewed by Kenneth Russell. |
+ |
+ texSubImage2D's format/type needs to match the internalformat/type from the previous texImage2D call |
+ https://bugs.webkit.org/show_bug.cgi?id=53054 |
+ |
+ Test: fast/canvas/webgl/tex-sub-image-2d-bad-args.html |
+ |
+ * html/canvas/WebGLRenderingContext.cpp: |
+ (WebCore::WebGLRenderingContext::texSubImage2DBase): Check format/type match. |
+ |
+2011-01-27 Yi Shen <yi.4.shen@nokia.com>, Tor Arne Vestbø <tor.arne.vestbo@nokia.com> |
+ |
+ Reviewed by Andreas Kling. |
+ |
+ [Qt] Add fullscreen media control button for html video |
+ https://bugs.webkit.org/show_bug.cgi?id=51543 |
+ |
+ Implement media control fullscreen button for QtWebKit html5 video. |
+ |
+ * css/mediaControlsQt.css: |
+ (video::-webkit-media-controls-fullscreen-button): |
+ * platform/qt/RenderThemeQt.cpp: |
+ (WebCore::RenderThemeQt::paintMediaFullscreenButton): |
+ |
+2011-01-27 Nate Chapin <japhet@chromium.org> |
+ |
+ Reviewed by Adam Barth. |
+ |
+ Remove FrameLoader::url() and update callers to use |
+ Document::url(). |
+ https://bugs.webkit.org/show_bug.cgi?id=41165 |
+ |
+ Refactor, no new tests. |
+ |
+ * WebCore.exp.in: |
+ * dom/Document.cpp: |
+ (WebCore::Document::processHttpEquiv): |
+ (WebCore::Document::removePendingSheet): |
+ * history/CachedFrame.cpp: |
+ (WebCore::CachedFrameBase::CachedFrameBase): |
+ * history/PageCache.cpp: |
+ (WebCore::logCanCacheFrameDecision): |
+ (WebCore::PageCache::canCachePageContainingThisFrame): |
+ * html/HTMLFrameElementBase.cpp: |
+ (WebCore::HTMLFrameElementBase::isURLAllowed): |
+ * html/HTMLPlugInImageElement.cpp: |
+ (WebCore::HTMLPlugInImageElement::allowedToLoadFrameURL): |
+ * inspector/InspectorAgent.cpp: |
+ (WebCore::InspectorAgent::inspectedURL): |
+ * inspector/InspectorResourceAgent.cpp: |
+ (WebCore::buildObjectForFrame): |
+ * loader/DocumentWriter.cpp: |
+ (WebCore::DocumentWriter::replaceDocument): |
+ (WebCore::DocumentWriter::deprecatedFrameEncoding): |
+ * loader/FrameLoader.cpp: |
+ * loader/FrameLoader.h: |
+ * loader/HistoryController.cpp: |
+ (WebCore::HistoryController::updateForStandardLoad): |
+ (WebCore::HistoryController::updateForRedirectWithLockedBackForwardList): |
+ (WebCore::HistoryController::updateForSameDocumentNavigation): |
+ * loader/NavigationScheduler.cpp: |
+ (WebCore::ScheduledHistoryNavigation::fire): |
+ (WebCore::NavigationScheduler::scheduleLocationChange): |
+ (WebCore::NavigationScheduler::scheduleRefresh): |
+ * page/FrameView.cpp: |
+ (WebCore::FrameView::updateControlTints): |
+ * page/Location.cpp: |
+ (WebCore::Location::url): |
+ (WebCore::Location::setProtocol): |
+ (WebCore::Location::setHost): |
+ (WebCore::Location::setHostname): |
+ (WebCore::Location::setPort): |
+ (WebCore::Location::setPathname): |
+ (WebCore::Location::setSearch): |
+ (WebCore::Location::setHash): |
+ (WebCore::Location::reload): |
+ * page/Page.cpp: |
+ (WebCore::Page::goToItem): |
+ |
+2011-01-27 Stephen White <senorblanco@chromium.org> |
+ |
+ Reviewed by Darin Adler. |
+ |
+ Fix performance regression in ImageQualityController::objectDestroyed(). |
+ https://bugs.webkit.org/show_bug.cgi?id=52645 |
+ |
+ In r72282, I inadvertently introduced this regression by using a |
+ linear search through the hash map on object destruction. This was |
+ because the hash key consisted of both object pointer and layer id, |
+ but on object destruction we only know the object pointer, requiring |
+ a search to find all the layers. |
+ By replacing the hash map with two nested hash maps, where the outer key |
+ is the object and the inner key is the layer, we can find all the |
+ relevant data for an object in one hash lookup. |
+ |
+ * rendering/RenderBoxModelObject.cpp: |
+ Replace the (object,layer)->size HashMap with object->layer and |
+ layer->size HashMaps. |
+ (WebCore::ImageQualityController::isEmpty): |
+ Implement isEmpty() for the outer HashMap. |
+ (WebCore::ImageQualityController::removeLayer): |
+ When a layer is removed, remove it from the inner hash map. |
+ (WebCore::ImageQualityController::set): |
+ Implement set(): if the inner map exists, set the layer->size tuple |
+ directly. If not, create a new inner map, set the tuple, and insert |
+ it in the outer map. |
+ (WebCore::ImageQualityController::objectDestroyed): |
+ Look up the object in the outer map only. |
+ (WebCore::ImageQualityController::highQualityRepaintTimerFired): |
+ Cosmetic changes for the renamed now-outer hash map. |
+ (WebCore::ImageQualityController::shouldPaintAtLowQuality): |
+ Do both outer and inner hash map lookups. Call set() to add/update |
+ entries to the hash maps. keyDestroyed() is now removeLayer(). |
+ (WebCore::imageQualityController): |
+ Make the ImageQualityController a file-static global, so it can be |
+ created and destroyed on the fly. |
+ (WebCore::RenderBoxModelObject::~RenderBoxModelObject): |
+ If there is no ImageQualityController, don't call objectDestroyed(). |
+ If it's empty, delete it. |
+ * rendering/RenderImage.cpp: |
+ (WebCore::RenderImage::paintIntoRect): |
+ Also pass the Image* as the (void*) layer, since 0 is not a valid |
+ HashMap key. |
+ |
+2011-01-27 Adrienne Walker <enne@google.com> |
+ |
+ Reviewed by James Robinson. |
+ |
+ [chromium] Tiled compositor crashes if compositing turned off mid-paint |
+ https://bugs.webkit.org/show_bug.cgi?id=53198 |
+ |
+ * platform/graphics/chromium/LayerRendererChromium.cpp: |
+ (WebCore::LayerRendererChromium::drawLayers): |
+ * platform/graphics/chromium/LayerTilerChromium.cpp: |
+ (WebCore::LayerTilerChromium::update): |
+ (WebCore::LayerTilerChromium::draw): |
+ |
+2011-01-27 Carol Szabo <carol.szabo@nokia.com> |
+ |
+ Reviewed by David Hyatt. |
+ |
+ A corrupted counter tree is created when renderers are added to the |
+ tree bypassing RenderObject::addChild |
+ https://bugs.webkit.org/show_bug.cgi?id=51270 |
+ |
+ No new tests. This patch reimplements the fix for bugs 43812 and |
+ 51637 and hence all tests are already there as part of the original |
+ fixes for those bugs. |
+ |
+ * rendering/RenderCounter.cpp: |
+ (WebCore::findPlaceForCounter): |
+ Removed old workaround as this patch hopefully fixes the real |
+ problem. |
+ * rendering/RenderObject.cpp: |
+ (WebCore::RenderObject::addChild): |
+ Removed call to counter updater as it was moved to a lower level. |
+ (WebCore::RenderObject::destroy): |
+ Moved attached counter nodes destruction to after the node is |
+ removed from the tree. |
+ * rendering/RenderObjectChildList.cpp: |
+ (WebCore::RenderObjectChildList::removeChildNode): |
+ (WebCore::RenderObjectChildList::appendChildNode): |
+ (WebCore::RenderObjectChildList::insertChildNode): |
+ Added notifications to the Counter system such that the |
+ CounterForest reflects the changes to the RendererTree. |
+ * rendering/RenderWidget.cpp: |
+ (WebCore::RenderWidget::destroy): |
+ Applied the same changes as for RenderObject::destroy() |
+ since RenderObject::destroy() is not called from here. |
+ |
+2011-01-27 Adam Roben <aroben@apple.com> |
+ |
+ Add WKCACFViewLayerTreeHost |
+ |
+ This is a class that derives from CACFLayerTreeHost and uses a WKCACFView to render. |
+ |
+ Fixes <http://webkit.org/b/53251> <rdar://problem/8925496> CACFLayerTreeHost should use |
+ WKCACFView for rendering |
+ |
+ * WebCore.vcproj/WebCore.vcproj: Added WKCACFViewLayerTreeHost.{cpp,h}. |
+ |
+ * platform/graphics/ca/win/CACFLayerTreeHost.cpp: |
+ (WebCore::CACFLayerTreeHost::acceleratedCompositingAvailable): Make the test window have a |
+ non-zero size. WKCACFView will always say it can't render if you pass it a 0-sized window, |
+ so we need a non-empty window to perform a valid test. |
+ (WebCore::CACFLayerTreeHost::create): First try to create a WKCACFViewLayerTreeHost, then |
+ fall back to a LegacyCACFLayerTreeHost. |
+ (WebCore::CACFLayerTreeHost::flushPendingLayerChangesNow): Moved code to react to the |
+ context flush from here... |
+ (WebCore::CACFLayerTreeHost::contextDidChange): ...to here. Derived classes are required to |
+ call this function whenever changes are flushed to the context. |
+ |
+ * platform/graphics/ca/win/CACFLayerTreeHost.h: Added contextDidChange. |
+ |
+ * platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp: |
+ (WebCore::LegacyCACFLayerTreeHost::createRenderer): |
+ (WebCore::LegacyCACFLayerTreeHost::resize): |
+ Changed to use flushContext instead of flushing the context manually so that we will always |
+ notify the base class when the context gets flushed. |
+ |
+ (WebCore::LegacyCACFLayerTreeHost::flushContext): Added a call to contextDidChange so the |
+ base class will know what happened. Moved code to schedule a render from here... |
+ (WebCore::LegacyCACFLayerTreeHost::contextDidChange): ...to here. |
+ |
+ * platform/graphics/ca/win/LegacyCACFLayerTreeHost.h: Added contextDidChange. |
+ |
+ * platform/graphics/ca/win/WKCACFViewLayerTreeHost.cpp: Added. |
+ (WebCore::WKCACFViewLayerTreeHost::create): If WebKitQuartzCoreAdditions, which provides |
+ WKCACFView, isn't present, bail. Otherwise allocate and return a new host. |
+ (WebCore::WKCACFViewLayerTreeHost::WKCACFViewLayerTreeHost): Initialize members. |
+ (WebCore::WKCACFViewLayerTreeHost::updateViewIfNeeded): Update the view if we previously |
+ marked that we needed to do so, and flush the context if our layer's bounds have changed. |
+ (WebCore::WKCACFViewLayerTreeHost::contextDidChangeCallback): Call through to |
+ contextDidChange. |
+ (WebCore::WKCACFViewLayerTreeHost::contextDidChange): Tell the WKCACFView to start rendering |
+ (if we didn't already), then call up to the base class. |
+ (WebCore::WKCACFViewLayerTreeHost::initializeContext): Set the context's user data, the |
+ view's layer, and hook up our "context did change" callback. |
+ (WebCore::WKCACFViewLayerTreeHost::resize): Mark that the view needs to be updated the next |
+ time we paint. |
+ (WebCore::WKCACFViewLayerTreeHost::createRenderer): Update our view and return whether it is |
+ able to render or not. |
+ (WebCore::WKCACFViewLayerTreeHost::destroyRenderer): Clear out all the info we passed down |
+ to the view. |
+ (WebCore::WKCACFViewLayerTreeHost::lastCommitTime): Call through to the view. |
+ (WebCore::WKCACFViewLayerTreeHost::flushContext): Ditto. |
+ (WebCore::WKCACFViewLayerTreeHost::paint): Update the view so it will draw at the right |
+ size, then call up to the base class. |
+ (WebCore::WKCACFViewLayerTreeHost::render): Invalidate the view using the passed-in dirty |
+ rects, then ask it to draw. |
+ |
+ * platform/graphics/ca/win/WKCACFViewLayerTreeHost.h: Copied from Source/WebCore/platform/graphics/ca/win/LegacyCACFLayerTreeHost.h. |
+ |
+2011-01-27 Adam Roben <aroben@apple.com> |
+ |
+ Move LegacyCACFLayerTreeHost into its own files |
+ |
+ More preparation for <http://webkit.org/b/53251> <rdar://problem/8925496> CACFLayerTreeHost |
+ should use WKCACFView for rendering |
+ |
+ Reviewed by Simon Fraser. |
+ |
+ * WebCore.vcproj/WebCore.vcproj: Added LegacyCACFLayerTreeHost.{cpp,h}. |
+ |
+ * platform/graphics/ca/win/CACFLayerTreeHost.cpp: Moved code from here to new files. |
+ |
+ * platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp: Added. |
+ * platform/graphics/ca/win/LegacyCACFLayerTreeHost.h: Added. |
+ |
+2011-01-27 Patrick Gansterer <paroga@webkit.org> |
+ |
+ Unreviewed WinCE build fix for r76824. |
+ |
+ * platform/wince/DragDataWinCE.cpp: |
+ (WebCore::DragData::dragDataMap): |
+ |
+2011-01-27 Adam Roben <aroben@apple.com> |
+ |
+ Split CACFLayerTreeHost into base and derived classes |
+ |
+ The derived class, LegacyCACFLayerTreeHost, contains all the D3D-related code. A later patch |
+ will add a new derived class that replaces the D3D code with a different rendering API. |
+ |
+ For now, LegacyCACFLayerTreeHost lives in CACFLayerTreeHost.cpp. This keeps the diff a |
+ little smaller. A later patch will move it to its own source files. |
+ |
+ Preparation for <http://webkit.org/b/53251> <rdar://problem/8925496> CACFLayerTreeHost |
+ should use WKCACFView for rendering |
+ |
+ Reviewed by Simon Fraser. |
+ |
+ * platform/graphics/ca/win/CACFLayerTreeHost.cpp: |
+ (WebCore::CACFLayerTreeHost::acceleratedCompositingAvailable): Clear the window before |
+ destroying the host, as that is now the API contract that clients must fulfill. |
+ (WebCore::LegacyCACFLayerTreeHost::create): Added. Simple creator. |
+ (WebCore::CACFLayerTreeHost::create): Now instantiates a LegacyCACFLayerTreeHost. Calls the |
+ new initialize function to perform initialization that has to happen after the vtable has |
+ been set up. |
+ |
+ (WebCore::LegacyCACFLayerTreeHost::LegacyCACFLayerTreeHost): |
+ (WebCore::CACFLayerTreeHost::CACFLayerTreeHost): |
+ (WebCore::LegacyCACFLayerTreeHost::initializeContext): |
+ (WebCore::CACFLayerTreeHost::initialize): |
+ Moved some initialization code from the CACFLayerTreeHost constructor into these new |
+ functions. |
+ |
+ (WebCore::LegacyCACFLayerTreeHost::~LegacyCACFLayerTreeHost): Added. Moved code here from |
+ ~CACFLayerTreeHost. |
+ (WebCore::CACFLayerTreeHost::~CACFLayerTreeHost): Rather than clearing the window at this |
+ point (which would be too late, since we won't be able to call into the derived class's |
+ virtual functions), just assert that it has already been cleared (or was never set in the |
+ first place). |
+ (WebCore::LegacyCACFLayerTreeHost::createRenderer): Renamed from |
+ CACFLayerTreeHost::createRenderer, and changed to use getters instead of accessing |
+ CACFLayerTreeHost's data members directly. |
+ |
+ (WebCore::LegacyCACFLayerTreeHost::destroyRenderer): |
+ (WebCore::CACFLayerTreeHost::destroyRenderer): |
+ Moved some code to the new LegacyCACFLayerTreeHost function. |
+ |
+ (WebCore::LegacyCACFLayerTreeHost::resize): |
+ (WebCore::LegacyCACFLayerTreeHost::renderTimerFired): |
+ Moved these functions to LegacyCACFLayerTreeHost. |
+ |
+ (WebCore::LegacyCACFLayerTreeHost::paint): |
+ (WebCore::CACFLayerTreeHost::paint): |
+ Moved some code to the new LegacyCACFLayerTreeHost function. |
+ |
+ (WebCore::LegacyCACFLayerTreeHost::render): |
+ (WebCore::LegacyCACFLayerTreeHost::renderSoon): |
+ Moved these functions to LegacyCACFLayerTreeHost. |
+ |
+ (WebCore::CACFLayerTreeHost::flushPendingLayerChangesNow): Moved code to flush the context |
+ from here... |
+ (WebCore::LegacyCACFLayerTreeHost::flushContext): ...to this new function. |
+ |
+ (WebCore::LegacyCACFLayerTreeHost::lastCommitTime): Moved code to get the last commit time |
+ to this new function... |
+ (WebCore::CACFLayerTreeHost::notifyAnimationsStarted): ...from here. |
+ |
+ (WebCore::LegacyCACFLayerTreeHost::initD3DGeometry): |
+ (WebCore::LegacyCACFLayerTreeHost::resetDevice): |
+ Moved these functions to LegacyCACFLayerTreeHost. |
+ |
+ * platform/graphics/ca/win/CACFLayerTreeHost.h: Made some functions virtual, removed some |
+ members that have moved to LegacyCACFLayerTreeHost, grouped remaining members more |
+ logically, and added some getters used by LegacyCACFLayerTreeHost. |
+ |
+2011-01-27 Adam Roben <aroben@apple.com> |
+ |
+ Move CACFLayerTreeHostClient to its own header file |
+ |
+ Rubber-stamped by Steve Falkenburg. |
+ |
+ * WebCore.vcproj/WebCore.vcproj: Added CACFLayerTreeHostClient.h. Also let VS have its way |
+ with the file. |
+ |
+ * platform/graphics/ca/win/CACFLayerTreeHost.cpp: Added new #include. |
+ |
+ * platform/graphics/ca/win/CACFLayerTreeHost.h: Removed CACFLayerTreeHostClient. |
+ |
+ * platform/graphics/ca/win/CACFLayerTreeHostClient.h: Added. |
+ |
+ * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp: Moved some #includes here |
+ from the header file. |
+ |
+ * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h: Replaced broader #includes |
+ with more specific ones, plus a forward-declaration. |
+ |
+2011-01-27 James Simonsen <simonjam@chromium.org> |
+ |
+ Reviewed by Tony Chang. |
+ |
+ [Chromium] Simplify small caps logic in complex text on linux |
+ https://bugs.webkit.org/show_bug.cgi?id=53207 |
+ |
+ Test: fast/text/atsui-multiple-renderers.html |
+ fast/text/atsui-small-caps-punctuation-size.html |
+ |
+ * platform/graphics/chromium/ComplexTextControllerLinux.cpp: |
+ (WebCore::ComplexTextController::nextScriptRun): Remove redundant logic. Case changes in a text run imply FontData changes. |
+ (WebCore::ComplexTextController::setupFontForScriptRun): Update comment to reflect above. |
+ |
+2011-01-27 Adam Barth <abarth@webkit.org> |
+ |
+ In which I attempt to fix the EFL build. |
+ |
+ * CMakeLists.txt: |
+ |
+2011-01-25 Levi Weintraub <leviw@chromium.org> |
+ |
+ Reviewed by Darin Adler. |
+ |
+ Adding border and padding to the calculation of the local caret rect for RenderBoxes. |
+ Corrected for mistake in r76625 |
+ |
+ Undo moves caret to invalid position |
+ https://bugs.webkit.org/show_bug.cgi?id=49744 |
+ |
+ Tests: editing/selection/caret-painting-after-paste-undo-rtl.html |
+ editing/selection/caret-painting-after-paste-undo.html |
+ |
+ * rendering/RenderBox.cpp: |
+ (WebCore::RenderBox::localCaretRect): |
+ |
+2011-01-27 Sheriff Bot <webkit.review.bot@gmail.com> |
+ |
+ Unreviewed, rolling out r76825. |
+ http://trac.webkit.org/changeset/76825 |
+ https://bugs.webkit.org/show_bug.cgi?id=53256 |
+ |
+ "caused crashes on GTK and chromium" (Requested by rniwa on |
+ #webkit). |
+ |
+ * rendering/RenderBoxModelObject.cpp: |
+ (WebCore::ImageQualityController::keyDestroyed): |
+ (WebCore::ImageQualityController::objectDestroyed): |
+ (WebCore::ImageQualityController::highQualityRepaintTimerFired): |
+ (WebCore::ImageQualityController::shouldPaintAtLowQuality): |
+ (WebCore::imageQualityController): |
+ (WebCore::RenderBoxModelObject::~RenderBoxModelObject): |
+ |
+2011-01-27 Adam Barth <abarth@webkit.org> |
+ |
+ Reviewed by Eric Seidel. |
+ |
+ Generalize the mechanism view-source uses to remember the source for an HTMLToken |
+ https://bugs.webkit.org/show_bug.cgi?id=53200 |
+ |
+ Currently view-source tracks the source associated with each HTMLToken. |
+ We want to re-use this mechanism for the new XSS auditor. This patch |
+ moves this code into its own class so it can be shared between the |
+ view-source parser and the general HTML parser. This patch also add |
+ support for tracking the source of tokens that span document.write |
+ boundaries. |
+ |
+ No functional change. This code change is somewhat tested by our |
+ view-source layout tests. |
+ |
+ * Android.mk: |
+ * GNUmakefile.am: |
+ * WebCore.gypi: |
+ * WebCore.pro: |
+ * WebCore.vcproj/WebCore.vcproj: |
+ * WebCore.xcodeproj/project.pbxproj: |
+ - Fun with updating build files. |
+ * html/parser/HTMLDocumentParser.cpp: |
+ (WebCore::HTMLDocumentParser::pumpTokenizer): |
+ - Teach HTMLDocumentParser to track the source for HTMLTokens. |
+ Currently, this information isn't used, but it will be shortly. |
+ I ran the HTML parser benchmark and this change didn't have a |
+ measurable effect. |
+ * html/parser/HTMLDocumentParser.h: |
+ - Composite in the HTMLSourceTracker. |
+ * html/parser/HTMLSourceTracker.cpp: Added. |
+ (WebCore::HTMLSourceTracker::HTMLSourceTracker): |
+ (WebCore::HTMLSourceTracker::start): |
+ (WebCore::HTMLSourceTracker::end): |
+ - This function should eventualy be folded into HTMLTokenizer. |
+ (WebCore::HTMLSourceTracker::sourceForToken): |
+ * html/parser/HTMLSourceTracker.h: Added. |
+ * html/parser/HTMLToken.h: |
+ - Now HTMLTokens always have a start index of zero. To do the job |
+ of the old start index, this patch introduces the notion of a |
+ baseOffset. Unlike the start index (which was used as the base |
+ offset for all the other indicies), the baseOffset can change |
+ over the lifetime of the token. We need the flexibility to |
+ change the offset for tokens that span document.write boundaries. |
+ Values are now normalized to zero-offset when stored. |
+ (WebCore::HTMLToken::clear): |
+ (WebCore::HTMLToken::setBaseOffset): |
+ (WebCore::HTMLToken::end): |
+ (WebCore::HTMLToken::beginAttributeName): |
+ (WebCore::HTMLToken::endAttributeName): |
+ (WebCore::HTMLToken::beginAttributeValue): |
+ (WebCore::HTMLToken::endAttributeValue): |
+ * html/parser/HTMLViewSourceParser.cpp: |
+ - Updates the HTMLViewSourceParser to use the new |
+ HTMLSourceTracker. |
+ (WebCore::HTMLViewSourceParser::pumpTokenizer): |
+ (WebCore::HTMLViewSourceParser::append): |
+ (WebCore::HTMLViewSourceParser::sourceForToken): |
+ - This function now just calls through to HTMLSourceTracker. |
+ * html/parser/HTMLViewSourceParser.h: |
+ * platform/text/SegmentedString.cpp: |
+ (WebCore::SegmentedString::currentColumn): |
+ (WebCore::SegmentedString::setCurrentPosition): |
+ * platform/text/SegmentedString.h: |
+ (WebCore::SegmentedString::numberOfCharactersConsumed): |
+ - We need to handle the general case now. The "slow" version |
+ doesn't turn out to be any slower in practice anyway. |
+ |
+2011-01-27 Sam Weinig <sam@webkit.org> |
+ |
+ Fix all the builds. |
+ |
+ * platform/ScrollView.cpp: |
+ (WebCore::ScrollView::paintOverhangAreas): Add parameters. |
+ |
+2011-01-27 Sam Weinig <sam@webkit.org> |
+ |
+ Reviewed by Dave Hyatt. |
+ |
+ Add ability to do an unconstrained scroll on a ScrollView |
+ https://bugs.webkit.org/show_bug.cgi?id=53249 |
+ |
+ * platform/ScrollView.cpp: |
+ (WebCore::ScrollView::ScrollView): |
+ Initialize m_constrainsScrollingToContentEdge to true. |
+ |
+ (WebCore::ScrollView::setScrollOffset): |
+ Only constrain the offset if the m_constrainsScrollingToContentEdge is set. |
+ |
+ (WebCore::ScrollView::updateScrollbars): |
+ Simplify expression converting an IntSize to an IntPoint. |
+ |
+ (WebCore::ScrollView::paint): |
+ Paint the overhang if there is any. |
+ |
+ (WebCore::ScrollView::calculateOverhangAreasForPainting): |
+ Calculate the overhang in viewport coordinates for painting. |
+ |
+ * platform/ScrollView.h: |
+ (WebCore::ScrollView::constrainsScrollingToContentEdge): |
+ (WebCore::ScrollView::setConstrainsScrollingToContentEdge): |
+ Add bit to control whether the scroll position should be constrained |
+ to the content edge when set. |
+ |
+ * platform/ScrollbarThemeComposite.cpp: |
+ (WebCore::usedTotalSize): |
+ (WebCore::ScrollbarThemeComposite::thumbPosition): |
+ (WebCore::ScrollbarThemeComposite::thumbLength): |
+ * platform/mac/ScrollbarThemeMac.mm: |
+ (WebCore::ScrollbarThemeMac::paint): |
+ Improve calculations of thumb size and position to take overhang into account. |
+ |
+2011-01-27 Dirk Schulze <krit@webkit.org> |
+ |
+ Reviewed by Nikolas Zimmermann. |
+ |
+ SVG animation of Paths with segments of different coordinate modes on begin and end |
+ https://bugs.webkit.org/show_bug.cgi?id=52984 |
+ |
+ At the moment we just support SVG path animations, if the number of segments on the given start path |
+ is the same as the number of segments on the given end path. But a segment on a given position must be identical |
+ on both paths as well. Not only the segment type, also the coordinate mode of the segments must be identical. |
+ If MoveToRel is on the second position on the start path a MoveToRel must be on the second position |
+ of the end path too. According to the SVG spec, at least the coordinate mode can differ. Means, if we have MoveToRel |
+ in the start path, we can use MoveToAbs on the same position in the end path. |
+ |
+ This patch fixes the blending code to follow the spec here. It was necessary to track the current position of |
+ both paths, transform coordinates to the same coordinate mode and transform the resulting animation coordinate back |
+ to the coordinate mode of either the start or the end path. Which mode is taken depends on the progress of the |
+ animation. |
+ |
+ Tests: svg/animations/animate-path-animation-Cc-Ss.html |
+ svg/animations/animate-path-animation-Ll-Vv-Hh.html |
+ svg/animations/animate-path-animation-Qq-Tt.html |
+ svg/animations/animate-path-animation-cC-sS-inverse.html |
+ svg/animations/animate-path-animation-lL-vV-hH-inverse.html |
+ svg/animations/animate-path-animation-qQ-tT-inverse.html |
+ |
+ * svg/SVGPathBlender.cpp: |
+ (WebCore::blendFloatPoint): |
+ (WebCore::blendAnimatedFloat): |
+ (WebCore::SVGPathBlender::blendAnimatedDimensionalFloat): |
+ (WebCore::SVGPathBlender::blendAnimatedFloatPoint): |
+ (WebCore::SVGPathBlender::blendMoveToSegment): |
+ (WebCore::SVGPathBlender::blendLineToSegment): |
+ (WebCore::SVGPathBlender::blendLineToHorizontalSegment): |
+ (WebCore::SVGPathBlender::blendLineToVerticalSegment): |
+ (WebCore::SVGPathBlender::blendCurveToCubicSegment): |
+ (WebCore::SVGPathBlender::blendCurveToCubicSmoothSegment): |
+ (WebCore::SVGPathBlender::blendCurveToQuadraticSegment): |
+ (WebCore::SVGPathBlender::blendCurveToQuadraticSmoothSegment): |
+ (WebCore::SVGPathBlender::blendArcToSegment): |
+ (WebCore::coordinateModeOfCommand): |
+ (WebCore::isSegmentEqual): |
+ (WebCore::SVGPathBlender::blendAnimatedPath): |
+ (WebCore::SVGPathBlender::cleanup): |
+ * svg/SVGPathBlender.h: |
+ |
+2011-01-27 Cris Neckar <cdn@chromium.org> |
+ |
+ Reviewed by Dimitri Glazkov. |
+ |
+ Clear the parent on a css keyframe's m_style when removing it from the stylesheet. |
+ https://bugs.webkit.org/show_bug.cgi?id=52320 |
+ |
+ Test: fast/css/css-keyframe-style-crash.html |
+ |
+ * css/CSSRuleList.cpp: |
+ (WebCore::CSSRuleList::deleteRule): |
+ * css/WebKitCSSKeyframesRule.cpp: |
+ (WebCore::WebKitCSSKeyframesRule::~WebKitCSSKeyframesRule): |
+ |
+2011-01-27 Rob Buis <rwlbuis@gmail.com> |
+ |
+ Reviewed by Kent Tamura. |
+ |
+ Color changes to option elements in a select multiple aren't drawn immediately |
+ https://bugs.webkit.org/show_bug.cgi?id=49790 |
+ |
+ Redirect style changes on <option> element to the owner <select> element. |
+ |
+ Test: fast/repaint/select-option-background-color.html |
+ |
+ * html/HTMLOptionElement.cpp: |
+ (WebCore::HTMLOptionElement::setRenderStyle): |
+ |
+2011-01-19 Stephen White <senorblanco@chromium.org> |
+ |
+ Reviewed by Darin Adler. |
+ |
+ Fix performance regression in ImageQualityController::objectDestroyed(). |
+ https://bugs.webkit.org/show_bug.cgi?id=52645 |
+ |
+ In r72282, I inadvertently introduced this regression by using a |
+ linear search through the hash map on object destruction. This was |
+ because the hash key consisted of both object pointer and layer id, |
+ but on object destruction we only know the object pointer, requiring |
+ a search to find all the layers. |
+ By replacing the hash map with two nested hash maps, where the outer key |
+ is the object and the inner key is the layer, we can find all the |
+ relevant data for an object in one hash lookup. |
+ |
+ * rendering/RenderBoxModelObject.cpp: |
+ Replace the (object,layer)->size HashMap with object->layer and |
+ layer->size HashMaps. |
+ (WebCore::ImageQualityController::isEmpty): |
+ Implement isEmpty() for the outer HashMap. |
+ (WebCore::ImageQualityController::removeLayer): |
+ When a layer is removed, remove it from the inner hash map. |
+ (WebCore::ImageQualityController::set): |
+ Implement set(): if the inner map exists, set the layer->size tuple |
+ directly. If not, create a new inner map, set the tuple, and insert |
+ it in the outer map. |
+ (WebCore::ImageQualityController::objectDestroyed): |
+ Look up the object in the outer map only. |
+ (WebCore::ImageQualityController::highQualityRepaintTimerFired): |
+ Cosmetic changes for the renamed now-outer hash map. |
+ (WebCore::ImageQualityController::shouldPaintAtLowQuality): |
+ Do both outer and inner hash map lookups. Call set() to add/update |
+ entries to the hash maps. keyDestroyed() is now removeLayer(). |
+ (WebCore::imageQualityController): |
+ Make the ImageQualityController a file-static global, so it can be |
+ created and destroyed on the fly. |
+ (WebCore::RenderBoxModelObject::~RenderBoxModelObject): |
+ If there is no ImageQualityController, don't call objectDestroyed(). |
+ If it's empty, delete it. |
+ |
+ |
+2011-01-26 Enrica Casucci <enrica@apple.com> |
+ |
+ Reviewed by Darin Adler and Adam Roben. |
+ |
+ WebKit2: add support for drag and drop on Windows |
+ https://bugs.webkit.org/show_bug.cgi?id=52775 |
+ <rdar://problem/8514409> |
+ |
+ On Windows the access to the content being dragged is |
+ provided via the IDataObject interface that is made available |
+ to the window that registers itself as drop target. |
+ Since this interface cannot be accessed from the WebProcess, |
+ in every call to one of the methods of the IDropTarget interface |
+ we serialize the content of the drag clipboard and send it over to |
+ the WebProcess. |
+ The bulk of this patch consists in the refactoring needed in DragData |
+ and ClipboardWin classes to extract the data from the serialized object. |
+ |
+ * platform/DragData.cpp: |
+ * platform/DragData.h: |
+ * platform/win/ClipboardUtilitiesWin.cpp: |
+ (WebCore::getWebLocData): |
+ (WebCore::getURL): |
+ (WebCore::getPlainText): |
+ (WebCore::getTextHTML): |
+ (WebCore::getCFHTML): |
+ (WebCore::fragmentFromFilenames): |
+ (WebCore::containsFilenames): |
+ (WebCore::fragmentFromHTML): |
+ (WebCore::containsHTML): |
+ (WebCore::getClipboardData): |
+ * platform/win/ClipboardUtilitiesWin.h: |
+ * platform/win/ClipboardWin.cpp: |
+ (WebCore::Clipboard::create): |
+ (WebCore::ClipboardWin::ClipboardWin): |
+ (WebCore::ClipboardWin::getData): |
+ (WebCore::ClipboardWin::types): |
+ (WebCore::ClipboardWin::files): |
+ (WebCore::ClipboardWin::hasData): |
+ * platform/win/ClipboardWin.h: |
+ (WebCore::ClipboardWin::create): |
+ * platform/win/DragDataWin.cpp: |
+ (WebCore::DragData::DragData): |
+ (WebCore::DragData::containsURL): |
+ (WebCore::DragData::dragDataMap): |
+ (WebCore::DragData::asURL): |
+ (WebCore::DragData::containsFiles): |
+ (WebCore::DragData::asFilenames): |
+ (WebCore::DragData::containsPlainText): |
+ (WebCore::DragData::asPlainText): |
+ (WebCore::DragData::canSmartReplace): |
+ (WebCore::DragData::containsCompatibleContent): |
+ (WebCore::DragData::asFragment): |
+ |
+2011-01-27 Mario Sanchez Prada <msanchez@igalia.com> |
+ |
+ Reviewed by Martin Robinson. |
+ |
+ [GTK] Space characters in source document interfere with reported caret offset |
+ https://bugs.webkit.org/show_bug.cgi?id=53033 |
+ |
+ Calculate caret offset from rendered text instead of from node contents. |
+ |
+ * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: |
+ (objectAndOffsetUnignored): Calculate the caret offset based only |
+ on positions and ranges, instead of using the computed offset in |
+ the container node. |
+ |
+2011-01-26 Alexey Proskuryakov <ap@apple.com> |
+ |
+ Reviewed by Darin Adler. |
+ |
+ https://bugs.webkit.org/show_bug.cgi?id=53197 |
+ <rdar://problem/8895682> Make WebKit2 printing asynchronous |
+ |
+ * WebCore.exp.in: Export more PrintContext methods that we didn't use on Mac before. |
+ |
+ * page/PrintContext.cpp: (WebCore::PrintContext::spoolRect): Changed to make the same |
+ transformation as spoolPages does for consistency. |
+ |
+2011-01-27 David Grogan <dgrogan@google.com> |
+ |
+ Reviewed by Jeremy Orlow. |
+ |
+ initial support for close() in indexeddb backend |
+ https://bugs.webkit.org/show_bug.cgi?id=53150 |
+ |
+ Test: storage/indexeddb/transaction-after-close.html |
+ |
+ * storage/IDBDatabase.cpp: |
+ (WebCore::IDBDatabase::IDBDatabase): |
+ (WebCore::IDBDatabase::transaction): |
+ (WebCore::IDBDatabase::close): |
+ * storage/IDBDatabase.h: |
+ * storage/IDBDatabase.idl: |
+ * storage/IDBDatabaseBackendImpl.cpp: |
+ (WebCore::IDBDatabaseBackendImpl::transaction): |
+ (WebCore::IDBDatabaseBackendImpl::close): |
+ |
+2011-01-27 Dirk Schulze <krit@webkit.org> |
+ |
+ Reviewed by Nikolas Zimmermann. |
+ |
+ SVG animation doesn't support calcMode discrete for number and color values. |
+ https://bugs.webkit.org/show_bug.cgi?id=53189 |
+ |
+ Add support for calcMode discrete on number and color animation. |
+ |
+ Tests: svg/animations/animate-color-calcMode-discrete.html |
+ svg/animations/animate-number-calcMode-discrete.html |
+ |
+ * svg/SVGAnimateElement.cpp: |
+ (WebCore::SVGAnimateElement::calculateAnimatedValue): |
+ |
+2011-01-26 Zhenyao Mo <zmo@google.com> |
+ |
+ Reviewed by Kenneth Russell. |
+ |
+ shaderSource needs to preserve original source |
+ https://bugs.webkit.org/show_bug.cgi?id=52833 |
+ |
+ Test: fast/canvas/webgl/gl-getshadersource.html |
+ |
+ * html/canvas/WebGLRenderingContext.cpp: |
+ (WebCore::WebGLRenderingContext::getShaderParameter): Intercept SHADER_SOURCE_LENGTH. |
+ (WebCore::WebGLRenderingContext::getShaderSource): Intercept the call. |
+ (WebCore::WebGLRenderingContext::shaderSource): Cache the source. |
+ * html/canvas/WebGLShader.cpp: Cache shader source. |
+ (WebCore::WebGLShader::WebGLShader): |
+ * html/canvas/WebGLShader.h: Ditto. |
+ (WebCore::WebGLShader::getSource): |
+ (WebCore::WebGLShader::setSource): |
+ |
+2011-01-27 Patrick Gansterer <paroga@webkit.org> |
+ |
+ Unreviewed WinCE build fix for r76743. |
+ |
+ * platform/graphics/wince/FontWinCE.cpp: |
+ (WebCore::TextRunComponent::TextRunComponent): |
+ |
+2011-01-27 Pavel Podivilov <podivilov@chromium.org> |
+ |
+ Reviewed by Pavel Feldman. |
+ |
+ Web Inspector: Closure and Global variable details automatically collapsing on each step through JavaScript code. |
+ https://bugs.webkit.org/show_bug.cgi?id=53234 |
+ |
+ * inspector/front-end/ScopeChainSidebarPane.js: |
+ (WebInspector.ScopeChainSidebarPane): |
+ (WebInspector.ScopeChainSidebarPane.prototype.update): |
+ |
+2011-01-27 Sheriff Bot <webkit.review.bot@gmail.com> |
+ |
+ Unreviewed, rolling out r76789. |
+ http://trac.webkit.org/changeset/76789 |
+ https://bugs.webkit.org/show_bug.cgi?id=53238 |
+ |
+ Broke GTK layout tests (Requested by podivilov on #webkit). |
+ |
+ * inspector/front-end/ScopeChainSidebarPane.js: |
+ (WebInspector.ScopeChainSidebarPane): |
+ (WebInspector.ScopeChainSidebarPane.prototype.update): |
+ |
+2011-01-27 Yury Semikhatsky <yurys@chromium.org> |
+ |
+ Reviewed by Pavel Feldman. |
+ |
+ Web Inspector: store all settings related to the agents on the frontend side |
+ https://bugs.webkit.org/show_bug.cgi?id=53174 |
+ |
+ * CMakeLists.txt: |
+ * GNUmakefile.am: |
+ * WebCore.exp.in: |
+ * WebCore.gypi: |
+ * WebCore.pro: |
+ * WebCore.vcproj/WebCore.vcproj: |
+ * WebCore.xcodeproj/project.pbxproj: |
+ * bindings/js/ScriptDebugServer.cpp: |
+ * bindings/js/ScriptDebugServer.h: |
+ * bindings/js/ScriptProfiler.cpp: |
+ * bindings/js/ScriptProfiler.h: |
+ * bindings/v8/ScriptDebugServer.cpp: |
+ * bindings/v8/ScriptDebugServer.h: |
+ * bindings/v8/ScriptProfiler.cpp: |
+ * bindings/v8/ScriptProfiler.h: |
+ * inspector/Inspector.idl: |
+ * inspector/InspectorAgent.cpp: profiler and debugger enablement state is now stored |
+ on the front-end side and will be pushed to the backend when the frontend is loaded. |
+ (WebCore::InspectorAgent::InspectorAgent): |
+ (WebCore::InspectorAgent::disconnectFrontend): |
+ (WebCore::InspectorAgent::restoreDebugger): |
+ (WebCore::InspectorAgent::restoreProfiler): |
+ (WebCore::InspectorAgent::enableProfiler): |
+ (WebCore::InspectorAgent::disableProfiler): |
+ (WebCore::InspectorAgent::showAndEnableDebugger): |
+ (WebCore::InspectorAgent::enableDebugger): |
+ (WebCore::InspectorAgent::disableDebugger): |
+ * inspector/InspectorAgent.h: |
+ * inspector/InspectorConsoleAgent.cpp: XHR failures will be logged to the console only |
+ if the front-end was opened during current browser session and XHR logging is turned on |
+ there. |
+ (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled): |
+ (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled): |
+ * inspector/InspectorDebuggerAgent.cpp: |
+ * inspector/InspectorDebuggerAgent.h: |
+ * inspector/InspectorInstrumentation.cpp: |
+ (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl): |
+ (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl): |
+ * inspector/InspectorProfilerAgent.cpp: |
+ (WebCore::InspectorProfilerAgent::InspectorProfilerAgent): |
+ (WebCore::InspectorProfilerAgent::startUserInitiatedProfiling): |
+ * inspector/InspectorSettings.cpp: Removed. |
+ * inspector/InspectorSettings.h: Removed. |
+ * inspector/InspectorState.cpp: |
+ (WebCore::InspectorState::InspectorState): |
+ * inspector/InspectorState.h: |
+ * inspector/front-end/ConsoleView.js: |
+ (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.consoleMessagesCleared): |
+ (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher): |
+ (WebInspector.ConsoleView.prototype._handleContextMenuEvent.itemAction): |
+ (WebInspector.ConsoleView.prototype._handleContextMenuEvent): |
+ * inspector/front-end/ProfilesPanel.js: |
+ (WebInspector.ProfilesPanel.prototype._toggleProfiling): |
+ * inspector/front-end/ScriptsPanel.js: |
+ (WebInspector.ScriptsPanel.prototype._toggleDebugging): |
+ * inspector/front-end/Settings.js: |
+ (WebInspector.Settings): |
+ * inspector/front-end/inspector.js: |
+ |
+2011-01-27 Pavel Podivilov <podivilov@chromium.org> |
+ |
+ Reviewed by Pavel Feldman. |
+ |
+ Web Inspector: Closure and Global variable details automatically collapsing on each step through JavaScript code. |
+ https://bugs.webkit.org/show_bug.cgi?id=53234 |
+ |
+ * inspector/front-end/ScopeChainSidebarPane.js: |
+ (WebInspector.ScopeChainSidebarPane): |
+ (WebInspector.ScopeChainSidebarPane.prototype.update): |
+ |
+2011-01-27 Alexander Pavlov <apavlov@chromium.org> |
+ |
+ Reviewed by Pavel Feldman. |
+ |
+ Web Inspector: [Elements panel] Tooltip for relative links incorrectly identifies current URL |
+ https://bugs.webkit.org/show_bug.cgi?id=53171 |
+ |
+ * inspector/front-end/inspector.js: |
+ (WebInspector.completeURL): Taught to understand partial href's that start with "?" (contain GET parameters only) |
+ |
+2011-01-27 Yury Semikhatsky <yurys@chromium.org> |
+ |
+ Reviewed by Pavel Feldman. |
+ |
+ [V8] Crash in WebCore::addMessageToConsole |
+ https://bugs.webkit.org/show_bug.cgi?id=53227 |
+ |
+ * bindings/v8/V8Proxy.cpp: check that the Frame where the error |
+ occured still has a page before getting a console object from it. |
+ (WebCore::V8Proxy::reportUnsafeAccessTo): |
+ |
+2011-01-27 Hans Wennborg <hans@chromium.org> |
+ |
+ Reviewed by Jeremy Orlow. |
+ |
+ IndexedDB: Remove IDBCallbacks::onSuccess() used for null values. |
+ https://bugs.webkit.org/show_bug.cgi?id=53178 |
+ |
+ Remove the IDBCallbacks::onSuccess() function that was used for |
+ null values, and replace such calls with calls to |
+ IDBCallBacks::onSuccess(SerializedScriptValue::nullValue()) |
+ instead. |
+ |
+ No new functionality, so no new tests. |
+ |
+ * storage/IDBCallbacks.h: |
+ * storage/IDBCursorBackendImpl.cpp: |
+ (WebCore::IDBCursorBackendImpl::updateInternal): |
+ (WebCore::IDBCursorBackendImpl::continueFunctionInternal): |
+ * storage/IDBIndexBackendImpl.cpp: |
+ (WebCore::IDBIndexBackendImpl::openCursorInternal): |
+ * storage/IDBObjectStoreBackendImpl.cpp: |
+ (WebCore::IDBObjectStoreBackendImpl::deleteInternal): |
+ (WebCore::IDBObjectStoreBackendImpl::openCursorInternal): |
+ * storage/IDBRequest.cpp: |
+ * storage/IDBRequest.h: |
+ |
+2011-01-27 Sheriff Bot <webkit.review.bot@gmail.com> |
+ |
+ Unreviewed, rolling out r76773. |
+ http://trac.webkit.org/changeset/76773 |
+ https://bugs.webkit.org/show_bug.cgi?id=53230 |
+ |
+ breaks multiple GTK media tests (Requested by philn-tp on |
+ #webkit). |
+ |
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: |
+ (WebCore::mimeTypeCache): |
+ |
+2011-01-27 Sheriff Bot <webkit.review.bot@gmail.com> |
+ |
+ Unreviewed, rolling out r76770. |
+ http://trac.webkit.org/changeset/76770 |
+ https://bugs.webkit.org/show_bug.cgi?id=53229 |
+ |
+ Some inspector tests fail (Requested by yurys on #webkit). |
+ |
+ * CMakeLists.txt: |
+ * GNUmakefile.am: |
+ * WebCore.exp.in: |
+ * WebCore.gypi: |
+ * WebCore.pro: |
+ * WebCore.vcproj/WebCore.vcproj: |
+ * WebCore.xcodeproj/project.pbxproj: |
+ * bindings/js/ScriptDebugServer.cpp: |
+ (WebCore::ScriptDebugServer::isDebuggerAlwaysEnabled): |
+ * bindings/js/ScriptDebugServer.h: |
+ * bindings/js/ScriptProfiler.cpp: |
+ (WebCore::ScriptProfiler::isProfilerAlwaysEnabled): |
+ * bindings/js/ScriptProfiler.h: |
+ * bindings/v8/ScriptDebugServer.cpp: |
+ (WebCore::ScriptDebugServer::isDebuggerAlwaysEnabled): |
+ * bindings/v8/ScriptDebugServer.h: |
+ * bindings/v8/ScriptProfiler.cpp: |
+ (WebCore::ScriptProfiler::isProfilerAlwaysEnabled): |
+ * bindings/v8/ScriptProfiler.h: |
+ * inspector/Inspector.idl: |
+ * inspector/InspectorAgent.cpp: |
+ (WebCore::InspectorAgent::InspectorAgent): |
+ (WebCore::InspectorAgent::disconnectFrontend): |
+ (WebCore::InspectorAgent::restoreDebugger): |
+ (WebCore::InspectorAgent::restoreProfiler): |
+ (WebCore::InspectorAgent::ensureSettingsLoaded): |
+ (WebCore::InspectorAgent::enableProfiler): |
+ (WebCore::InspectorAgent::disableProfiler): |
+ (WebCore::InspectorAgent::showAndEnableDebugger): |
+ (WebCore::InspectorAgent::enableDebugger): |
+ (WebCore::InspectorAgent::disableDebugger): |
+ * inspector/InspectorAgent.h: |
+ (WebCore::InspectorAgent::settings): |
+ * inspector/InspectorConsoleAgent.cpp: |
+ (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled): |
+ (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled): |
+ * inspector/InspectorDebuggerAgent.cpp: |
+ (WebCore::InspectorDebuggerAgent::isDebuggerAlwaysEnabled): |
+ * inspector/InspectorDebuggerAgent.h: |
+ * inspector/InspectorInstrumentation.cpp: |
+ (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl): |
+ (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl): |
+ * inspector/InspectorProfilerAgent.cpp: |
+ (WebCore::InspectorProfilerAgent::InspectorProfilerAgent): |
+ (WebCore::InspectorProfilerAgent::startUserInitiatedProfiling): |
+ * inspector/InspectorSettings.cpp: Added. |
+ (WebCore::InspectorSettings::InspectorSettings): |
+ (WebCore::InspectorSettings::getBoolean): |
+ (WebCore::InspectorSettings::setBoolean): |
+ (WebCore::InspectorSettings::getLong): |
+ (WebCore::InspectorSettings::setLong): |
+ (WebCore::InspectorSettings::registerBoolean): |
+ (WebCore::InspectorSettings::registerLong): |
+ * inspector/InspectorSettings.h: Copied from Source/WebCore/bindings/v8/ScriptProfiler.h. |
+ * inspector/InspectorState.cpp: |
+ (WebCore::InspectorState::InspectorState): |
+ * inspector/InspectorState.h: |
+ * inspector/front-end/ConsoleView.js: |
+ (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.monitoringXHRStateChanged): |
+ (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher): |
+ (WebInspector.ConsoleView.prototype._handleContextMenuEvent): |
+ * inspector/front-end/ProfilesPanel.js: |
+ (WebInspector.ProfilesPanel.prototype._toggleProfiling): |
+ * inspector/front-end/ScriptsPanel.js: |
+ (WebInspector.ScriptsPanel.prototype._toggleDebugging): |
+ * inspector/front-end/Settings.js: |
+ (WebInspector.Settings): |
+ * inspector/front-end/inspector.js: |
+ |
+2011-01-26 Philippe Normand <pnormand@igalia.com> |
+ |
+ Reviewed by Martin Robinson. |
+ |
+ [GTK] LayoutTests/media/audio-mpeg4-supported.html fails |
+ https://bugs.webkit.org/show_bug.cgi?id=53125 |
+ |
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: |
+ (WebCore::mimeTypeCache): Add audio/x-m4a mimetype in the cache. |
+ |
+2011-01-26 Yury Semikhatsky <yurys@chromium.org> |
+ |
+ Reviewed by Pavel Feldman. |
+ |
+ Web Inspector: store all settings related to the agents on the frontend side |
+ https://bugs.webkit.org/show_bug.cgi?id=53174 |
+ |
+ * CMakeLists.txt: |
+ * GNUmakefile.am: |
+ * WebCore.exp.in: |
+ * WebCore.gypi: |
+ * WebCore.pro: |
+ * WebCore.vcproj/WebCore.vcproj: |
+ * WebCore.xcodeproj/project.pbxproj: |
+ * inspector/Inspector.idl: |
+ * inspector/InspectorAgent.cpp: profiler and debugger enablement state is now stored |
+ on the front-end side and will be pushed to the backend when the frontend is loaded. |
+ (WebCore::InspectorAgent::InspectorAgent): |
+ (WebCore::InspectorAgent::disconnectFrontend): |
+ (WebCore::InspectorAgent::restoreDebugger): |
+ (WebCore::InspectorAgent::restoreProfiler): |
+ (WebCore::InspectorAgent::enableProfiler): |
+ (WebCore::InspectorAgent::disableProfiler): |
+ (WebCore::InspectorAgent::showAndEnableDebugger): |
+ (WebCore::InspectorAgent::enableDebugger): |
+ (WebCore::InspectorAgent::disableDebugger): |
+ * inspector/InspectorAgent.h: |
+ * inspector/InspectorConsoleAgent.cpp: XHR failures will be logged to the console only |
+ if the front-end was opened during current browser session and XHR logging is turned on |
+ there. |
+ (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled): |
+ (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled): |
+ * inspector/InspectorInstrumentation.cpp: |
+ (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl): |
+ (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl): |
+ * inspector/InspectorProfilerAgent.cpp: |
+ (WebCore::InspectorProfilerAgent::enable): |
+ (WebCore::InspectorProfilerAgent::startUserInitiatedProfiling): |
+ * inspector/InspectorProfilerAgent.h: |
+ * inspector/InspectorSettings.cpp: Removed. |
+ * inspector/InspectorSettings.h: Removed. |
+ * inspector/InspectorState.cpp: |
+ (WebCore::InspectorState::InspectorState): |
+ * inspector/InspectorState.h: |
+ * inspector/front-end/ConsoleView.js: |
+ (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.consoleMessagesCleared): |
+ (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher): |
+ (WebInspector.ConsoleView.prototype._handleContextMenuEvent.itemAction): |
+ (WebInspector.ConsoleView.prototype._handleContextMenuEvent): |
+ * inspector/front-end/ProfilesPanel.js: |
+ (WebInspector.ProfilesPanel.prototype._toggleProfiling): |
+ * inspector/front-end/ScriptsPanel.js: |
+ (WebInspector.ScriptsPanel.prototype._toggleDebugging): |
+ * inspector/front-end/Settings.js: |
+ (WebInspector.Settings): |
+ * inspector/front-end/inspector.js: |
+ |
+2011-01-27 Dan Bernstein <mitz@apple.com> |
+ |
+ Reviewed by Sam Weinig. |
+ |
+ REGRESSION (r76743): Uneven spacing in right-to-left justified text |
+ https://bugs.webkit.org/show_bug.cgi?id=53225 |
+ |
+ Fixes failure in fast/text/atsui-spacing-features.html |
+ |
+ There was an inconsistency between rendering code and font code in the interpretation of |
+ 'after expansion' and 'trailing expansion'. Changed all code to interpret these in terms of |
+ visual order rather than logical. |
+ |
+ * platform/graphics/Font.cpp: |
+ (WebCore::Font::expansionOpportunityCount): Added a text direction parameter and changed to |
+ iterate in visual order accordingly. |
+ * platform/graphics/Font.h: |
+ * platform/graphics/WidthIterator.cpp: |
+ (WebCore::WidthIterator::WidthIterator): Pass the run direction to expansionOpportunityCount(). |
+ (WebCore::WidthIterator::advance): For right-to-left runs, evaluate the trailing expansion |
+ condition with respect to the first character, which is the trailing character in visual order. |
+ * platform/graphics/mac/ComplexTextController.cpp: |
+ (WebCore::ComplexTextController::ComplexTextController): Pass the run direction to |
+ expansionOpportunityCount(). |
+ * rendering/RenderBlockLineLayout.cpp: |
+ (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Ditto. |
+ |
+2011-01-26 Adam Roben <aroben@apple.com> |
+ |
+ Don't create the Direct3D device before it's first needed |
+ |
+ We only need the device once we decide to render. There's no point in creating it before |
+ then. |
+ |
+ Reviewed by Sam Weinig. |
+ |
+ * platform/graphics/ca/win/CACFLayerTreeHost.cpp: |
+ (WebCore::CACFLayerTreeHost::setWindow): Removed the call to createRenderer() from here. |
+ We already have code to create it when we first try to draw. |
+ (WebCore::CACFLayerTreeHost::createRenderer): Flush the context after we set our layer's |
+ bounds so that the bounds will take effect the next time we render (which could be just |
+ after this function returns). |
+ |
+2011-01-26 Adam Roben <aroben@apple.com> |
+ |
+ Add assertions that CACFLayerTreeHost gains and loses an HWND only once |
+ |
+ CACFLayerTreeHost doesn't support any other use pattern. |
+ |
+ Reviewed by Sam Weinig. |
+ |
+ * platform/graphics/ca/win/CACFLayerTreeHost.cpp: |
+ (WebCore::CACFLayerTreeHost::CACFLayerTreeHost): Initialize new member. |
+ (WebCore::CACFLayerTreeHost::setWindow): Assert that we transition from not having a window, |
+ to having a window, to not having a window just once over the lifetime of this object. |
+ |
+ * platform/graphics/ca/win/CACFLayerTreeHost.h: Added m_state. |
+ |
+2011-01-26 Adam Roben <aroben@apple.com> |
+ |
+ Notify layers that their animations have started when we flush the context, not when we |
+ render |
+ |
+ r76372 separated context flushing from rendering, but this bit of code got left behind. |
+ |
+ Reviewed by Sam Weinig. |
+ |
+ * platform/graphics/ca/win/CACFLayerTreeHost.cpp: |
+ (WebCore::CACFLayerTreeHost::render): Moved code to notify the layers from here to |
+ notifyAnimationsStarted. |
+ (WebCore::CACFLayerTreeHost::flushPendingLayerChangesNow): Added a call to |
+ notifyAnimationsStarted after we flush the context. |
+ (WebCore::CACFLayerTreeHost::notifyAnimationsStarted): Added. Code came from render. Changed |
+ to call PlatformCALayer::animationStarted rather than calling through to the client |
+ directly. |
+ |
+ * platform/graphics/ca/win/CACFLayerTreeHost.h: Added notifyAniamtionsStarted. |
+ |
+2011-01-26 Adam Roben <aroben@apple.com> |
+ |
+ Small cleanup in MediaPlayerPrivateFullscreenWindow |
+ |
+ Reviewed by Sam Weinig. |
+ |
+ * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp: |
+ (WebCore::MediaPlayerPrivateFullscreenWindow::~MediaPlayerPrivateFullscreenWindow): Moved |
+ code here from close(), since this was the only place that called it after the following |
+ change to createWindow. |
+ (WebCore::MediaPlayerPrivateFullscreenWindow::createWindow): Replaced code that handled the |
+ case where we had already created the window with an assertion that we have not already done |
+ so. Our single caller (FullscreenVideoController) did not require this behavior. |
+ |
+ * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h: Removed layerView. |
+ |
+2011-01-26 Sam Weinig <sam@webkit.org> |
+ |
+ Reviewed by Adam Roben. |
+ |
+ Move ScrollView scroll wheel code to ScrollAnimator. |
+ |
+ * platform/ScrollAnimator.cpp: |
+ (WebCore::ScrollAnimator::handleWheelEvent): |
+ * platform/ScrollAnimator.h: |
+ Moved implementation of handleWheelEvent from ScrollView::wheelEvent. |
+ |
+ * platform/ScrollView.cpp: |
+ (WebCore::ScrollView::wheelEvent): |
+ Call down to the ScrollableArea. |
+ |
+ * platform/ScrollableArea.cpp: |
+ (WebCore::ScrollableArea::handleWheelEvent): |
+ Call down to the ScrollAnimator. |
+ |
+ * platform/ScrollableArea.h: |
+ (WebCore::ScrollableArea::scrollPosition): |
+ (WebCore::ScrollableArea::minimumScrollPosition): |
+ (WebCore::ScrollableArea::maximumScrollPosition): |
+ (WebCore::ScrollableArea::visibleContentRect): |
+ (WebCore::ScrollableArea::visibleHeight): |
+ (WebCore::ScrollableArea::visibleWidth): |
+ Add functions needed to implement wheel event in the animator. |
+ |
+2011-01-26 David Kilzer <ddkilzer@apple.com> |
+ |
+ <http://webkit.org/b/53192> Add experimental support for HTTP pipelining in CFNetwork |
+ <rdar://problem/8821760> |
+ |
+ Reviewed by Antti Koivisto. |
+ |
+ This adds support for HTTP pipelining in CFNetwork, but does not |
+ enable it. To enable it post-SnowLeopard, use this command: |
+ |
+ defaults write BUNDLE.ID WebKitEnableHTTPPipelining -bool YES |
+ |
+ Once enabled, it is possible to force the same load priority |
+ (high) to be sent to CFNetwork to allow WebCore to handle the |
+ scheduling: |
+ |
+ defaults write BUNDLE.ID WebKitForceHTTPPipeliningPriorityHigh -bool YES |
+ |
+ * WebCore.exp.in: Export _wkGetHTTPPipeliningPriority and |
+ _wkSetHTTPPipeliningPriority. |
+ |
+ * loader/DocumentThreadableLoader.cpp: |
+ (WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequestWithPreflight): |
+ Copy the priority to preflightRequest. |
+ |
+ * loader/ResourceLoadScheduler.cpp: |
+ (WebCore::ResourceLoadScheduler::scheduleLoad): Refactored code |
+ at the end of the method to use an early return. |
+ |
+ * loader/cache/CachedResourceRequest.cpp: |
+ (WebCore::CachedResourceRequest::load): Set the priority on the |
+ ResourceRequest object based on the priority of the |
+ CachedResourceRequest before calling |
+ ResourceLoadScheduler::scheduleSubresourceLoad(). |
+ |
+ * loader/icon/IconLoader.cpp: |
+ (WebCore::IconLoader::startLoading): Create a ResourceRequest |
+ object and set its priority to ResourceLoadPriorityLow before |
+ passing it to ResourceLoadScheduler::scheduleSubresourceLoad(). |
+ |
+ * platform/mac/WebCoreSystemInterface.h: |
+ (wkGetHTTPPipeliningPriority): Added. |
+ (wkSetHTTPPipeliningPriority): Added. |
+ * platform/mac/WebCoreSystemInterface.mm: |
+ (wkGetHTTPPipeliningPriority): Added. |
+ (wkSetHTTPPipeliningPriority): Added. |
+ |
+ * platform/network/ResourceRequestBase.cpp: |
+ (WebCore::ResourceRequestBase::adopt): Set m_priority when |
+ adopting a CrossThreadResourceRequestData. |
+ (WebCore::ResourceRequestBase::copyData): Set m_priority when |
+ creating a CrossThreadResourceRequestData. |
+ (WebCore::ResourceRequestBase::priority): Added. |
+ (WebCore::ResourceRequestBase::setPriority): Added. |
+ (WebCore::equalIgnoringHeaderFields): Priorities must match when |
+ comparing two ResourceRequest objects. |
+ |
+ * platform/network/ResourceRequestBase.h: |
+ (WebCore::ResourceRequestBase::ResourceRequestBase): Set default |
+ priority of new objects to ResourceLoadPriorityLow. |
+ (WebCore::ResourceRequestBase::priority): Added declaration. |
+ (WebCore::ResourceRequestBase::setPriority): Added declaration. |
+ (WebCore::isHTTPPipeliningEnabled): Added. |
+ (WebCore::shouldUseHTTPPipeliningPriority): Added. |
+ |
+ * platform/network/cf/ResourceRequestCFNet.cpp: Updated so that |
+ Mac OS X and Windows share code. |
+ (WebCore::initializeMaximumHTTPConnectionCountPerHost): Always |
+ set the HTTP connection count per host, but return an |
+ 'unlimited' value when using HTTP pipelining. This method used |
+ to be defined in ResourceRequestMac.mm for Mac OS X. |
+ (WebCore::readBooleanPreference): Added. Helper method for |
+ reading boolean user defaults. |
+ (WebCore::isHTTPPipeliningEnabled): Returns value of user |
+ default key WebKitEnableHTTPPipelining, or false if not set. |
+ (WebCore::shouldUseHTTPPipeliningPriority): Returns value of |
+ user default key WebKitForceHTTPPipeliningPriorityHigh, or false |
+ if not set. |
+ * platform/network/cf/ResourceRequestCFNet.h: Updated so that |
+ Mac OS X and Windows share code. Fixed indentation. |
+ (WebCore::mapHTTPPipeliningPriorityToResourceLoadPriority): Added. |
+ (WebCore::mapResourceLoadPriorityToHTTPPipeliningPriority): Added. |
+ |
+ * platform/network/mac/ResourceRequestMac.mm: |
+ (WebCore::ResourceRequest::doUpdatePlatformRequest): Update |
+ HTTP pipelining priority on NSMutableFURLRequest object. |
+ (WebCore::ResourceRequest::doUpdateResourceRequest): Update |
+ m_priority from the NSURLRequest object. |
+ (WebCore::initializeMaximumHTTPConnectionCountPerHost): Removed. |
+ Code is now shared with Windows in ResourceRequestCFNet.cpp. |
+ |
+2011-01-26 Beth Dakin <bdakin@apple.com> |
+ |
+ Reviewed by Darin Adler. |
+ |
+ Fix for <rdar://problem/8895140> Adopt WKScrollbar metrics |
+ when using WKScrollbars. |
+ |
+ New WebKitSystemInterface Functionality. |
+ * WebCore.exp.in: |
+ * platform/mac/WebCoreSystemInterface.h: |
+ * platform/mac/WebCoreSystemInterface.mm: |
+ |
+ Some of the terrible static arrays are now only needed in the |
+ old non-WK code, so they are if-def'd now. |
+ * platform/mac/ScrollbarThemeMac.mm: |
+ |
+ Just patching this function in a better way than I did |
+ before. |
+ (WebCore::updateArrowPlacement): |
+ |
+ Call into WK for the right values. |
+ (WebCore::ScrollbarThemeMac::scrollbarThickness): |
+ (WebCore::ScrollbarThemeMac::hasThumb): |
+ (WebCore::ScrollbarThemeMac::minimumThumbLength): |
+ |
+ Return false if there are no buttons. |
+ (WebCore::ScrollbarThemeMac::hasButtons): |
+ |
+ Return an empty IntRect if there are not buttons. |
+ (WebCore::buttonRepaintRect): |
+ |
+2011-01-26 Sam Weinig <sam@webkit.org> |
+ |
+ Reviewed by Maciej Stachowiak. |
+ |
+ Add events to represent the start/end of a gesture scroll |
+ https://bugs.webkit.org/show_bug.cgi?id=53215 |
+ |
+ * WebCore.exp.in: |
+ Add new file. |
+ |
+ * WebCore.xcodeproj/project.pbxproj: |
+ Add new file. |
+ |
+ * page/EventHandler.cpp: |
+ (WebCore::EventHandler::handleGestureEvent): |
+ * page/EventHandler.h: |
+ Add entry point for handling gesture events. |
+ |
+ * platform/PlatformGestureEvent.h: Added. |
+ (WebCore::PlatformGestureEvent::PlatformGestureEvent): |
+ (WebCore::PlatformGestureEvent::type): |
+ (WebCore::PlatformGestureEvent::position): |
+ (WebCore::PlatformGestureEvent::globalPosition): |
+ (WebCore::PlatformGestureEvent::timestamp): |
+ Add platform agnostic representation of a gesture event. |
+ |
+2011-01-26 Dan Bernstein <mitz@apple.com> |
+ |
+ Reviewed by Dave Hyatt. |
+ |
+ <rdar://problem/8446709> Allow inter-ideograph justification for CJK |
+ https://bugs.webkit.org/show_bug.cgi?id=53184 |
+ |
+ Tests: fast/text/justify-ideograph-complex.html |
+ fast/text/justify-ideograph-simple.html |
+ fast/text/justify-ideograph-vertical.html |
+ |
+ * html/canvas/CanvasRenderingContext2D.cpp: |
+ (WebCore::CanvasRenderingContext2D::drawTextInternal): Corrected the type of the third parameter |
+ passed to the TextRun constructor and added the trailingExpansionBehavior parameter. |
+ * platform/graphics/Font.cpp: |
+ (WebCore::Font::expansionOpportunityCount): Added. Returns the number of expansion opportunities |
+ for text justification. On entry, isAfterExpansion says whether an expansion opportunity exists |
+ before the first character. On return, isAfterExpansion says whether an expansion opportunity |
+ exists after the last character. |
+ * platform/graphics/Font.h: |
+ * platform/graphics/GlyphBuffer.h: |
+ (WebCore::GlyphBuffer::expandLastAdvance): Added. |
+ * platform/graphics/TextRun.h: |
+ (WebCore::TextRun::TextRun): Added a TrailingExpansionBehavior parameter to the constructors. |
+ Renamed padding to expansion. |
+ (WebCore::TextRun::expansion): Renamed padding() to this. |
+ (WebCore::TextRun::allowsTrailingExpansion): Added this accessor. |
+ * platform/graphics/WidthIterator.cpp: |
+ (WebCore::WidthIterator::WidthIterator): Initialize m_isAfterExpansion. Use Font::expansionOpportunityCount() |
+ and adjust the count if it includes a trailing expansion opportunity but the run disallows trailing |
+ expansion. |
+ (WebCore::WidthIterator::advance): Apply expansion before and after CJK ideographs. |
+ (WebCore::WidthIterator::advanceOneCharacter): Changed to not clear the GlyphBuffer so that advance() |
+ can expand the last advance if it is followed by a CJK ideograph. |
+ * platform/graphics/WidthIterator.h: Renamed m_padding to m_expansion and m_padPerSpace |
+ to m_expansionPerOpportunity. |
+ * platform/graphics/chromium/FontChromiumWin.cpp: |
+ (WebCore::Font::canExpandAroundIdeographsInComplexText): Added. |
+ * platform/graphics/chromium/FontLinux.cpp: |
+ (WebCore::Font::canExpandAroundIdeographsInComplexText): Added. |
+ * platform/graphics/efl/FontEfl.cpp: |
+ (WebCore::Font::canExpandAroundIdeographsInComplexText): Added. |
+ * platform/graphics/gtk/FontGtk.cpp: |
+ (WebCore::Font::canExpandAroundIdeographsInComplexText): Added. |
+ * platform/graphics/haiku/FontHaiku.cpp: |
+ (WebCore::Font::canExpandAroundIdeographsInComplexText): Added. |
+ * platform/graphics/mac/ComplexTextController.cpp: |
+ (WebCore::ComplexTextController::ComplexTextController): Initialize m_isAfterExpansion. Use |
+ Font::expansionOpportunityCount() and adjust the count if it includes a trailing expansion |
+ opportunity but the run disallows trailing expansion. |
+ (WebCore::ComplexTextController::adjustGlyphsAndAdvances): Moved the definition and initialization |
+ of hasExtraSpacing outside the loop. Apply expansion before and after CJK ideographs. |
+ * platform/graphics/mac/ComplexTextController.h: Renamed m_padding to m_expansion and m_padPerSpace |
+ to m_expansionPerOpportunity. |
+ * platform/graphics/mac/FontMac.mm: |
+ (WebCore::Font::canExpandAroundIdeographsInComplexText): Added. |
+ * platform/graphics/qt/FontQt.cpp: |
+ (WebCore::Font::canExpandAroundIdeographsInComplexText): Added. |
+ * platform/graphics/win/FontWin.cpp: |
+ (WebCore::Font::canExpandAroundIdeographsInComplexText): Added. |
+ * platform/graphics/win/UniscribeController.cpp: |
+ (WebCore::UniscribeController::UniscribeController): Updated for rename. |
+ * platform/graphics/wince/FontWinCE.cpp: |
+ (WebCore::Font::canExpandAroundIdeographsInComplexText): Added. |
+ * platform/graphics/wx/FontWx.cpp: |
+ (WebCore::Font::canExpandAroundIdeographsInComplexText): Added. |
+ * rendering/EllipsisBox.cpp: |
+ (WebCore::EllipsisBox::paint): Pass a TrailingExpansionBehavior to the TextRun constructor. |
+ (WebCore::EllipsisBox::selectionRect): Ditto. |
+ (WebCore::EllipsisBox::paintSelection): Ditto. |
+ * rendering/InlineBox.h: |
+ (WebCore::InlineBox::InlineBox): Renamed m_toAdd to m_expansion. |
+ (WebCore::InlineBox::expansion): Renamed toAdd() to this. |
+ * rendering/InlineTextBox.cpp: |
+ (WebCore::InlineTextBox::selectionRect): Pass a TrailingExpansionBehavior to the TextRun constructor. |
+ (WebCore::InlineTextBox::paint): Ditto. |
+ (WebCore::InlineTextBox::paintSelection): Ditto. |
+ (WebCore::InlineTextBox::paintCompositionBackground): Ditto. |
+ (WebCore::InlineTextBox::paintSpellingOrGrammarMarker): Ditto. |
+ (WebCore::InlineTextBox::paintTextMatchMarker): Ditto. |
+ (WebCore::InlineTextBox::computeRectForReplacementMarker): Ditto. |
+ (WebCore::InlineTextBox::offsetForPosition): Ditto. |
+ (WebCore::InlineTextBox::positionForOffset): Ditto. |
+ * rendering/InlineTextBox.h: |
+ (WebCore::InlineTextBox::setExpansion): Renamed setSpaceAdd() to this. |
+ (WebCore::InlineTextBox::trailingExpansionBehavior): Added. Trailing expansion is allowed if this |
+ is not the last leaf box on the line. |
+ * rendering/RenderBlockLineLayout.cpp: |
+ (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Keep expansion opportunity counts |
+ in a vector instead of computing them twice. Discard the trailing expansion opportunity in the |
+ last text box. |
+ * rendering/RenderFileUploadControl.cpp: |
+ (WebCore::RenderFileUploadControl::paintObject): Pass a TrailingExpansionBehavior to the TextRun constructor. |
+ (WebCore::RenderFileUploadControl::computePreferredLogicalWidths): Ditto. |
+ * rendering/RenderListBox.cpp: |
+ (WebCore::RenderListBox::updateFromElement): Ditto. |
+ (WebCore::RenderListBox::paintItemForeground): Ditto. Also corrected the type of the second parameter. |
+ * rendering/RenderTextControl.cpp: |
+ (WebCore::RenderTextControl::getAvgCharWidth): Ditto. |
+ (WebCore::RenderTextControl::paintPlaceholder): Ditto. |
+ * rendering/svg/SVGInlineTextBox.cpp: |
+ (WebCore::SVGInlineTextBox::constructTextRun): Ditto. |
+ |
+2011-01-26 Andy Estes <aestes@apple.com> |
+ |
+ Rubber-stamped by Darin Adler. |
+ |
+ Inline HTMLObjectElement::hasValidClassId(). |
+ |
+ * html/HTMLObjectElement.cpp: |
+ (WebCore::HTMLObjectElement::hasValidClassId): |
+ |
+2011-01-26 Evan Martin <evan@chromium.org> |
+ |
+ Reviewed by Tony Chang. |
+ |
+ [chromium] crash on getBoundingClientRect in complex text |
+ https://bugs.webkit.org/show_bug.cgi?id=53199 |
+ |
+ Use the correct array bound; we want the number of characters processed by |
+ the shaper, not the longest continuous script run length. |
+ |
+ Test: platform/chromium-linux/fast/text/international/complex-text-rectangle.html |
+ |
+ * platform/graphics/chromium/ComplexTextControllerLinux.cpp: |
+ (WebCore::ComplexTextController::nextScriptRun): |
+ * platform/graphics/chromium/ComplexTextControllerLinux.h: |
+ (WebCore::ComplexTextController::numCodePoints): |
+ |
+2011-01-26 Emil A Eklund <eae@chromium.org> |
+ |
+ Reviewed by Alexey Proskuryakov. |
+ |
+ Remove cached document reference from CSSStyleSheet and XSLStyleSheet. |
+ https://bugs.webkit.org/show_bug.cgi?id=52084 |
+ |
+ Test: fast/dom/css-delete-doc.html |
+ |
+ * css/CSSMediaRule.cpp: |
+ (WebCore::CSSMediaRule::insertRule): |
+ (WebCore::CSSMediaRule::deleteRule): |
+ * css/CSSStyleSheet.cpp: |
+ (WebCore::CSSStyleSheet::CSSStyleSheet): |
+ (WebCore::CSSStyleSheet::document): |
+ * css/CSSStyleSheet.h: |
+ * xml/XSLStyleSheet.h: |
+ (WebCore::XSLStyleSheet::parentStyleSheet): |
+ * xml/XSLStyleSheetLibxslt.cpp: |
+ (WebCore::XSLStyleSheet::XSLStyleSheet): |
+ (WebCore::XSLStyleSheet::cachedResourceLoader): |
+ (WebCore::XSLStyleSheet::setParentStyleSheet): |
+ (WebCore::XSLStyleSheet::ownerDocument): |
+ * xml/XSLStyleSheetQt.cpp: |
+ (WebCore::XSLStyleSheet::XSLStyleSheet): |
+ (WebCore::XSLStyleSheet::cachedResourceLoader): |
+ (WebCore::XSLStyleSheet::ownerDocument): |
+ |
+2011-01-25 Dimitri Glazkov <dglazkov@chromium.org> |
+ |
+ Reviewed by Kent Tamura. |
+ |
+ Reduce ref-count churn in shadowPseudoId. |
+ https://bugs.webkit.org/show_bug.cgi?id=53136 |
+ |
+ Refactoring, so no new tests. |
+ |
+ * dom/Element.h: |
+ (WebCore::Element::shadowPseudoId): Changed signature to use const AtomicString& |
+ * html/ValidationMessage.cpp: |
+ (WebCore::ElementWithPseudoId::shadowPseudoId): Ditto. |
+ * html/shadow/SliderThumbElement.cpp: |
+ (WebCore::SliderThumbElement::shadowPseudoId): Ditto, plus moved from the header file. |
+ * html/shadow/SliderThumbElement.h: Ditto. |
+ * rendering/MediaControlElements.cpp: |
+ (WebCore::MediaControlMuteButtonElement::shadowPseudoId): Ditto. |
+ (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId): Ditto. |
+ (WebCore::MediaControlPlayButtonElement::shadowPseudoId): Ditto. |
+ (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId): Ditto. |
+ (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId): Ditto. |
+ (WebCore::MediaControlRewindButtonElement::shadowPseudoId): Ditto. |
+ (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId): Ditto. |
+ (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId): Ditto. |
+ (WebCore::MediaControlTimelineElement::shadowPseudoId): Ditto. |
+ (WebCore::MediaControlVolumeSliderElement::shadowPseudoId): Ditto. |
+ (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId): Ditto. |
+ * rendering/MediaControlElements.h: Ditto. |
+ |
+2011-01-26 Dave Hyatt <hyatt@apple.com> |
+ |
+ Reviewed by Dan Bernstein. |
+ |
+ https://bugs.webkit.org/show_bug.cgi?id=46421, make multi-column layout work with vertical text. |
+ |
+ Added new tests in fast/multicol/vertical-lr and fast/multicol/vertical-rl. |
+ |
+ * css/html.css: |
+ Update p, blockquote and h1-h6 to respect directionality so that column layout tests that use those |
+ elements work properly. |
+ |
+ * rendering/InlineFlowBox.cpp: |
+ (WebCore::InlineFlowBox::placeBoxesInBlockDirection): |
+ Fix a flipping bug with the computation of lineTopIncludingMargins where it could be incorrectly shrunk |
+ in some cases (causing lines to all stack on top of one another). |
+ |
+ * rendering/InlineTextBox.h: |
+ (WebCore::InlineTextBox::calculateBoundaries): |
+ Fix calculateBoundaries to be physical rather than logical. |
+ |
+ * rendering/LayoutState.cpp: |
+ (WebCore::LayoutState::addForcedColumnBreak): |
+ * rendering/LayoutState.h: |
+ Rename childY to childLogicalOffset. |
+ |
+ * rendering/RenderBlock.cpp: |
+ (WebCore::RenderBlock::layoutBlock): |
+ (WebCore::RenderBlock::addOverflowFromChildren): |
+ (WebCore::RenderBlock::addOverflowFromFloats): |
+ (WebCore::RenderBlock::collapseMargins): |
+ (WebCore::RenderBlock::estimateLogicalTopPosition): |
+ (WebCore::RenderBlock::layoutBlockChild): |
+ (WebCore::RenderBlock::markForPaginationRelayoutIfNeeded): |
+ (WebCore::RenderBlock::paintColumnRules): |
+ (WebCore::RenderBlock::paintColumnContents): |
+ (WebCore::RenderBlock::paintFloats): |
+ (WebCore::RenderBlock::selectionGaps): |
+ (WebCore::RenderBlock::removeFloatingObjectsBelow): |
+ (WebCore::RenderBlock::addOverhangingFloats): |
+ (WebCore::RenderBlock::hitTestFloats): |
+ (WebCore::RenderBlock::hitTestColumns): |
+ (WebCore::RenderBlock::calcColumnWidth): |
+ (WebCore::RenderBlock::desiredColumnWidth): |
+ (WebCore::RenderBlock::columnRectAt): |
+ (WebCore::RenderBlock::layoutColumns): |
+ (WebCore::RenderBlock::adjustPointToColumnContents): |
+ (WebCore::RenderBlock::adjustRectForColumns): |
+ (WebCore::RenderBlock::flipForWritingModeIncludingColumns): |
+ (WebCore::RenderBlock::adjustForColumns): |
+ (WebCore::RenderBlock::adjustForBorderFit): |
+ (WebCore::RenderBlock::nextPageLogicalTop): |
+ (WebCore::RenderBlock::applyBeforeBreak): |
+ (WebCore::RenderBlock::applyAfterBreak): |
+ (WebCore::RenderBlock::adjustForUnsplittableChild): |
+ (WebCore::RenderBlock::adjustLinePositionForPagination): |
+ * rendering/RenderBlock.h: |
+ (WebCore::RenderBlock::logicalRightOffsetForContent): |
+ (WebCore::RenderBlock::logicalLeftOffsetForContent): |
+ (WebCore::RenderBlock::leftForFloatIncludingMargin): |
+ (WebCore::RenderBlock::topForFloatIncludingMargin): |
+ * rendering/RenderBlockLineLayout.cpp: |
+ (WebCore::RenderBlock::layoutInlineChildren): |
+ (WebCore::RenderBlock::determineStartPosition): |
+ Reworking of all the RenderBlock column functions to support flipping and vertical modes. |
+ |
+ * rendering/RenderBox.cpp: |
+ (WebCore::RenderBox::offsetFromContainer): |
+ (WebCore::RenderBox::flipForWritingModeIncludingColumns): |
+ Patch offsetFromContainer to be aware of flipped block writing modes when dealing with column layouts. |
+ |
+ * rendering/RenderBox.h: |
+ (WebCore::RenderBox::clientLogicalBottom): |
+ Fix a bug in clientLogicalBottom where it didn't add in the right border/padding. |
+ |
+ * rendering/RenderFlexibleBox.cpp: |
+ (WebCore::RenderFlexibleBox::layoutBlock): |
+ Better terminology for pagination. |
+ |
+ * rendering/RenderInline.cpp: |
+ (WebCore::RenderInline::offsetFromContainer): |
+ (WebCore::RenderInline::mapLocalToContainer): |
+ * rendering/RenderLayer.cpp: |
+ (WebCore::RenderLayer::paintChildLayerIntoColumns): |
+ (WebCore::RenderLayer::hitTestChildLayerColumns): |
+ (WebCore::RenderLayer::localBoundingBox): |
+ (WebCore::RenderLayer::boundingBox): |
+ Patch painting in RenderLayers to be vertical-text-aware. |
+ |
+ * rendering/RenderObject.cpp: |
+ (WebCore::RenderObject::mapLocalToContainer): |
+ Add code to be flipped block-aware with columns. |
+ |
+ * rendering/RenderTable.cpp: |
+ (WebCore::RenderTable::layout): |
+ * rendering/RenderTableRow.cpp: |
+ (WebCore::RenderTableRow::layout): |
+ * rendering/RenderTableSection.cpp: |
+ (WebCore::RenderTableSection::layoutRows): |
+ Fix pagination to use better terminology. |
+ |
+ * rendering/RenderText.cpp: |
+ (WebCore::RenderText::absoluteQuads): |
+ (WebCore::RenderText::absoluteQuadsForRange): |
+ Fix a bug where vertical text wasn't taken into account. |
+ |
+2011-01-26 Dimitri Glazkov <dglazkov@chromium.org> |
+ |
+ Unreviewed, rolling out r76719. |
+ http://trac.webkit.org/changeset/76719 |
+ https://bugs.webkit.org/show_bug.cgi?id=53122 |
+ |
+ Broke a bunch of media tests in Chromium/Qt/GTK. |
+ |
+2011-01-26 Tony Chang <tony@chromium.org> |
+ |
+ Reviewed by Ryosuke Niwa. |
+ |
+ [gtk] strip NUL characters when copying text/html on GTK+ |
+ https://bugs.webkit.org/show_bug.cgi?id=52508 |
+ |
+ Putting NUL characters in the text/html clipboard doesn't work in |
+ WebKit GTK+ (the pasted value is truncated at the NUL). Since we're |
+ already stripping this character for plain text (for Windows), strip |
+ it in text/html too. |
+ |
+ * editing/MarkupAccumulator.h: mark function as virtual |
+ * editing/markup.cpp: |
+ (WebCore::StyledMarkupAccumulator::appendString): |
+ (WebCore::StyledMarkupAccumulator::takeResults): strip nulls |
+ |
+2011-01-26 Mario Sanchez Prada <msanchez@igalia.com> |
+ |
+ Reviewed by Martin Robinson. |
+ |
+ [GTK] Reliable crash with getTextAtOffset() |
+ https://bugs.webkit.org/show_bug.cgi?id=53131 |
+ |
+ Properly calculate length in bytes for a UTF8 substring. |
+ |
+ * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: |
+ (utf8Substr): Use character instead of bytes as units to |
+ calculate the length in bytes for the UTF8 string. |
+ |
+2011-01-25 Dimitri Glazkov <dglazkov@chromium.org> |
+ |
+ Reviewed by Kent Tamura. |
+ |
+ Change HTMLInputElement-derived parts of media element shadow DOM to use shadowPseudoId. |
+ https://bugs.webkit.org/show_bug.cgi?id=53122 |
+ |
+ This is the first step in converting HTMLMediaElement to the new shadow DOM. |
+ |
+ Should not regress any existing tests. No observable change in behavior. |
+ |
+ * css/CSSSelector.cpp: |
+ (WebCore::CSSSelector::pseudoId): Removed now-unnecessary hard-coded pseudo-element selectors. |
+ (WebCore::nameToPseudoTypeMap): Ditto. |
+ (WebCore::CSSSelector::extractPseudoType): Ditto. |
+ * css/CSSSelector.h: Ditto. |
+ * css/mediaControls.css: Added proper initial values, now that elements use the proper selector pipeline. |
+ * rendering/MediaControlElements.cpp: |
+ (WebCore::MediaControlInputElement::MediaControlInputElement): Removed the switch statement, |
+ which is now replaced with virtual shadowPseudoId on each corresponding class. |
+ (WebCore::MediaControlInputElement::styleForElement): Changed to use element pipeline. |
+ (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement): Changed to set |
+ display type in constructor. |
+ (WebCore::MediaControlMuteButtonElement::create): Changed to not take PseudoId as |
+ constructor argument. |
+ (WebCore::MediaControlMuteButtonElement::shadowPseudoId): Added. |
+ (WebCore::MediaControlVolumeSliderMuteButtonElement::MediaControlVolumeSliderMuteButtonElement): Added |
+ to disambiguate from the MediaControlMuteButtonElement. |
+ (WebCore::MediaControlVolumeSliderMuteButtonElement::create): Added. |
+ (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId): Added. |
+ (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement): Changed to not take PseudoId as |
+ constructor argument. |
+ (WebCore::MediaControlPlayButtonElement::shadowPseudoId): Added. |
+ (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement): Changed to not take PseudoId as |
+ constructor argument. |
+ (WebCore::MediaControlSeekForwardButtonElement::MediaControlSeekForwardButtonElement): Added. |
+ (WebCore::MediaControlSeekForwardButtonElement::create): Added. |
+ (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId): Added. |
+ (WebCore::MediaControlSeekBackButtonElement::MediaControlSeekBackButtonElement): Added. |
+ (WebCore::MediaControlSeekBackButtonElement::create): Added. |
+ (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId): Added. |
+ (WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement): Added. |
+ (WebCore::MediaControlRewindButtonElement::shadowPseudoId): Added. |
+ (WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement): Changed to not take PseudoId as |
+ constructor argument. |
+ (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId): Added. |
+ (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement): Changed to not take PseudoId as |
+ constructor argument. |
+ (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId): Added. |
+ (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Changed to not take PseudoId as |
+ constructor argument. |
+ (WebCore::MediaControlTimelineElement::shadowPseudoId): Added. |
+ (WebCore::MediaControlVolumeSliderElement::MediaControlVolumeSliderElement): Changed to not take PseudoId as |
+ constructor argument. |
+ (WebCore::MediaControlVolumeSliderElement::shadowPseudoId): Added. |
+ (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): Changed to not take PseudoId as |
+ constructor argument. |
+ (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId): Added. |
+ * rendering/MediaControlElements.h: |
+ (WebCore::MediaControlSeekForwardButtonElement::isForwardButton): Added. |
+ (WebCore::MediaControlSeekBackButtonElement::isForwardButton): Added. |
+ * rendering/RenderMedia.cpp: |
+ (WebCore::RenderMedia::createMuteButton): Changed to use new constructor. |
+ (WebCore::RenderMedia::createSeekBackButton): Ditto. |
+ (WebCore::RenderMedia::createSeekForwardButton): Ditto. |
+ (WebCore::RenderMedia::createVolumeSliderMuteButton): Ditto. |
+ * rendering/style/RenderStyleConstants.h: Removed constants that are no longer used. |
+ |
+2011-01-26 Kenneth Russell <kbr@google.com> |
+ |
+ Reviewed by James Robinson. |
+ |
+ Fix multisampling support in DrawingBuffer |
+ https://bugs.webkit.org/show_bug.cgi?id=53154 |
+ |
+ In DrawingBuffer's multisampling code path, fixed enum usage and a |
+ bug where it would incorrectly redefine the depth and stencil |
+ buffers. Hooked up multisampling code path in Chromium port. |
+ |
+ Tested manually with some accelerated 2D canvas content. |
+ Multisampling isn't being switched on for the accelerated 2D |
+ canvas at the current time because it will increase fill rate |
+ requirements and cause a large number of rebaselines. |
+ |
+ * platform/graphics/Extensions3D.h: |
+ * platform/graphics/chromium/DrawingBufferChromium.cpp: |
+ (WebCore::DrawingBuffer::publishToPlatformLayer): |
+ * platform/graphics/chromium/Extensions3DChromium.h: |
+ * platform/graphics/gpu/DrawingBuffer.cpp: |
+ (WebCore::DrawingBuffer::create): |
+ (WebCore::DrawingBuffer::reset): |
+ * platform/graphics/opengl/Extensions3DOpenGL.cpp: |
+ (WebCore::Extensions3DOpenGL::supports): |
+ |
+2011-01-26 Tony Chang <tony@chromium.org> |
+ |
+ Unreviewed. |
+ |
+ [chromium] revert r68310 because of race conditions detected by tsans |
+ https://bugs.webkit.org/show_bug.cgi?id=53185 |
+ |
+ Causes stability problems for Chromium, http://crbug.com/70589 |
+ |
+ * platform/sql/chromium/SQLiteFileSystemChromiumPosix.cpp: |
+ (WebCore::SQLiteFileSystem::registerSQLiteVFS): |
+ |
+2011-01-26 Justin Schuh <jschuh@chromium.org> |
+ |
+ Reviewed by Adam Barth. |
+ |
+ Make fireEventsAndUpdateStyle use stack local vectors. |
+ https://bugs.webkit.org/show_bug.cgi?id=46760 |
+ |
+ Test: animations/animation-add-events-in-handler.html |
+ |
+ * page/animation/AnimationController.cpp: |
+ (WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle): |
+ |
+2011-01-26 Nate Chapin <japhet@chromium.org> |
+ |
+ Reviewed by Adam Barth. |
+ |
+ Remove m_URL from FrameLoader and depend on Document::url() |
+ instead. FrameLoader::url() will be removed in a followup patch. |
+ https://bugs.webkit.org/show_bug.cgi?id=41165 |
+ |
+ Refactor only, no new tests. |
+ |
+ * WebCore.exp.in: |
+ * dom/Document.cpp: |
+ (WebCore::Document::Document): |
+ (WebCore::Document::updateURLForPushOrReplaceState): |
+ * loader/DocumentWriter.cpp: |
+ (WebCore::DocumentWriter::begin): |
+ * loader/FrameLoader.cpp: |
+ (WebCore::FrameLoader::iconURL): |
+ (WebCore::FrameLoader::didOpenURL): |
+ (WebCore::FrameLoader::didExplicitOpen): |
+ (WebCore::FrameLoader::receivedFirstData): |
+ (WebCore::FrameLoader::url): |
+ (WebCore::FrameLoader::setOutgoingReferrer): |
+ (WebCore::FrameLoader::startIconLoader): |
+ (WebCore::FrameLoader::commitIconURLToIconDatabase): |
+ (WebCore::FrameLoader::finishedParsing): |
+ (WebCore::FrameLoader::checkIfDisplayInsecureContent): |
+ (WebCore::FrameLoader::checkIfRunInsecureContent): |
+ (WebCore::FrameLoader::updateFirstPartyForCookies): |
+ (WebCore::FrameLoader::loadInSameDocument): |
+ (WebCore::FrameLoader::commitProvisionalLoad): |
+ (WebCore::FrameLoader::open): |
+ (WebCore::FrameLoader::shouldScrollToAnchor): |
+ * loader/FrameLoader.h: Rename setURL() to setOutgoingReferrer(). |
+ |
+2011-01-25 Brian Weinstein <bweinstein@apple.com> |
+ |
+ Reviewed by Antti Koivisto. |
+ |
+ Crashes loading pages when cancelling subresource loads through WebKit |
+ https://bugs.webkit.org/show_bug.cgi?id=53123 |
+ <rdar://problem/8914361> |
+ |
+ Fix a crash that happened when cancelling subresource loads through WebKit. |
+ |
+ When a load is cancelled synchronously (via the WebKit client), CachedResourceLoader::requestResource |
+ can be called recursively on the same function, either leading to infinite recursion, or deleting |
+ an object when it is not done being used. |
+ |
+ The fix for this was to call checkForPendingPreloads and servePendingRequests asynchronously when |
+ CachedResourceLoader::loadDone was called synchronously (due to the load being cancelled synchronously). |
+ |
+ Test: fast/loader/willSendRequest-null-for-preload.html |
+ |
+ * loader/DocumentLoader.cpp: |
+ (WebCore::DocumentLoader::setRequest): Only dispatch didReceiveServerRedirectForProvisionalLoadForFrame |
+ if our new URL is non-null. |
+ * loader/cache/CachedResourceLoader.cpp: |
+ (WebCore::CachedResourceLoader::CachedResourceLoader): Initialize our timer. |
+ (WebCore::CachedResourceLoader::loadDone): If the CachedResource we were passed in was 0, that means this |
+ function was called synchronously |
+ from CachedResourceRequest::load, and we don't want to call into checkForPendingPreloads synchronously, |
+ so put it on a 0-delay timer to make the calls to checkForPendingPreloads and servePendingRequests asynchronous. |
+ (WebCore::CachedResourceLoader::loadDonePendingActionTimerFired): Call checkForPendingPreloads and servePendingRequests. |
+ (WebCore::CachedResourceLoader::checkForPendingPreloads): m_pendingPreloads is now a Deque instead of a Vector, |
+ so use Deque methods. |
+ * loader/cache/CachedResourceLoader.h: Add the timer, the timer callback function, and make m_pendingPreloads a Deque. |
+ |
+2011-01-25 Pavel Podivilov <podivilov@chromium.org> |
+ |
+ Reviewed by Pavel Feldman. |
+ |
+ Web Inspector: evaluate in console may not work when window.console is substituted or deleted. |
+ https://bugs.webkit.org/show_bug.cgi?id=53072 |
+ |
+ Test: inspector/console-substituted.html |
+ |
+ * inspector/InjectedScriptSource.js: |
+ (.): |
+ |
+2011-01-26 Carlos Garcia Campos <cgarcia@igalia.com> |
+ |
+ Reviewed by Martin Robinson. |
+ |
+ [cairo] Use CAIRO_OPERATOR_DARKEN when available |
+ https://bugs.webkit.org/show_bug.cgi?id=53084 |
+ |
+ Use CAIRO_OPERATOR_DARKEN for CompositePlusDarker instead of |
+ CAIRO_OPERATOR_SATURATE when building with cairo version >= 1.10. |
+ |
+ * platform/graphics/cairo/CairoUtilities.cpp: |
+ (WebCore::toCairoOperator): |
+ |
+2011-01-26 Pavel Feldman <pfeldman@chromium.org> |
+ |
+ Reviewed by Yury Semikhatsky. |
+ |
+ Web Inspector: visualize \n in strings as unicode cr |
+ symbol in stack variables sidebar. |
+ https://bugs.webkit.org/show_bug.cgi?id=53162 |
+ |
+ * inspector/front-end/ObjectPropertiesSection.js: |
+ (WebInspector.ObjectPropertyTreeElement.prototype.update): |
+ |
+2011-01-26 Andrey Kosyakov <caseq@chromium.org> |
+ |
+ Reviewed by Pavel Feldman. |
+ |
+ Web Inspector: size is wrong for cached resources in Network panel |
+ - Set the size for 304/not modified resources from cached resource. |
+ - Add response headers size to resource transfer size. |
+ https://bugs.webkit.org/show_bug.cgi?id=52886 |
+ |
+ * inspector/InspectorResourceAgent.cpp: |
+ (WebCore::InspectorResourceAgent::didReceiveResponse): |
+ * inspector/front-end/Resource.js: |
+ (WebInspector.Resource): |
+ (WebInspector.Resource.prototype.get transferSize): |
+ (WebInspector.Resource.prototype.set responseHeaders): |
+ (WebInspector.Resource.prototype._headersSize): |
+ (WebInspector.Resource.prototype._mimeTypeIsConsistentWithType): |
+ |
+2011-01-26 Carol Szabo <carol.szabo@nokia.com> |
+ |
+ Reviewed by Simon Hausmann. |
+ |
+ Fixed TiledBacking store to take into account new dirty regions caused by |
+ paint time layouts. |
+ |
+ Flawed rendering design for QtWebKit resulting in artifacts being displayed |
+ https://bugs.webkit.org/show_bug.cgi?id=49184 |
+ |
+ There are no new tests as this patch aims at fixing flicker that |
+ happen randomly, mostly on slow hardware, thus are hard to reproduce |
+ consistently in an automated test. |
+ |
+ This patch does not fully address the said bug but it is a step in the |
+ right direction. A full solution to the bug, as currently perceived, |
+ requires either a Qt GUI API change, a performance hit for QtWebKit, |
+ or a hack, until a full solution is provided this patch is progress. |
+ |
+ * platform/graphics/TiledBackingStore.cpp: |
+ (WebCore::TiledBackingStore::updateTileBuffers): |
+ Changed to take into account newly dirtied areas created during |
+ tile update initiated layouts during the same update. |
+ |
+2011-01-26 Patrick Gansterer <paroga@webkit.org> |
+ |
+ Reviewed by Andreas Kling. |
+ |
+ [SKIA] Remove "current path" of GraphicsContext |
+ https://bugs.webkit.org/show_bug.cgi?id=53124 |
+ |
+ * platform/graphics/GraphicsContext.h: |
+ * platform/graphics/skia/GraphicsContextSkia.cpp: |
+ (WebCore::GraphicsContext::clipPath): |
+ (WebCore::GraphicsContext::fillPath): |
+ (WebCore::GraphicsContext::strokePath): |
+ * platform/graphics/skia/PathSkia.cpp: |
+ (WebCore::Path::strokeBoundingRect): |
+ * platform/graphics/skia/PlatformContextSkia.cpp: |
+ * platform/graphics/skia/PlatformContextSkia.h: |
+ |
+2011-01-26 Zalan Bujtas <zbujtas@gmail.com> |
+ |
+ Reviewed by Andreas Kling. |
+ |
+ [Qt] Path::normalAngleAtLength() returns incorrect value on ACID3. |
+ |
+ QPainterPath returns angle values with the origo being at the top left corner, |
+ we need to account for this in normalAngleAtLength(). |
+ This Regressed with r66979. |
+ |
+ No new tests as this is already covered by ACID3. |
+ |
+ * platform/graphics/qt/PathQt.cpp: |
+ (WebCore::Path::normalAngleAtLength): |
+ |
+2011-01-26 Pavel Feldman <pfeldman@chromium.org> |
+ |
+ Reviewed by Yury Semikhatsky. |
+ |
+ Web Inspector: live edit does not update source snippet. |
+ https://bugs.webkit.org/show_bug.cgi?id=53097 |
+ |
+ * inspector/front-end/ScriptsPanel.js: |
+ (WebInspector.ScriptsPanel.prototype._scriptSourceChanged): |
+ |
+2011-01-26 Pavel Feldman <pfeldman@chromium.org> |
+ |
+ Reviewed by Yury Semikhatsky. |
+ |
+ Web Inspector: Incorrect on-hover evaluation of a variable named 'profile'. |
+ https://bugs.webkit.org/show_bug.cgi?id=53018 |
+ |
+ * inspector/InjectedScript.cpp: |
+ (WebCore::InjectedScript::evaluate): |
+ (WebCore::InjectedScript::evaluateOnCallFrame): |
+ (WebCore::InjectedScript::getCompletions): |
+ (WebCore::InjectedScript::getCompletionsOnCallFrame): |
+ * inspector/InjectedScript.h: |
+ * inspector/InjectedScriptSource.js: |
+ (.): |
+ * inspector/Inspector.idl: |
+ * inspector/InspectorDebuggerAgent.cpp: |
+ (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame): |
+ (WebCore::InspectorDebuggerAgent::getCompletionsOnCallFrame): |
+ * inspector/InspectorDebuggerAgent.h: |
+ * inspector/InspectorRuntimeAgent.cpp: |
+ (WebCore::InspectorRuntimeAgent::evaluate): |
+ (WebCore::InspectorRuntimeAgent::getCompletions): |
+ * inspector/InspectorRuntimeAgent.h: |
+ * inspector/front-end/ConsoleView.js: |
+ (WebInspector.ConsoleView.prototype.completions): |
+ (WebInspector.ConsoleView.prototype.evalInInspectedWindow): |
+ (WebInspector.ConsoleView.prototype._enterKeyPressed): |
+ * inspector/front-end/ScriptsPanel.js: |
+ (WebInspector.ScriptsPanel.prototype.evaluateInSelectedCallFrame.updatingCallbackWrapper): |
+ (WebInspector.ScriptsPanel.prototype.evaluateInSelectedCallFrame): |
+ * inspector/front-end/SourceFrame.js: |
+ (WebInspector.SourceFrame.prototype._showPopup): |
+ * inspector/front-end/WatchExpressionsSidebarPane.js: |
+ (WebInspector.WatchExpressionsSection.prototype.update): |
+ |
+2011-01-26 Hironori Bono <hbono@chromium.org> |
+ |
+ Reviewed by Kent Tamura. |
+ |
+ A speculative fix for Bug 52422 - [chromium] More crash in |
+ FontFallbackList::determinePitch(const Font* font) |
+ https://bugs.webkit.org/show_bug.cgi?id=52422 |
+ |
+ My previous change may not work on non-US Windows whose system fonts |
+ have localized aliases matching to the system locale because of a |
+ font-name mismatch in createFontIndirectAndGetWinName(). This change |
+ tries all the fonts installed in a PC and returns the first font that we |
+ can create without errors. |
+ |
+ * platform/graphics/chromium/FontCacheChromiumWin.cpp: |
+ (WebCore::GetLastResortFallbackFontProcData::GetLastResortFallbackFontProcData): |
+ Added a struct used for getLastResortFallbackFontProc(). |
+ (WebCore::getLastResortFallbackFontProc): Added a callback for EnumFontFamilies(). |
+ (WebCore::FontCache::getLastResortFallbackFont): Use EnumFontFamilies() to find a last-resort font. |
+ |
+2011-01-26 James Robinson <jamesr@chromium.org> |
+ |
+ Reviewed by Nate Chapin. |
+ |
+ Add a DOMTimeStamp parameter to the requestAnimationFrame callback |
+ https://bugs.webkit.org/show_bug.cgi?id=53142 |
+ |
+ This adds a DOMTimeStamp parameter to the requestAnimationFrame callback to more |
+ closely match mozilla's proposal. This is useful if the page has multiple imperative animations |
+ and wants to ensure that they all remain synchronized. If each callback used Date.now() to |
+ update its animation state, they would potentially be out of sync with each other. If they use |
+ the timestamp then all callbacks for the same "frame" will update to the same state. |
+ |
+ Test: fast/animation/request-animation-frame-timestamps.html |
+ |
+ * bindings/scripts/CodeGeneratorV8.pm: |
+ * bindings/scripts/test/V8/V8TestCallback.cpp: |
+ (WebCore::V8TestCallback::callbackWithClass2Param): |
+ * dom/Document.cpp: |
+ (WebCore::Document::serviceScriptedAnimations): |
+ * dom/Document.h: |
+ * dom/RequestAnimationFrameCallback.h: |
+ * dom/RequestAnimationFrameCallback.idl: |
+ * page/FrameView.cpp: |
+ (WebCore::FrameView::serviceScriptedAnimations): |
+ * page/FrameView.h: |
+ |
+2011-01-25 Yuzo Fujishima <yuzo@google.com> |
+ |
+ Unreviewed attempt to fix compilation error for Chromium Clang. |
+ |
+ * platform/graphics/mac/ComplexTextController.cpp: |
+ (WebCore::ComplexTextController::advance): |
+ |
+2011-01-25 Ned Holbrook <nholbrook@apple.com> |
+ |
+ Reviewed by Dan Bernstein. |
+ |
+ ComplexTextController incorrectly conflates string length and range of indexes |
+ https://bugs.webkit.org/show_bug.cgi?id=52760 |
+ |
+ Test: fast/text/offsetForPosition-complex-fallback.html |
+ |
+ * platform/graphics/mac/ComplexTextController.cpp: |
+ (WebCore::ComplexTextController::offsetForPosition): |
+ (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): |
+ (WebCore::ComplexTextController::ComplexTextRun::setIsNonMonotonic): |
+ (WebCore::ComplexTextController::advance): |
+ * platform/graphics/mac/ComplexTextController.h: |
+ (WebCore::ComplexTextController::ComplexTextRun::create): |
+ (WebCore::ComplexTextController::ComplexTextRun::indexEnd): |
+ * platform/graphics/mac/ComplexTextControllerATSUI.cpp: |
+ (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): |
+ * platform/graphics/mac/ComplexTextControllerCoreText.cpp: |
+ (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): |
+ (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText): |
+ |
+2011-01-25 Sam Weinig <sam@webkit.org> |
+ |
+ Reviewed by David Hyatt. |
+ |
+ Scrollbars don't work correctly for top-to-bottom text in an overflow: scroll area |
+ https://bugs.webkit.org/show_bug.cgi?id=53048 |
+ |
+ Test: fast/overflow/overflow-rtl-vertical-origin.html |
+ |
+ * rendering/RenderLayer.cpp: |
+ (WebCore::RenderLayer::scrollPosition): |
+ (WebCore::RenderLayer::updateScrollInfoAfterLayout): |
+ Take the scroll origin into account when calculating scrollbars in more places. |
+ |
+2011-01-25 Steve Falkenburg <sfalken@apple.com> |
+ |
+ Windows production build fix. |
+ Use correct configuration-specific path in makefile. |
+ |
+ * WebCore.vcproj/WebCore.make: |
+ |
+2011-01-25 Kent Tamura <tkent@chromium.org> |
+ |
+ Reviewed by Dimitri Glazkov. |
+ |
+ Radio button group state is not restored correctly |
+ https://bugs.webkit.org/show_bug.cgi?id=50442 |
+ |
+ Fixes a bug that radio button states are not restored correctly in |
+ a case that non-first radio button in a group is checked. |
+ |
+ If "checked" attribute is present, the radio button is checked and |
+ other radio buttons in the group are unchecked. This behavior |
+ disturbs form state restoring. This patch changes this behavior so |
+ that the "checked" attribute handling is delayed after form state |
+ restoring. |
+ |
+ Test: fast/forms/state-restore-radio-group.html |
+ |
+ * html/HTMLFormControlElement.h: |
+ Make finishParsingChildren() protected so that HTMLInpuElement can call it. |
+ * html/HTMLInputElement.cpp: |
+ (WebCore::HTMLInputElement::HTMLInputElement): |
+ - Add createdByParser parameter. |
+ - Initialize m_stateRestored and m_parsingInProgress. |
+ (WebCore::HTMLInputElement::create): Sync with the constructor. |
+ (WebCore::HTMLInputElement::restoreFormControlState): |
+ Set m_stateRestored in order to refer it in finishParsingChildren(). |
+ (WebCore::HTMLInputElement::parseMappedAttribute): |
+ Don't call setChecked() during parsing. Move setNeedsValidityCheck() |
+ to setChecked(). |
+ (WebCore::HTMLInputElement::finishParsingChildren): |
+ Call setChecked() if form state is not restored. |
+ (WebCore::HTMLInputElement::setChecked): |
+ Move setNeedsValidityCheck() from parseMappedAttribute() because |
+ finishParsingChildren() also needs to call setNeedsValidityCheck(). |
+ * html/HTMLInputElement.h: |
+ - Remove the default value of HTMLFormElement* of the HTMLInputElement |
+ constructor, and add createdByParser parameter. |
+ - Introduce m_parsingInProgress and m_stateRestored. |
+ * html/HTMLIsIndexElement.cpp: |
+ (WebCore::HTMLIsIndexElement::HTMLIsIndexElement): |
+ Sync with the HTMLInputElement constructor change. |
+ * html/HTMLTagNames.in: Add constructorNeedsCreatedByParser flag. |
+ * rendering/MediaControlElements.cpp: |
+ (WebCore::MediaControlInputElement::MediaControlInputElement): |
+ Sync with the HTMLInputElement constructor change. |
+ * rendering/ShadowElement.cpp: |
+ (WebCore::ShadowInputElement::ShadowInputElement): ditto. |
+ * rendering/ShadowElement.h: |
+ (WebCore::ShadowElement::ShadowElement): ditto. |
+ |
+2011-01-25 Kent Tamura <tkent@chromium.org> |
+ |
+ Reviewed by Dimitri Glazkov. |
+ |
+ HTMLFormElement::checkValidity() returns incorrect result if 'invalid' events are canceled. |
+ https://bugs.webkit.org/show_bug.cgi?id=52565 |
+ |
+ * html/HTMLFormElement.cpp: |
+ (WebCore::HTMLFormElement::validateInteractively): |
+ Check checkInvalidControlsAndCollectUnhandled() result instead of |
+ checking emptiness of unhandled invalid controls list. |
+ (WebCore::HTMLFormElement::checkValidity): ditto. |
+ (WebCore::HTMLFormElement::checkInvalidControlsAndCollectUnhandled): |
+ Renamed from collectUnhandledInvalidControls(). |
+ Returns true if there is any invalid control regardless of event canceling. |
+ * html/HTMLFormElement.h: Rename collectUnhandledInvalidControls() to |
+ checkInvalidControlsAndCollectUnhandled(). |
+ |
+2011-01-25 Kent Tamura <tkent@chromium.org> |
+ |
+ Reviewed by Dimitri Glazkov. |
+ |
+ Range and number inputs should reject increment and decrement by |
+ keyboard or mouse wheel if they are disabled or read-only |
+ https://bugs.webkit.org/show_bug.cgi?id=53151 |
+ |
+ * html/RangeInputType.cpp: |
+ (WebCore::RangeInputType::handleKeydownEvent): Check disabled() and readOnly(). |
+ * html/TextFieldInputType.cpp: |
+ (WebCore::TextFieldInputType::handleKeydownEventForSpinButton): ditto. |
+ (WebCore::TextFieldInputType::handleWheelEventForSpinButton): ditto. |
+ |
+2011-01-25 Kent Tamura <tkent@chromium.org> |
+ |
+ Reviewed by Dimitri Glazkov. |
+ |
+ API to support localized numbers for <input type=number> |
+ https://bugs.webkit.org/show_bug.cgi?id=45730 |
+ |
+ Introduce platform/text/LocalizedNumber.h, and |
+ LocalizedNumberNone.cpp, which is an empty implementation of the |
+ functions in LocalizedNumber.h. We use LocalizedNumberNone.cpp in |
+ all platforms for now. |
+ |
+ A string in a type=number field is parsed as a localized number |
+ first. If the parsing fails, it is parsed as the HTML5 number. |
+ |
+ We introduce HTMLInputElement::visibleValue(). It represents a value |
+ which should be drawn by a renderer. HTMLInputElement::value() always |
+ returns a number formatted for HTML5, and visibleValue() may return a |
+ localized number. |
+ |
+ No new tests because this doesn't change any behavior. |
+ |
+ * Android.mk: Add LocalizedNumber.h and/or LocalizedNumberNone.cpp. |
+ * CMakeLists.txt: ditto. |
+ * GNUmakefile.am: ditto. |
+ * WebCore.gypi: ditto. |
+ * WebCore.pro: ditto. |
+ * WebCore.vcproj/WebCore.vcproj: ditto. |
+ * WebCore.xcodeproj/project.pbxproj: ditto. |
+ * dom/InputElement.h: Add visibleValue(). |
+ * html/HTMLInputElement.cpp: |
+ (WebCore::HTMLInputElement::visibleValue): Added. Just call InputType::visibleValue(). |
+ * html/HTMLInputElement.h: Declare visibleValue(). |
+ * html/InputType.cpp: |
+ (WebCore::InputType::visibleValue): Add the default implementation of |
+ visibleValue(), which returns HTMLInputElement::value(). |
+ * html/InputType.h: Add declarations. |
+ * html/NumberInputType.cpp: |
+ (WebCore::isHTMLNumberCharacter): Renamed from isNumberCharacter(). |
+ (WebCore::isNumberCharacter): Calls isLocalizedNumberCharacter() and isHTMLNumberCharacter(). |
+ (WebCore::NumberInputType::visibleValue): |
+ Returns a localized number string produced by formatLocalizedNumber(). |
+ (WebCore::NumberInputType::isAcceptableValue): Calls parseLocalizedNumber(). |
+ (WebCore::NumberInputType::sanitizeValue): Calls parseLocalizedNumber(). |
+ * html/NumberInputType.h: Add declarations. |
+ * platform/text/LocalizedNumber.h: Added. |
+ * platform/text/LocalizedNumberNone.cpp: Added. |
+ (WebCore::parseLocalizedNumber): |
+ (WebCore::formatLocalizedNumber): |
+ (WebCore::isLocalizedNumberCharacter): |
+ * rendering/RenderTextControlSingleLine.cpp: |
+ (WebCore::RenderTextControlSingleLine::updateFromElement): |
+ Calls InputElement::visibleValue() instead of value(). |
+ * wml/WMLInputElement.h: |
+ (WebCore::WMLInputElement::visibleValue): Added. It just calls value(). |
+ |
+2011-01-25 Alexey Proskuryakov <ap@apple.com> |
+ |
+ Reviewed by Darin Adler. |
+ |
+ https://bugs.webkit.org/show_bug.cgi?id=53143 |
+ Add IntRectHash |
+ |
+ * WebCore.xcodeproj/project.pbxproj: |
+ * platform/graphics/IntRectHash.h: Added. |
+ |
+ * platform/graphics/IntSizeHash.h: Don't do "using WebCore::IntSize"! |
+ |
+2011-01-25 Ilya Sherman <isherman@chromium.org> |
+ |
+ Reviewed by Ryosuke Niwa. |
+ |
+ Remove trailing whitespace in HTMLInputElement.cpp |
+ https://bugs.webkit.org/show_bug.cgi?id=53152 |
+ |
+ * html/HTMLInputElement.cpp: |
+ (WebCore::HTMLInputElement::updateCheckedRadioButtons): |
+ (WebCore::HTMLInputElement::applyStep): |
+ (WebCore::HTMLInputElement::updateFocusAppearance): |
+ (WebCore::HTMLInputElement::mapToEntry): |
+ (WebCore::HTMLInputElement::setAutofilled): |
+ (WebCore::HTMLInputElement::willMoveToNewOwnerDocument): |
+ (WebCore::HTMLInputElement::didMoveToNewOwnerDocument): |
+ |
+2011-01-25 Mike Reed <reed@google.com> |
+ |
+ Reviewed by James Robinson. |
+ |
+ DrawingBufer::reset() today checks if the new size is the same as its |
+ m_size, and if so, returns immediately. This does not match the |
+ semantics of <canvas>, which wants to clear its contents anytime the |
+ size is specified. |
+ https://bugs.webkit.org/show_bug.cgi?id=53149 |
+ |
+ Test: Covered by existing <canvas> tests using gpu. |
+ |
+ * platform/graphics/chromium/DrawingBufferChromium.cpp: |
+ (WebCore::DrawingBuffer::DrawingBuffer): |
+ * platform/graphics/gpu/DrawingBuffer.cpp: |
+ (WebCore::DrawingBuffer::reset): |
+ |
+2011-01-25 Cris Neckar <cdn@chromium.org> |
+ |
+ Reviewed by Adam Barth. |
+ |
+ Add a hashset of DOMURLs to ScriptExecutionContext to track back references. |
+ https://bugs.webkit.org/show_bug.cgi?id=53038 |
+ |
+ Test: fast/dom/window-domurl-crash.html |
+ |
+ * dom/ScriptExecutionContext.cpp: |
+ (WebCore::ScriptExecutionContext::~ScriptExecutionContext): |
+ (WebCore::ScriptExecutionContext::createdDomUrl): |
+ (WebCore::ScriptExecutionContext::destroyedDomUrl): |
+ * dom/ScriptExecutionContext.h: |
+ (WebCore::ScriptExecutionContext::domUrls): |
+ * html/DOMURL.cpp: |
+ (WebCore::DOMURL::DOMURL): |
+ (WebCore::DOMURL::~DOMURL): |
+ (WebCore::DOMURL::contextDestroyed): |
+ * html/DOMURL.h: |
+ (WebCore::DOMURL::scriptExecutionContext): |
+ |
+2011-01-23 Antti Koivisto <antti@apple.com> |
+ |
+ Reviewed by Darin Adler. |
+ |
+ https://bugs.webkit.org/show_bug.cgi?id=52983 |
+ Eliminate m_tagHistory pointer from CSSSelector |
+ |
+ Keep the component selectors in the array in CSSSelectorList instead |
+ of maintaining a linked list between them. This allows eliminating |
+ m_tagHistory pointer, shrinking CSSSelector by 25% (selection performance |
+ seems to improve some too due to better locality). |
+ |
+ * WebCore.xcodeproj/project.pbxproj: |
+ |
+ Make CSSSelector.h a private header. |
+ |
+ * css/CSSGrammar.y: |
+ |
+ Use CSSParserSelector during parsing to keep the tag history in |
+ a linked list. This is flattened to an array after parsing. |
+ Use accessors for setting selector values. |
+ Use OwnPtr in selector vector. |
+ |
+ * css/CSSPageRule.cpp: |
+ (WebCore::CSSPageRule::CSSPageRule): |
+ * css/CSSPageRule.h: |
+ (WebCore::CSSPageRule::create): |
+ |
+ Simplify. |
+ |
+ * css/CSSParser.cpp: |
+ (WebCore::CSSParser::~CSSParser): |
+ (WebCore::CSSParser::createFloatingSelector): |
+ (WebCore::CSSParser::sinkFloatingSelector): |
+ (WebCore::CSSParser::createStyleRule): |
+ (WebCore::CSSParser::updateSpecifiersWithElementName): |
+ (WebCore::CSSParser::createPageRule): |
+ * css/CSSParser.h: |
+ (WebCore::CSSParser::reusableSelectorVector): |
+ |
+ CSSSelector -> CSSParserSelector. |
+ Use OwnPtr in selector vector. |
+ |
+ * css/CSSParserValues.cpp: |
+ (WebCore::CSSParserSelector::CSSParserSelector): |
+ (WebCore::CSSParserSelector::~CSSParserSelector): |
+ * css/CSSParserValues.h: |
+ (WebCore::CSSParserSelector::releaseSelector): |
+ (WebCore::CSSParserSelector::setTag): |
+ (WebCore::CSSParserSelector::setValue): |
+ (WebCore::CSSParserSelector::setAttribute): |
+ (WebCore::CSSParserSelector::setArgument): |
+ (WebCore::CSSParserSelector::setSimpleSelector): |
+ (WebCore::CSSParserSelector::setMatch): |
+ (WebCore::CSSParserSelector::setRelation): |
+ (WebCore::CSSParserSelector::setForPage): |
+ (WebCore::CSSParserSelector::pseudoType): |
+ (WebCore::CSSParserSelector::isUnknownPseudoElement): |
+ (WebCore::CSSParserSelector::isSimple): |
+ (WebCore::CSSParserSelector::tagHistory): |
+ (WebCore::CSSParserSelector::setTagHistory): |
+ |
+ Linked list used during parsing. |
+ Avoid recursive destruction. |
+ |
+ * css/CSSSelector.cpp: |
+ (WebCore::CSSSelector::extractPseudoType): |
+ (WebCore::CSSSelector::operator==): |
+ (WebCore::CSSSelector::selectorText): |
+ (WebCore::CSSSelector::setSimpleSelector): |
+ * css/CSSSelector.h: |
+ (WebCore::CSSSelector::CSSSelector): |
+ (WebCore::CSSSelector::~CSSSelector): |
+ (WebCore::CSSSelector::tagHistory): |
+ (WebCore::CSSSelector::tag): |
+ (WebCore::CSSSelector::value): |
+ (WebCore::CSSSelector::setTag): |
+ (WebCore::CSSSelector::isLastInTagHistory): |
+ (WebCore::CSSSelector::setNotLastInTagHistory): |
+ (WebCore::CSSSelector::RareData::RareData): |
+ (WebCore::CSSSelector::RareData::~RareData): |
+ (WebCore::CSSSelector::createRareData): |
+ (WebCore::CSSSelector::setValue): |
+ |
+ Remove m_tagHistory. |
+ Keep m_value in the union with the rare data pointer instead. |
+ Make m_value and m_tag private, implement accessors. |
+ Add a new bit to indicate end of the tag history (multipart selector). |
+ Eliminate complex destruction. Selectors are now deleted as an array or by a CSSParserSelector chain. |
+ |
+ * css/CSSSelectorList.cpp: |
+ (WebCore::CSSSelectorList::adoptSelectorVector): |
+ |
+ Flatten everything to an array. |
+ |
+ (WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()): |
+ * css/CSSSelectorList.h: |
+ (WebCore::CSSSelectorList::hasOneSelector): |
+ (WebCore::CSSSelectorList::next): |
+ |
+ Skip over the subparts of multipart selectors to find the next selector. |
+ |
+ * css/CSSStyleRule.h: |
+ (WebCore::CSSStyleRule::adoptSelectorVector): |
+ |
+ CSSSelector -> CSSParserSelector. |
+ |
+ * css/CSSStyleSelector.cpp: |
+ (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): |
+ (WebCore::CSSRuleSet::addRule): |
+ (WebCore::collectIdsAndSiblingRulesFromList): |
+ (WebCore::CSSStyleSelector::matchPageRulesForList): |
+ * dom/Node.cpp: |
+ (WebCore::Node::querySelector): |
+ * dom/SelectorNodeList.cpp: |
+ (WebCore::createSelectorNodeList): |
+ |
+ Use accessors. |
+ |
+2011-01-25 James Simonsen <simonjam@chromium.org> |
+ |
+ Reviewed by Tony Chang. |
+ |
+ [Chromium] Support small caps in complex text on linux |
+ https://bugs.webkit.org/show_bug.cgi?id=53051 |
+ |
+ * platform/graphics/chromium/ComplexTextControllerLinux.cpp: |
+ (WebCore::ComplexTextController::nextScriptRun): Break runs at small caps boundaries. |
+ (WebCore::ComplexTextController::setupFontForScriptRun): Setup small caps font data if needed. |
+ * platform/graphics/chromium/ComplexTextControllerLinux.h: Store small caps text in separate string. |
+ |
+2011-01-25 Steve Falkenburg <sfalken@apple.com> |
+ |
+ Rubber-stamped by Adam Roben. |
+ |
+ Windows production build fix. |
+ Use correct environment variable escaping |
+ |
+ * WebCore.vcproj/WebCore.make: |
+ |
2011-01-25 Adam Barth <abarth@webkit.org> |
Reviewed by Eric Seidel. |