Move more of SVG resources cache to using RenderElement.
[WebKit-https.git] / Source / WebCore / ChangeLog
index 4d9bcd7..7d1d170 100644 (file)
@@ -1,3 +1,371 @@
+2013-10-29  Andreas Kling  <akling@apple.com>
+
+        Move more of SVG resources cache to using RenderElement.
+        <https://webkit.org/b/123452>
+
+        Make some more RenderSVGResourcesCache methods take RenderElement&
+        instead of RenderObject*.
+
+        Also removed a double hash lookup in removeResourcesFromRenderer().
+
+        Reviewed by Antti Koivisto.
+
+2013-10-29  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Web Inspector: Remove old Inspector.json version files and generators
+        https://bugs.webkit.org/show_bug.cgi?id=123426
+
+        Reviewed by Timothy Hatcher.
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        * GNUmakefile.am:
+        * GNUmakefile.list.am:
+        * WebCore.xcodeproj/project.pbxproj:
+        * inspector/Inspector-0.1.json: Removed.
+        * inspector/Inspector-1.0.json: Removed.
+        * inspector/generate-inspector-protocol-version: Removed.
+
+2013-10-29  Philippe Normand  <pnormand@igalia.com>
+
+        [GTK] DOM bindings documentation errors
+        https://bugs.webkit.org/show_bug.cgi?id=123448
+
+        Reviewed by Carlos Garcia Campos.
+
+        * bindings/gobject/WebKitDOMCustom.h: Basic documentation for
+        return types.
+        * bindings/scripts/CodeGeneratorGObject.pm:
+        (GenerateFunction): Generate Returns documentation tag for
+        non-void return types and provide basic documentation.
+        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
+        Reset tests results.
+        * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
+        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
+        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
+        * bindings/scripts/test/GObject/WebKitDOMTestException.h:
+        * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
+        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
+        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
+        * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.h:
+        * bindings/scripts/test/GObject/WebKitDOMattribute.h:
+
+2013-10-24  Brent Fulgham  <bfulgham@apple.com>
+
+        Invalid cast in WebCore::toRenderMathMLBlock
+        https://bugs.webkit.org/show_bug.cgi?id=121728
+        rdar://problem/15046151
+
+        Reviewed by Dean Jackson.
+
+        Tested by: mathml/arbitrary-markup.html
+
+        * dom/Element.h: Expose childShouldCreateRenderer for
+        MathML as well as SVG builds.
+        * dom/Node.h: 
+        (WebCore::Node::isMathMLElement): Added.
+        * mathml/MathMLElement.cpp:
+        (WebCore::MathMLElement::create): Create as MathML Element.
+        (WebCore::MathMLElement::childShouldCreateRenderer):
+        Only allow the child to emit a renderer if it is a
+        MathML element.
+        * mathml/MathMLElement.h:
+
+2013-10-29  Andreas Kling  <akling@apple.com>
+
+        SVG: applyStrokeStyleToContext should take a RenderElement&.
+        <https://webkit.org/b/123447>
+
+        ..and a RenderStyle& too, for that matter.
+
+        Reviewed by Anders Carlsson.
+
+        * rendering/svg/SVGRenderSupport.h:
+        * rendering/svg/SVGRenderSupport.cpp:
+        (WebCore::SVGRenderSupport::applyStrokeStyleToContext):
+
+            Have this take a RenderElement& and RenderStyle& instead of
+            raw pointers. Tweaked a silly-looking loop.
+
+        * rendering/svg/RenderSVGShape.h:
+        * rendering/svg/RenderSVGShape.cpp:
+
+            Moved BoundingRectStrokeStyleApplier helper class into the
+            cpp file since it wasn't being used anywhere else.
+
+        * rendering/svg/RenderSVGResourceGradient.cpp:
+        (WebCore::RenderSVGResourceGradient::applyResource):
+        * rendering/svg/RenderSVGResourcePattern.cpp:
+        (WebCore::RenderSVGResourcePattern::applyResource):
+        * rendering/svg/RenderSVGResourceSolidColor.cpp:
+        (WebCore::RenderSVGResourceSolidColor::applyResource):
+
+            Remove ampersands.
+
+2013-10-29  Antti Koivisto  <antti@apple.com>
+
+        Multiple runs per line on simple line path
+        https://bugs.webkit.org/show_bug.cgi?id=123446
+
+        Reviewed by Andreas Kling.
+
+        By allowing multiple runs per line we can support text flows with consecutive whitespaces in the middle.
+
+        * rendering/SimpleLineLayout.cpp:
+        (WebCore::SimpleLineLayout::canUseFor):
+        
+            Remove space test.
+            The improved test coverage found a few more cases that we need to disallow.
+
+        (WebCore::SimpleLineLayout::adjustRunOffsets):
+            
+            Round the run positions and widths so they match line boxes.
+            Adjust for text-align.
+
+        (WebCore::SimpleLineLayout::create):
+        
+            Split lines with consecutive spaces into runs.
+
+        * rendering/SimpleLineLayout.h:
+        (WebCore::SimpleLineLayout::Run::Run):
+        * rendering/SimpleLineLayoutFunctions.cpp:
+        (WebCore::SimpleLineLayout::hitTestFlow):
+        (WebCore::SimpleLineLayout::collectFlowOverflow):
+        (WebCore::SimpleLineLayout::computeTextBoundingBox):
+        * rendering/SimpleLineLayoutResolver.h:
+        (WebCore::SimpleLineLayout::RunResolver::Iterator::resolver):
+        (WebCore::SimpleLineLayout::RunResolver::Iterator::lineIndex):
+        (WebCore::SimpleLineLayout::RunResolver::Run::Run):
+        (WebCore::SimpleLineLayout::RunResolver::Run::rect):
+        (WebCore::SimpleLineLayout::RunResolver::Run::baseline):
+        (WebCore::SimpleLineLayout::RunResolver::Run::text):
+        (WebCore::SimpleLineLayout::RunResolver::Run::lineIndex):
+        (WebCore::SimpleLineLayout::RunResolver::Iterator::Iterator):
+        (WebCore::SimpleLineLayout::RunResolver::Iterator::operator++):
+        
+            Removed unnecessary operators.
+
+        (WebCore::SimpleLineLayout::RunResolver::Iterator::operator==):
+        (WebCore::SimpleLineLayout::RunResolver::Iterator::operator!=):
+        (WebCore::SimpleLineLayout::RunResolver::Iterator::operator*):
+        (WebCore::SimpleLineLayout::RunResolver::Iterator::simpleRun):
+        (WebCore::SimpleLineLayout::RunResolver::RunResolver):
+        (WebCore::SimpleLineLayout::RunResolver::begin):
+        (WebCore::SimpleLineLayout::RunResolver::end):
+        
+            Resolver -> RunResolver
+
+        (WebCore::SimpleLineLayout::LineResolver::Iterator::Iterator):
+        (WebCore::SimpleLineLayout::LineResolver::Iterator::operator++):
+        (WebCore::SimpleLineLayout::LineResolver::Iterator::operator==):
+        (WebCore::SimpleLineLayout::LineResolver::Iterator::operator!=):
+        (WebCore::SimpleLineLayout::LineResolver::Iterator::operator*):
+        (WebCore::SimpleLineLayout::LineResolver::LineResolver):
+        (WebCore::SimpleLineLayout::LineResolver::begin):
+        (WebCore::SimpleLineLayout::LineResolver::end):
+        
+            Add LineResolver around RunResolver. It resolves the line rectangles.
+
+        (WebCore::SimpleLineLayout::runResolver):
+        (WebCore::SimpleLineLayout::lineResolver):
+
+2013-10-29  Chris Fleizach  <cfleizach@apple.com>
+
+        AX: elements with explicit tabindex should expose AXFocused as writable, since mouse clicks can focus it
+        https://bugs.webkit.org/show_bug.cgi?id=121335
+
+        Reviewed by Mario Sanchez Prada.
+
+        Re-order logic that determines if a <span> should appear as an accessible element. 
+        The change is that if an element canSetFocus() it should always be in the AX tree.
+
+        Test: accessibility/tabindex-elements-are-accessible.html
+
+        * accessibility/AccessibilityRenderObject.cpp:
+        (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
+        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
+
+2013-10-29  Philippe Normand  <pnormand@igalia.com>
+
+        [GTK] enable media-stream in build-webkit
+        https://bugs.webkit.org/show_bug.cgi?id=123144
+
+        Reviewed by Martin Robinson.
+
+        * GNUmakefile.list.am: Add new MediaStream files to the GTK port build.
+
+2013-10-28  Chris Fleizach  <cfleizach@apple.com>
+
+        AX: Webkit does not expose AXRequired on input type=file
+        https://bugs.webkit.org/show_bug.cgi?id=123376
+
+        Reviewed by Mario Sanchez Prada.
+
+        File upload buttons should expose AXRequired, since they take an input state.
+
+        * accessibility/AccessibilityNodeObject.cpp:
+        (WebCore::AccessibilityNodeObject::supportsRequiredAttribute):
+        (WebCore::AccessibilityNodeObject::alternativeText):
+
+2013-10-29  Jinwoo Song  <jinwoo7.song@samsung.com>
+
+        Re-enable simple line layout for EFL
+        https://bugs.webkit.org/show_bug.cgi?id=123402
+
+        Reviewed by Antti Koivisto.
+
+        * rendering/SimpleLineLayout.cpp:
+        (WebCore::SimpleLineLayout::canUseFor): 8-bit TextRun support is now enabled for EFL port, so the port
+        can use the simple line layout.
+
+2013-10-29  Zan Dobersek  <zdobersek@igalia.com>
+
+        Unreviewed, follow-up to r158185. Export the required symbol.
+        This should fix the Mac debug build.
+
+        * WebCore.exp.in:
+
+2013-10-29  Santosh Mahto  <santosh.ma@samsung.com>
+
+        Text selected with double-click gets unselected after DOM modification
+        https://bugs.webkit.org/show_bug.cgi?id=114227
+
+        Reviewed by Ryosuke Niwa.
+
+        Before this patch when selection is done by double-click (start and base remain
+        same) and DOM is modified then selection gets vanished. This does not
+        happen when selection is done by dragging mouse. This happens because
+        on double-click base and extent remain the same and on DOM
+        modification we update the selection with base and extent, so we loose
+        the selection. Since in double-click case start/end contain the
+        correct selection, same should be used after dom modification to
+        update selection.
+
+        Test: editing/selection/double-click-selection-with-dom-mutation.html
+
+        * editing/FrameSelection.cpp:
+        (WebCore::FrameSelection::textWasReplaced): use start/end to update
+        selection in case double click selection. Added a check for base !=
+        extent, if base != extent use base/extent to update the selection
+        otherwise use start/end with directionality check.
+
+2013-10-29  Mihnea Ovidenie  <mihnea@adobe.com>
+
+        [CSSRegions] Display anonymous regions in DRT
+        https://bugs.webkit.org/show_bug.cgi?id=122963
+
+        Reviewed by Alexandru Chiculita.
+
+        After https://bugs.webkit.org/show_bug.cgi?id=119135, css regions are modelled using an anonymous
+        RenderNamedFlowFragment object inside the block having a valid -webkit-flow-from.
+        This patch changes the way elements | pseudo-elements with -webkit-flow-from are displayed
+        in test dumps.
+
+        Before:
+            RenderRegion {DIV} at (200,200) size 52x52 [border: (1px solid #000000)]
+        After:
+            RenderBlock (positioned) {DIV} at (200,200) size 52x52 [border: (1px solid #000000)]
+                RenderNamedFlowFragment at (1,1) size 50x50
+
+        Before:
+            Flow Threads
+                Thread with flow-name 'article'
+                Regions for flow 'article'
+                    RenderRegion {DIV} #region_1
+                    RenderRegion {DIV} #region_2
+        After:
+            Named flows
+                Named flow 'article'
+                Regions for named flow 'article'
+                    RenderNamedFlowFragment (anonymous child of {DIV::before} #region_1)
+                    RenderNamedFlowFragment (anonymous child of {DIV} #region_2)
+
+        Changed existing tests based on the new dumps.
+
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::renderName):
+        * rendering/RenderNamedFlowFragment.h: Add a comment explaining the purpose of the class.
+        * rendering/RenderRegion.h:
+        * rendering/RenderTreeAsText.cpp:
+        (WebCore::write):
+        (WebCore::writeRenderRegionList): Adjust function to display info for anonymous regions too.
+        (WebCore::writeRenderNamedFlowThreads): Separate dump of valid and invalid regions for a named flow.
+
+2013-10-29  Zan Dobersek  <zdobersek@igalia.com>
+
+        Move writeIndent, overloaded << operators from RenderTreeAsText to TextStream
+        https://bugs.webkit.org/show_bug.cgi?id=116012
+
+        Reviewed by Simon Fraser.
+
+        The writeIndent method and overloaded << operators for writing out vectors and points and rectangles
+        of various types are not specific to the render tree nor do they depend on any rendering-specific interface.
+
+        * page/scrolling/ScrollingStateNode.cpp:
+        * page/scrolling/ScrollingStateNode.h:
+        (ScrollingStateNode): Remove the writeIndent declaration, it's functionally the same as the TextStream method.
+        * platform/graphics/GraphicsLayer.cpp:
+        * platform/graphics/GraphicsLayer.h:
+        (GraphicsLayer): Ditto.
+        * platform/graphics/filters/DistantLightSource.cpp: Remove the RenderTreeAsText.h inclusion or replace it with
+        the inclusion of the TextStream.h header where required. The writeIndent method is now declared there.
+        * platform/graphics/filters/FEBlend.cpp: Ditto.
+        * platform/graphics/filters/FEColorMatrix.cpp: Ditto.
+        * platform/graphics/filters/FEComponentTransfer.cpp: Ditto.
+        * platform/graphics/filters/FEComposite.cpp: Ditto.
+        * platform/graphics/filters/FEConvolveMatrix.cpp: Ditto.
+        * platform/graphics/filters/FECustomFilter.cpp: Ditto.
+        * platform/graphics/filters/FEDiffuseLighting.cpp: Ditto.
+        * platform/graphics/filters/FEDisplacementMap.cpp: Ditto.
+        * platform/graphics/filters/FEDropShadow.cpp: Ditto.
+        * platform/graphics/filters/FEFlood.cpp: Ditto.
+        * platform/graphics/filters/FEGaussianBlur.cpp: Ditto.
+        * platform/graphics/filters/FEMerge.cpp: Ditto.
+        * platform/graphics/filters/FEMorphology.cpp: Ditto.
+        * platform/graphics/filters/FEOffset.cpp: Ditto.
+        * platform/graphics/filters/FESpecularLighting.cpp: Ditto.
+        * platform/graphics/filters/FETurbulence.cpp: Ditto.
+        * platform/graphics/filters/SourceAlpha.cpp: Ditto.
+        * platform/graphics/filters/SourceGraphic.cpp: Ditto.
+        * platform/text/TextStream.cpp: Move the writeIndent and operators' definitions here.
+        (WebCore::operator<<):
+        (WebCore):
+        (WebCore::writeIndent):
+        * platform/text/TextStream.h: Move the writeIndent and operators' declarations here.
+        (WebCore):
+        (TextStream):
+        (WebCore::TextStream::operator<<):
+        * rendering/RenderTreeAsText.cpp: Move the writeIndent and operators' definitions into TextStream.
+        (WebCore):
+        * rendering/RenderTreeAsText.h: Move the writeIndent and operators' declarations into TextStream.
+        (WebCore):
+
+2013-10-28  Zan Dobersek  <zdobersek@igalia.com>
+
+        Clean up ScopedEventQueue
+        https://bugs.webkit.org/show_bug.cgi?id=123408
+
+        Reviewed by Darin Adler.
+
+        Clean up the ScopedEventQueue implementation. ScopedEventQueue::instance() should return a reference to a
+        NeverDestroyed<ScopedEventQueue> object. The static ScopedEventQueue::s_instance pointer is removed.
+
+        The ScopedEventQueue destructor, the dispatchAllEvents method and the scope level incrementation/decrementation
+        methods are made private. NeverDestroyed<ScopedEventQueue> and EventQueueScope are made friends of the
+        ScopedEventQueue class so they can access the constructor and the incrementation/decrementation methods, respectively.
+
+        ScopedEventQueue method definitions are reordered to follow the order of their declarations in the header file.
+        ScopedEventQueue::dispatchAllEvents() now uses std::move to efficiently dispatch and clear all currently queued events.
+
+        * dom/EventDispatcher.cpp:
+        (WebCore::EventDispatcher::dispatchScopedEvent):
+        * dom/ScopedEventQueue.cpp:
+        (WebCore::ScopedEventQueue::instance):
+        (WebCore::ScopedEventQueue::dispatchAllEvents):
+        * dom/ScopedEventQueue.h:
+        (WebCore::EventQueueScope::EventQueueScope):
+        (WebCore::EventQueueScope::~EventQueueScope):
+
 2013-10-28  Andreas Kling  <akling@apple.com>
 
         applyTextTransform() should take a const RenderStyle&.