clearLayoutOverflow should never be called before calling layer()->updateScrollInfoAf...
authorroger_fong@apple.com <roger_fong@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 4 Jun 2013 01:16:42 +0000 (01:16 +0000)
committerroger_fong@apple.com <roger_fong@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 4 Jun 2013 01:16:42 +0000 (01:16 +0000)
https://bugs.webkit.org/show_bug.cgi?id=116689.

Reviewed by Ojan Vafai.

Make sure that clearLayoutOverflow only gets called after layer()->updateScrollInfoAfterLayout().
Also move clearLayoutOverflow to RenderBlock so we can keep all the delayed scroll update logic together.

Test: fast/flexbox/clear-overflow-before-scroll-update.html

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layout): Remove call to clearLayoutOverflow.
(WebCore::RenderBlock::finishDelayUpdateScrollInfo): Add call to clearLayoutOverflow.
(WebCore::RenderBlock::updateScrollInfoAfterLayout): Ditto.
* rendering/RenderBlock.h:
(RenderBlock):
* rendering/RenderBox.cpp:
* rendering/RenderBox.h:
(WebCore::RenderBox::layoutOverflowRect): Remove from layoutOverflowRect.
(RenderBox):
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::layoutBlock): This should call updateScrollInfoAfterLayout() intead of directly calling layer()->updateScrollInfoAfterLayout().
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutBlock): Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@151146 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/fast/flexbox/clear-overflow-before-scroll-update.html [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/page/FrameView.cpp
Source/WebCore/rendering/RenderBlock.cpp
Source/WebCore/rendering/RenderBlock.h
Source/WebCore/rendering/RenderBox.cpp
Source/WebCore/rendering/RenderBox.h
Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp
Source/WebCore/rendering/RenderGrid.cpp

index 66861c5..b5822de 100644 (file)
@@ -1,3 +1,12 @@
+2013-06-03  Roger Fong  <roger_fong@apple.com>
+
+        clearLayoutOverflow should never be called before calling layer()->updateScrollInfoAfterLayout().
+        https://bugs.webkit.org/show_bug.cgi?id=116689.
+
+        Reviewed by Ojan Vafai.
+        
+        * fast/flexbox/clear-overflow-before-scroll-update.html: Added.
+
 2013-06-03  Ryosuke Niwa  <rniwa@webkit.org>
 
         REGRESSION: Undoing autocorrection doesn't prevent a future autocorrection
diff --git a/LayoutTests/fast/flexbox/clear-overflow-before-scroll-update.html b/LayoutTests/fast/flexbox/clear-overflow-before-scroll-update.html
new file mode 100644 (file)
index 0000000..fcd080e
--- /dev/null
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+
+<style type="text/css">
+select { 
+    text-indent: -9999px;
+    overflow: hidden;
+       -webkit-appearance: none;
+       border-width: 5px;
+}
+
+span {
+    background-color: red;
+    width: 10px;
+    height: 10px;
+    display: inline-block;
+}
+
+body {
+    display: -webkit-box;
+}
+</style>
+
+</head>
+<body>
+       <select>
+       </select>
+       <span>
+       </span>
+</body>
+</html>
\ No newline at end of file
index 6b89782..e7c525b 100644 (file)
-2013-06-03  Paweł Forysiuk  <tuxator@o2.pl>
-
-        [harfbuzz] WebKit fails to build with MinGW compiler because of invalid cast in HarfBuzzShaper.cpp
-        https://bugs.webkit.org/show_bug.cgi?id=108373
-
-        Reviewed by Darin Adler.
-
-        Fix building on platforms where UChar is defined as wchar_t.
-
-
-        * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
-        (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
-
-2013-06-03  Ryosuke Niwa  <rniwa@webkit.org>
-
-        REGRESSION: Undoing autocorrection doesn't prevent a future autocorrection
-        https://bugs.webkit.org/show_bug.cgi?id=117165
-
-        Reviewed by Darin Adler.
-
-        The bug was caused by SpellingCorrectionCommand returning true in callsAppliedEditingInDoApply, which prevented
-        the command from being registered to the undo manager. This behavior was introduced in r148306 because TypingCommand
-        registeres itself to the undo manager in appliedEditing.
-
-        Fixed the bug by reverting both r122176 and r148306 and implementing a better fix for the bug 90487.
-        Instead of using InsertTextCommand, simply don't specify ReplaceSelectionCommand::PreventNesting so that the command
-        doesn't try to break out of a blockquote.
-
-        Also fix a bug in ReplaceSelectionCommand::completeHTMLReplacement uncovered by this change. We were only merging
-        text nodes at the beginning of the replaced content but not at the end. Call mergeTextNodesAroundPosition for the
-        second time to fix whitespace at the end of the replaced content.
-
-        Test: platform/mac/editing/spelling/autocorrection-respets-undo.html
-
-        * editing/CompositeEditCommand.cpp: Explictily check isTypingCommand now that callsAppliedEditingInDoApply has been
-        removed from SpellingCorrectionCommand and TypingCommand and SpellingCorrectionCommand were only classes that
-        returned true in callsAppliedEditingInDoApply. See r148306 that introduced this function.
-        (WebCore::CompositeEditCommand::apply):
-        * editing/CompositeEditCommand.h: Removed callsAppliedEditingInDoApply.
-        * editing/ReplaceSelectionCommand.cpp:
-        (WebCore::ReplaceSelectionCommand::completeHTMLReplacement):
-        * editing/SpellingCorrectionCommand.cpp: Removed callsAppliedEditingInDoApply, which was the culprit of this bug,
-        so that CompositeEditCommand::apply correctly registers this command with the undo manager.
-        (WebCore::SpellingCorrectionCommand::doApply): Use ReplaceSelectionCommand instead of TypingCommand as noted above.
-        * editing/SpellingCorrectionCommand.h:
-        * editing/TypingCommand.cpp: Deleted callsAppliedEditingInDoApply.
-        * editing/TypingCommand.h:
-
-2013-06-03  Anders Carlsson  <andersca@apple.com>
-
-        Reduce indentation in Widget::paint in WidgetMac.mm
-        https://bugs.webkit.org/show_bug.cgi?id=117171
-
-        Reviewed by Darin Adler.
-
-        Use an early return for the common case to reduce indentation in the complex case.
-
-        * platform/mac/WidgetMac.mm:
-        (WebCore::Widget::paint):
-
 2013-06-03  Roger Fong  <roger_fong@apple.com>
 
-        Unreviewed. AppleWin VS2010 build fix.
-
-        * WebCore.vcxproj/migrate-scripts.sh:
-
-2013-06-03  Roger Fong  <roger_fong@apple.com>
-
-        Nuke VS2005 files from the tree.
-        <rdar://problem/14042021>.
-
-        Rubberstamped by Brent Fulgham.
-
-        * WebCore.vcproj: Removed.
-        * WebCore.vcproj/MigrateScripts: Removed.
-        * WebCore.vcproj/QTMovieWin.vcproj: Removed.
-        * WebCore.vcproj/QTMovieWinCommon.vsprops: Removed.
-        * WebCore.vcproj/QTMovieWinDebug.vsprops: Removed.
-        * WebCore.vcproj/QTMovieWinDebugAll.vsprops: Removed.
-        * WebCore.vcproj/QTMovieWinDebugCairoCFLite.vsprops: Removed.
-        * WebCore.vcproj/QTMovieWinPostBuild.cmd: Removed.
-        * WebCore.vcproj/QTMovieWinPreBuild.cmd: Removed.
-        * WebCore.vcproj/QTMovieWinProduction.vsprops: Removed.
-        * WebCore.vcproj/QTMovieWinRelease.vsprops: Removed.
-        * WebCore.vcproj/QTMovieWinReleaseCairoCFLite.vsprops: Removed.
-        * WebCore.vcproj/WebCore.make: Removed.
-        * WebCore.vcproj/WebCore.sln: Removed.
-        * WebCore.vcproj/WebCore.submit.sln: Removed.
-        * WebCore.vcproj/WebCore.vcproj: Removed.
-        * WebCore.vcproj/WebCoreCFNetwork.vsprops: Removed.
-        * WebCore.vcproj/WebCoreCG.vsprops: Removed.
-        * WebCore.vcproj/WebCoreCURL.vsprops: Removed.
-        * WebCore.vcproj/WebCoreCairo.vsprops: Removed.
-        * WebCore.vcproj/WebCoreCommon.vsprops: Removed.
-        * WebCore.vcproj/WebCoreDebug.vsprops: Removed.
-        * WebCore.vcproj/WebCoreDebugAll.vsprops: Removed.
-        * WebCore.vcproj/WebCoreDebugCairoCFLite.vsprops: Removed.
-        * WebCore.vcproj/WebCoreGenerated.vcproj: Removed.
-        * WebCore.vcproj/WebCoreGeneratedCairo.vsprops: Removed.
-        * WebCore.vcproj/WebCoreGeneratedCommon.vsprops: Removed.
-        * WebCore.vcproj/WebCoreMediaQT.vsprops: Removed.
-        * WebCore.vcproj/WebCorePostBuild.cmd: Removed.
-        * WebCore.vcproj/WebCorePreBuild.cmd: Removed.
-        * WebCore.vcproj/WebCoreProduction.vsprops: Removed.
-        * WebCore.vcproj/WebCoreQuartzCore.vsprops: Removed.
-        * WebCore.vcproj/WebCoreRelease.vsprops: Removed.
-        * WebCore.vcproj/WebCoreReleaseCairoCFLite.vsprops: Removed.
-        * WebCore.vcproj/WebCoreTestSupport.vcproj: Removed.
-        * WebCore.vcproj/build-generated-files.sh: Removed.
-        * WebCore.vcproj/copyForwardingHeaders.cmd: Removed.
-        * WebCore.vcproj/copyWebCoreResourceFiles.cmd: Removed.
-        * WebCore.vcproj/migrate-scripts.sh: Removed.
-        * WebCore.vcproj/xcopy.excludes: Removed.
-
-2013-06-03  Chris Fleizach  <cfleizach@apple.com>
-
-        AX: WebKit should join substrings on single space when concatenating the accessible name of an element
-        https://bugs.webkit.org/show_bug.cgi?id=117100
-
-        Reviewed by Darin Adler.
-
-        When concatenating text from underneath an element append spaces between objects and trim whitespace.        
+        clearLayoutOverflow should never be called before calling layer()->updateScrollInfoAfterLayout().
+        https://bugs.webkit.org/show_bug.cgi?id=116689.
 
-        Modified existing tests reflect the new behavior.
+        Reviewed by Ojan Vafai.
 
-        * accessibility/AccessibilityNodeObject.cpp:
-        (WebCore::AccessibilityNodeObject::textUnderElement):
-
-2013-06-03  Zan Dobersek  <zdobersek@igalia.com>
-
-        Remove XMLMIMETypeRegExp
-        https://bugs.webkit.org/show_bug.cgi?id=116861
-
-        Reviewed by Alexey Proskuryakov.
-
-        Remove the XMLMIMETypeRegExp class. It contained a regular expression that was used
-        for checking for valid XML MIME types in DOMImplementation::isXMLMIMEType. The thread-global
-        instance was stored in ThreadGlobalData.
-
-        The class is removed, with DOMImplementation::isXMLMIMEType now testing that the given MIME type
-        is of proper form and contains only valid characters.
-
-        No new tests - no change in functionality.
-
-        * dom/DOMImplementation.cpp:
-        (WebCore::isValidXMLMIMETypeChar): A helper method that returns true only for characters that
-        are acceptable in a valid XML MIME type (apart from the forward slash).
-        (WebCore::DOMImplementation::isXMLMIMEType): Instead of using a regular expression, determine
-        whether the given string is a valid non-standard XML mime type by checking for the '+xml' ending,
-        proper forward slash position, and that no invalid characters are used in the string.
-        * dom/DOMImplementation.h:
-        * platform/ThreadGlobalData.cpp:
-        (WebCore::ThreadGlobalData::ThreadGlobalData): The OwnPtr<XMLMIMETypeRegExp> member variable is being removed.
-        (WebCore::ThreadGlobalData::destroy): Ditto.
-        * platform/ThreadGlobalData.h:
-        (WebCore): No need for the XMLMIMETypeRegExp forward declaration.
-        (ThreadGlobalData): Remove the OwnPtr<XMLMIMETypeRegExp> member variable.
-
-2013-06-03  Eduardo Lima Mitev  <elima@igalia.com>
-
-        [GTK] Use drawErrorUnderline() instead of Pango API for highlighting misspelled words
-        https://bugs.webkit.org/show_bug.cgi?id=115406
-
-        Reviewed by Martin Robinson.
+        Make sure that clearLayoutOverflow only gets called after layer()->updateScrollInfoAfterLayout().
+        Also move clearLayoutOverflow to RenderBlock so we can keep all the delayed scroll update logic together.
 
-        Replace pango API for drawing underline error on misspelled words, in favor of
-        drawErrorUnderline() method, removing the platform #ifdef check. As this was the
-        only usage of Pango in GraphicsContextCairo, it no longer includes pango.h.
-
-        * platform/graphics/cairo/GraphicsContextCairo.cpp:
-        (WebCore::GraphicsContext::drawLineForDocumentMarker): Removes
-        pango_cairo_show_error_underline() in favor of drawErrorUnderline().
-        * platform/graphics/cairo/DrawErrorUnderline.h:
-        (drawErrorUnderline): Fills the cairo path at the end of the drawing.
-
-2013-06-03  Chris Fleizach  <cfleizach@apple.com>
-
-        AX: MathML multiscripts not exposed in Accessibility
-        https://bugs.webkit.org/show_bug.cgi?id=115069
-
-        Reviewed by Tim Horton.
-
-        Math multiscript tags allow for an arbitrary number of prescripts and postscripts
-        around a base object. 
-
-        This MathML tag currently is not supported in the render tree, but that doesn't need to 
-        stop it from being exposed through accessibility, as a base object with an array of postscripts
-        and an array of prescripts.
-
-        Test: platform/mac/accessibility/mathml-multiscript.html
-
-        * accessibility/AccessibilityObject.h:
-        (WebCore::AccessibilityObject::isMathMultiscript):
-        (AccessibilityObject):
-        (WebCore::AccessibilityObject::mathPrescripts):
-        (WebCore::AccessibilityObject::mathPostscripts):
-        * accessibility/AccessibilityRenderObject.cpp:
-        (WebCore::AccessibilityRenderObject::isMathMultiscript):
-        (WebCore::AccessibilityRenderObject::isIgnoredElementWithinMathTree):
-        (WebCore::AccessibilityRenderObject::mathBaseObject):
-        (WebCore::AccessibilityRenderObject::mathPrescripts):
-        (WebCore::AccessibilityRenderObject::mathPostscripts):
-        * accessibility/AccessibilityRenderObject.h:
-        (AccessibilityRenderObject):
-        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
-        (-[WebAccessibilityObjectWrapper accessibilityPlatformMathSubscriptKey]):
-        (-[WebAccessibilityObjectWrapper accessibilityPlatformMathSuperscriptKey]):
-        (-[WebAccessibilityObjectWrapper accessibilityMathPostscripts]):
-        (-[WebAccessibilityObjectWrapper accessibilityMathPrescripts]):
-        (-[WebAccessibilityObjectWrapper accessibilityMathOverObject]):
-        (-[WebAccessibilityObjectWrapper accessibilityMathType]):
-        * accessibility/mac/WebAccessibilityObjectWrapperBase.h:
-        * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
-        (convertMathPairsToNSArray):
-        (-[WebAccessibilityObjectWrapperBase accessibilityPlatformMathSubscriptKey]):
-        (-[WebAccessibilityObjectWrapperBase accessibilityPlatformMathSuperscriptKey]):
-        (-[WebAccessibilityObjectWrapperBase accessibilityMathPostscriptPairs]):
-        (-[WebAccessibilityObjectWrapperBase accessibilityMathPrescriptPairs]):
-        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
-        (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
-        (-[WebAccessibilityObjectWrapper subrole]):
-        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
-        (-[WebAccessibilityObjectWrapper accessibilityPlatformMathSubscriptKey]):
-        (-[WebAccessibilityObjectWrapper accessibilityPlatformMathSuperscriptKey]):
-        * mathml/mathtags.in:
-
-2013-06-03  Bem Jones-Bey  <bjonesbe@adobe.com>
-
-        ASSERTION FAILED: node->parentNode(), Heap-use-after-free in WebCore::RenderBox::exclusionShapeOutsideInfo
-        https://bugs.webkit.org/show_bug.cgi?id=117155
-
-        Reviewed by David Hyatt.
-
-        Ported from a Blink patch by kenrb@chromium.org:
-
-        Clear floats on RenderBlocks that haven't had layout
-
-        WebKit revision 150084 creates a condition where a RenderBlock
-        can have a populated floating object list even when it has not
-        previously had layout. Since clearing of floats is optimized
-        to not search through parts of the tree that have not had layout,
-        references to floating objects were not being cleared in some cases.
-
-        This patch causes markAllDescendantsWithFloatsForLayout() to proceed
-        in the above case, in order to clear floats for a RenderBlock that has
-        not had layout.
-
-        Test: fast/block/float/float-list-changed-before-layout-crash.html
+        Test: fast/flexbox/clear-overflow-before-scroll-update.html
 
         * rendering/RenderBlock.cpp:
-        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
-
-2013-06-03  Bem Jones-Bey  <bjonesbe@adobe.com>
-
-        [CSS Shapes] inset-rectangle support for shape-outside
-        https://bugs.webkit.org/show_bug.cgi?id=116641
-
-        Reviewed by Alexandru Chiculita.
-
-        Implement support for using inset-rectangles in a shape-outside.
-
-        Tests: fast/exclusions/shape-outside-floats/shape-outside-floats-simple-inset-rectangle.html
-               fast/exclusions/shape-outside-floats/shape-outside-floats-simple-rounded-inset-rectangle.html
-
-        * rendering/ExclusionShape.cpp:
-        (WebCore::ExclusionShape::createExclusionShape): An inset-rectangle is
-            simply a rectangle with the dimensions calculated differently. So
-            just use ExclusionRectangle after converting the dimensions.
-        * rendering/ExclusionShapeOutsideInfo.cpp:
-        (WebCore::ExclusionShapeOutsideInfo::isEnabledFor): Enable inset
-            rectangles for shape-outside.
-
-2013-06-03  Tiancheng Jiang  <tijiang@rim.com>
-
-        [BlackBerry] Slider UX updates.
-        https://bugs.webkit.org/show_bug.cgi?id=117148
-
-        Reviewed by Rob Buis.
-
-        BlackBerry PR 342328
-        Internally Reviewed by Jeff Rogers.
-
-        Change image and reduce handle size when it is disabled.
-
-        * platform/blackberry/RenderThemeBlackBerry.cpp:
-        (WebCore::RenderThemeBlackBerry::paintSliderTrack):
-        (WebCore::RenderThemeBlackBerry::paintSliderThumb):
-
-2013-06-03  Commit Queue  <commit-queue@webkit.org>
-
-        Unreviewed, rolling out r151109.
-        http://trac.webkit.org/changeset/151109
-        https://bugs.webkit.org/show_bug.cgi?id=117145
-
-        "Plugins in WK2 aren't implemented yet." (Requested by
-        jturcotte on #webkit).
-
-        * platform/FileSystem.h:
-        * platform/qt/FileSystemQt.cpp:
-        (WebCore::unloadModule):
-        * plugins/mac/PluginPackageMac.cpp:
-        (WebCore::PluginPackage::fetchInfo):
-        (WebCore::PluginPackage::load):
-        * plugins/mac/PluginViewMac.mm:
-
-2013-06-03  Zalan Bujtas  <zalan@apple.com>
-
-        REGRESSION (r143070): Overflow:scroll content does not get clipped properly when the parent box has CSS3 filter on.
-        https://bugs.webkit.org/show_bug.cgi?id=116859
-
-        Reviewed by Simon Fraser.
-
-        Apply proper clipping for overflow:scroll, when parent dictates
-        full repaint to ensure correct CSS3 filter effect.
-
-        When a particular layer has 'pixel moving' CSS3 filter(drop shadow, blur), it sets clipToDirtyRect 
-        to false to force no clipping on itself and on the child layers too.
-        No clipping makes overflow:scroll behave like overflow:display, because
-        overflow::scroll gets clipped at RenderLayer level (as opposed to overflow::hidden).
-        This patch makes sure that both full repaint and clipping are ensured.
-
-        Tests: css3/filters/clipping-overflow-scroll-with-pixel-moving-effect-on-parent.html
-               css3/filters/clipping-overflow-scroll-with-pixel-moving-effect-on.html
-
-        * rendering/RenderLayer.cpp:
-        (WebCore::RenderLayer::paintLayerContents):
-
-2013-05-22  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
-
-        [Qt] Re-enable plugins on Mac.
-        https://bugs.webkit.org/show_bug.cgi?id=116622
-
-        Reviewed by Tor Arne Vestbø.
-
-        * platform/FileSystem.h:
-        * platform/qt/FileSystemQt.cpp:
-        (WebCore::unloadModule):
-          - Q_WS_* aren't defined since Qt5, use Q_OS_MACX instead.
-        * plugins/mac/PluginPackageMac.cpp:
-        (WebCore::PluginPackage::fetchInfo):
-        (WebCore::PluginPackage::load):
-          - createCFString now does the adoption itself.
-        * plugins/mac/PluginViewMac.mm:
-          - Add missing include.
-
-2013-05-22  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
-
-        [Qt][Mac] Allow drawing plugins with QWindow by always using an intermediate bitmap.
-        https://bugs.webkit.org/show_bug.cgi?id=116620
-
-        Reviewed by Tor Arne Vestbø.
-
-        The isolation of QWidget along with QPA in Qt5 is abstracting away the native CGContext
-        of a QWidget and we would need to create a non-public API to be able to achieve it.
-        Instead of adding complexity to this rarely touched code, always draw into an
-        intermediate bitmap that we then paint into our QPainter afterward.
-
-        - Use CGBitmapContextCreate to allocate a buffer directly instead of creating a QPixmap
-          and extract an CGContextRef out of it.
-        - Get rid of the "if (platformPluginWidget())" code path since we don't paint directly
-          into the QWidget's backing store anymore.
-        - Always use m_contextRef to draw the plugin instead of alternating between direct and
-          indirect drawing.
-
-        * plugins/PluginView.cpp:
-        (WebCore::PluginView::PluginView):
-        * plugins/PluginView.h:
-        * plugins/mac/PluginViewMac.mm:
-        (WebCore::createBitmapContext):
-        (WebCore::PluginView::platformStart):
-        (WebCore::PluginView::platformDestroy):
-        (WebCore::PluginView::setFocus):
-        (WebCore::PluginView::setNPWindowIfNeeded):
-        (WebCore::PluginView::updatePluginWidget):
-        (WebCore::PluginView::paint):
-        (WebCore::PluginView::invalidateRect):
-
-2013-05-22  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
-
-        [Qt][Mac] Remove Carbon and QuickDraw support for plugins.
-        https://bugs.webkit.org/show_bug.cgi?id=116619
-
-        Reviewed by Tor Arne Vestbø.
-
-        They are only enabled for 32bit builds of QtWebKit and are rarely tested.
-        Other browsers support them through a 32bit host process.
-        PluginViewMac.mm is only used by Qt since the Wx port was removed.
-
-        - Only support the Cocoa event model
-        - Only support the CoreGraphics drawing model
-        - Remove all NP_NO_CARBON and NP_NO_QUICKDRAW blocks in PluginViewMac.mm
-
-        * plugins/PluginView.cpp:
-        (WebCore::PluginView::setValue):
-        (WebCore::PluginView::PluginView):
-        * plugins/PluginView.h:
-        * plugins/mac/PluginViewMac.mm:
-        (WebCore::PluginView::platformStart):
-        (WebCore::PluginView::platformDestroy):
-        (WebCore::PluginView::platformGetValueStatic):
-        (WebCore::PluginView::setFocus):
-        (WebCore::PluginView::setNPWindowIfNeeded):
-        (WebCore::PluginView::paint):
-        (WebCore::PluginView::handleWheelEvent):
-        (WebCore::PluginView::handleMouseEvent):
-        (WebCore::PluginView::handleKeyboardEvent):
-
-2013-06-03  Praveen R Jadhav  <praveen.j@samsung.com>
-
-        'onended' event is not received in AudioBufferSourceNode and OscillatorNode.
-        https://bugs.webkit.org/show_bug.cgi?id=117132.
-
-        Reviewed by Christophe Dumez.
-
-        The listener argument is a PassRefPtr which becomes NULL after the call to
-        setAttributeEventListener() in setOnended(). This causes the m_hasEndedListener
-        boolean to be incorrectly initialized. This patch reverses the two statements so
-        that the m_hasEndedListener is updated before the call to setAttributeEventListener().
-
-        No new tests, already covered by existing tests.
-
-        * Modules/webaudio/AudioScheduledSourceNode.cpp:
-        (WebCore::AudioScheduledSourceNode::setOnended):
-
-2013-06-03  Rashmi Kulakarni  <rashmi.vijay@samsung.com>
-
-        [EFL]<select> element's text is clipped when a height is specified along with CSS line-height.
-        https://bugs.webkit.org/show_bug.cgi?id=114862
-
-        Reviewed by Gyuyoung Kim.
-
-        Fix <select> element getting clipped when element height becomes less than the line-height.
-        Set minimum height for <select> element.
-
-        No new tests, no behavior change.
-
-        * platform/efl/RenderThemeEfl.cpp:
-        (WebCore::RenderThemeEfl::adjustMenuListButtonStyle):
-
-2013-06-03  Charles Wei  <charles.wei@torchmobile.com.cn>
-
-        Webkit crashes while loading content from Application Cache.
-        https://bugs.webkit.org/show_bug.cgi?id=116814
-
-        Reviewed by Darin Adler.
-
-        With the refacor for 112722, which removes MainResourceLoader and moves the functionality to DocumentLoader,
-        the processing of appcache for main resource error (because of network error) was moved DocumentLoader::
-        mainReceivedError(), which was trigged by ResourceHandle::didFail->SubResourceLoader::didFail, which already
-        in a Finishing state after notifying the DocumentLoader of the load failure.
-
-        Before patch for 112722, the appcache for main resource error was in MainResourceLoader::didFail(),
-        which will start processing the potential fallback before notifying DocumentLoader and moving the the state
-        of the resource loader to finishing state.
-
-        So we should move maybeLoadFallbackForMainError out of DocumentLoader::mainReceivedError, and move it to
-        ApplicationCacheHost::maybeLoadFallbackForError, if the resource that has error is the main resource.
-
-        Test: http/tests/appcache/main-resource-fallback-for-network-error-crash.html
-
-        * loader/DocumentLoader.cpp:
-        (WebCore::DocumentLoader::mainReceivedError):
-        * loader/appcache/ApplicationCacheHost.cpp:
-        (WebCore::ApplicationCacheHost::maybeLoadFallbackForError):
-        * loader/appcache/ApplicationCacheHost.h:
-
-2013-06-02  Arunprasad Rajkumar  <arurajku@cisco.com>
-
-        [Qt] Move Qt port off legacy clipboard
-        https://bugs.webkit.org/show_bug.cgi?id=116416
-
-        Reviewed by Darin Adler.
-
-        No change in behavior, no new tests added.
-
-        * Target.pri: Removed ClipboardQt.h and EditorQt.cpp from compilation.
-        * dom/Clipboard.h:
-        * editing/qt/EditorQt.cpp: Removed.
-        * page/qt/EventHandlerQt.cpp: Use Clipboard::createForDragAndDrop().
-        (WebCore::EventHandler::createDraggingClipboard):
-        * platform/Pasteboard.h:
-        (WebCore::Pasteboard::clipboardData): Expose writable QMimeData* to outside, so that it is accessible
-        from DragClientQt.cpp and WebDragClientQt.cpp.
-        (WebCore::Pasteboard::invalidateWritableData): 
-        (WebCore::Pasteboard::isForDragAndDrop):
-        (WebCore::Pasteboard::isForCopyAndPaste):
-        * platform/qt/ClipboardQt.cpp:
-        (WebCore::Clipboard::createDragImage):
-        (WebCore::Clipboard::declareAndWriteDragImage):
-        * platform/qt/ClipboardQt.h: Removed.
-        * platform/qt/PasteboardQt.cpp: Moved required methods from ClipboardQt.cpp.
-        (WebCore::isTextMimeType):
-        (WebCore::isHtmlMimeType):
-        (WebCore::Pasteboard::create):
-        (WebCore::Pasteboard::createForCopyAndPaste):
-        (WebCore::Pasteboard::createPrivate):
-        (WebCore::Pasteboard::createForDragAndDrop):
-        (WebCore::Pasteboard::Pasteboard):
-        (WebCore::Pasteboard::~Pasteboard):
-        (WebCore::Pasteboard::generalPasteboard):
-        (WebCore::Pasteboard::isSelectionMode):
-        (WebCore::Pasteboard::setSelectionMode):
-        (WebCore::Pasteboard::readData):
-        (WebCore::Pasteboard::hasData):
-        (WebCore::Pasteboard::clear):
-        (WebCore::Pasteboard::readString):
-        (WebCore::Pasteboard::writeString):
-        (WebCore::Pasteboard::types):
-        (WebCore::Pasteboard::readFilenames):
-        (WebCore::Pasteboard::setDragImage):
-        (WebCore::Pasteboard::writePasteboard):
-
-2013-06-02  Brady Eidson  <beidson@apple.com>
-
-        Going "back" to a cached page from a page with a main resource error breaks scrolling, amongst other issues.
-        <rdar://problem/13751844> and https://bugs.webkit.org/show_bug.cgi?id=117112
-
-        Reviewed by Alexey Proskuryakov.
-
-        If a main resource load ends in error, the Document's parser is never cleared out.
-
-        If you then return to a CachedPage, we run the Document->clearParser() step for the 
-        old page and that incorrectly dispatches didFinishLoad for the previous page load 
-        in the middle of the load for the cached page.
-
-        The parser should never be needed after a load completes (even if it fails) and 
-        holding on to the parser after the page load failed but before a new navigation is
-        actually using unnecessary resources.
-
-        So we should just clear the parser right when the main resource fails.
-
-        Test: http/tests/loading/unfinished-load-back-to-cached-page-callbacks.html
-
-        * loader/DocumentLoader.cpp:
-        (WebCore::DocumentLoader::stopLoading): After canceling the main resource load, also clear the parser.
-
-2013-06-02  Csaba Osztrogonác  <ossy@webkit.org>
-
-        [CMake] Unreviewed buildfix after r148896 and r150940.
-
-        * CMakeLists.txt:
-
-2013-06-02  Alexey Proskuryakov  <ap@apple.com>
-
-        Unstyled XML viewer crashes when XML contains an element with id="tree"
-        https://bugs.webkit.org/show_bug.cgi?id=117117
-        <rdar://problem/13727267>
-
-        Reviewed by Darin Adler.
-
-        Test: http/tests/xmlviewer/dumpAsText/existing-tree-element-crash.xml
-
-        * xml/XMLViewer.css: Removed the rule to hide source document, as we no longer
-        keep it in the tree.
-
-        * xml/XMLViewer.js:
-        (prepareWebKitXMLViewer): Make sourceXML a detached tree, as otherwise it can
-        have ID conflicts with elements we add.
-        (sourceXMLLoaded): Removed some commented out code. Removed code that was checking
-        whether an extension took over XML display, as it makes no sense to duplicate this
-        functionality in an extension.
-
-2013-06-01  Chris Fleizach  <cfleizach@apple.com>
-
-        WebKit ignores aria-hidden when traversing nodes for name calculation
-        https://bugs.webkit.org/show_bug.cgi?id=117101
-
-        Reviewed by Tim Horton.
-
-        When calculating the inner text, aria-hidden should be considered.
-
-        Test: accessibility/text-role-with-aria-hidden-inside.html
-
-        * accessibility/AccessibilityNodeObject.cpp:
-        (WebCore::shouldUseAccessiblityObjectInnerText):
-
-2013-06-01  Darin Adler  <darin@apple.com>
-
-        window.speechSynthesis needs to be cheap
-        https://bugs.webkit.org/show_bug.cgi?id=117111
-        rdar://problem/14042030
-
-        Reviewed by Dean Jackson.
-
-        Add the traditional laziness to all of the speech synthesis code, wherever
-        it was omitted.
-
-        * Modules/speech/SpeechSynthesis.cpp:
-        (WebCore::SpeechSynthesis::create): Tweaked style (took out unneeded parentheses).
-        (WebCore::SpeechSynthesis::SpeechSynthesis): Don't create m_platformSpeechSynthesizer.
-        (WebCore::SpeechSynthesis::setPlatformSynthesizer): Clear state when changing the
-        platform speech synthesizer. Since this code is only used to set up a mock in the
-        test runner, the fact that it was wrong before was harmless, but still not good.
-        (WebCore::SpeechSynthesis::getVoices): Create the platform speech synthesizer here
-        so we can get the voice list from it.
-        (WebCore::SpeechSynthesis::startSpeakingImmediately): Create the platform speech
-        synthesizer here.
-        (WebCore::SpeechSynthesis::cancel): Check the platform speech synthesizer for
-        null and do nothing if it's not present.
-        (WebCore::SpeechSynthesis::pause): Ditto.
-        (WebCore::SpeechSynthesis::resume): Ditto.
-
-        * platform/PlatformSpeechSynthesizer.cpp:
-        (WebCore::PlatformSpeechSynthesizer::create): Don't call initializeVoiceList just
-        to create a synthesizer.
-        (WebCore::PlatformSpeechSynthesizer::voiceList): Do call initializeVoiceList once
-        when asked for a voice list.
-
-        * platform/PlatformSpeechSynthesizer.h: The voiceList function is no longer inlined.
-        The unused setVoiceList function has been removed. The initializeVoiceList is now
-        private rather than protected. Added a new m_voiceListIsInitialized boolean.
-
-        * platform/mac/PlatformSpeechSynthesizerMac.mm:
-        (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer): Initialize
-        m_voiceListIsInitialized to false.
-
-        * platform/mock/PlatformSpeechSynthesizerMock.cpp:
-        (WebCore::PlatformSpeechSynthesizerMock::create): Don't call initializeVoiceList just
-        to create a synthesizer.
-        (WebCore::PlatformSpeechSynthesizerMock::~PlatformSpeechSynthesizerMock):
-        Removed unneeded call to m_speakingFinishedTimer.stop() since timers automatically
-        stop when you destroy them.
-        (WebCore::PlatformSpeechSynthesizerMock::initializeVoiceList): Removed unneeded
-        call to m_voiceList.clear(), since the caller only calls this once when the
-        voice list is already clear.
-
-2013-06-01  Andreas Kling  <akling@apple.com>
-
-        Fix typo in r151071.
-
-        * dom/Element.cpp:
-        (WebCore::Element::attributeChanged):
-
-2013-06-01  Andreas Kling  <akling@apple.com>
-
-        Move Node::hasName() to Element.
-        <http://webkit.org/b/117107>
-
-        Reviewed by Antti Koivisto.
-
-        A Node can't have attributes, and thus can't have a name.
-        Use a bit on ElementData instead of (half) a Node flag to track whether we have a name.
-
-        * dom/Element.cpp:
-        (WebCore::Element::attributeChanged):
-        (WebCore::ElementData::ElementData):
-        * dom/Element.h:
-        (WebCore::ElementData::hasName):
-        (WebCore::Element::hasName):
-        * dom/Node.h:
-        (WebCore::Node::isEditingText):
-
-2013-06-01  Andreas Kling  <akling@apple.com>
-
-        Move Node::hasID() and hasClass() to Element.
-        <http://webkit.org/b/117104>
-
-        Reviewed by Ryosuke Niwa.
-
-        A Node can't have attributes, and thus can't have an ID or a class.
-        Move these to Element instead, and fix up a few call sites that called through on a Node*.
-
-        * dom/Element.h:
-        * dom/LiveNodeList.cpp:
-        (WebCore::LiveNodeList::namedItem):
-        * dom/Node.h:
-        * rendering/RenderLayer.cpp:
-        (WebCore::RenderLayer::name):
-        * rendering/RenderTreeAsText.cpp:
-        (WebCore::RenderTreeAsText::writeRenderObject):
-        (WebCore::writeRenderRegionList):
-
-2013-05-31  peavo@outlook.com  <peavo@outlook.com>
-
-        [Curl] Unable to download files.
-        https://bugs.webkit.org/show_bug.cgi?id=116150
-
-        Reviewed by Brent Fulgham.
-
-        Implemented basic download functionality for Curl.
-
-        * WebCore.vcproj/WebCore.vcproj: Added file.
-        * WebCore.vcxproj/WebCore.vcxproj: Added file.
-        * WebCore.vcxproj/WebCore.vcxproj.filters: Added file.
-        * platform/network/curl/CurlDownload.h: Added.
-        * platform/network/curl/CurlDownload.cpp: Added.
+        (WebCore::RenderBlock::layout): Remove call to clearLayoutOverflow.
+        (WebCore::RenderBlock::finishDelayUpdateScrollInfo): Add call to clearLayoutOverflow.
+        (WebCore::RenderBlock::updateScrollInfoAfterLayout): Ditto.
+        (WebCore::RenderBlock::clearLayoutOverflow): ASSERT(!gDelayUpdateScrollInfo) and move from RenderBox to RenderBlock to keep delayed scroll update logic together.
+        * rendering/RenderBlock.h:
+        (RenderBlock):
+        * rendering/RenderBox.cpp:
+        * rendering/RenderBox.h:
+        (WebCore::RenderBox::layoutOverflowRect): Remove from layoutOverflowRect.
+        (RenderBox): 
+        * rendering/RenderDeprecatedFlexibleBox.cpp:
+        (WebCore::RenderDeprecatedFlexibleBox::layoutBlock): This should call updateScrollInfoAfterLayout() intead of directly calling layer()->updateScrollInfoAfterLayout().
+        * rendering/RenderGrid.cpp:
+        (WebCore::RenderGrid::layoutBlock): Ditto.
 
 2013-05-31  Anders Carlsson  <andersca@apple.com>
 
index 112b8b5..21d6d4a 100644 (file)
@@ -3771,7 +3771,7 @@ void FrameView::forceLayoutForPagination(const FloatSize& pageSize, const FloatS
 
             if (!horizontalWritingMode)
                 overflow = overflow.transposedRect();
-            renderView->clearLayoutOverflow();
+            renderView->updateScrollAndclearLayoutOverflow();
             renderView->addLayoutOverflow(overflow); // This is how we clip in case we overflow again.
         }
     }
index 8b54f57..8255332 100644 (file)
@@ -1393,9 +1393,8 @@ void RenderBlock::finishDelayUpdateScrollInfo()
 
         for (DelayedUpdateScrollInfoSet::iterator it = infoSet->begin(); it != infoSet->end(); ++it) {
             RenderBlock* block = *it;
-            if (block->hasOverflowClip()) {
-                block->layer()->updateScrollInfoAfterLayout();
-            }
+            if (block->hasOverflowClip())
+                block->updateScrollAndclearLayoutOverflow();
         }
     }
 }
@@ -1408,14 +1407,14 @@ void RenderBlock::updateScrollInfoAfterLayout()
             // Workaround for now. We cannot delay the scroll info for overflow
             // for items with opposite writing directions, as the contents needs
             // to overflow in that direction
-            layer()->updateScrollInfoAfterLayout();
+            updateScrollAndclearLayoutOverflow();
             return;
         }
 
         if (gDelayUpdateScrollInfo)
             gDelayedUpdateScrollInfoSet->add(this);
         else
-            layer()->updateScrollInfoAfterLayout();
+            updateScrollAndclearLayoutOverflow();
     }
 }
 
@@ -1430,11 +1429,6 @@ void RenderBlock::layout()
     // Table cells call layoutBlock directly, so don't add any logic here.  Put code into
     // layoutBlock().
     layoutBlock(false);
-    
-    // It's safe to check for control clip here, since controls can never be table cells.
-    // If we have a lightweight clip, there can never be any overflow from children.
-    if (hasControlClip() && m_overflow)
-        clearLayoutOverflow();
 
     invalidateBackgroundObscurationStatus();
 }
@@ -1810,6 +1804,26 @@ void RenderBlock::computeOverflow(LayoutUnit oldClientAfterEdge, bool recomputeF
         toRenderFlowThread(this)->computeOverflowStateForRegions(oldClientAfterEdge);
 }
 
+void RenderBlock::updateScrollAndclearLayoutOverflow()
+{
+    ASSERT(!gDelayUpdateScrollInfo);
+
+    layer()->updateScrollInfoAfterLayout();
+
+    if (!hasControlClip())
+        return;
+
+    if (!m_overflow)
+        return;
+    
+    if (visualOverflowRect() == borderBoxRect()) {
+        m_overflow.clear();
+        return;
+    }
+    
+    m_overflow->setLayoutOverflow(borderBoxRect());
+}
+
 void RenderBlock::addOverflowFromBlockChildren()
 {
     for (RenderBox* child = firstChildBox(); child; child = child->nextSiblingBox()) {
index 9fcedb1..5b58f72 100644 (file)
@@ -554,6 +554,7 @@ protected:
 
 public:
     void computeOverflow(LayoutUnit oldClientAfterEdge, bool recomputeFloats = false);
+    void updateScrollAndclearLayoutOverflow();
 protected:
     virtual void addOverflowFromChildren();
     void addOverflowFromFloats();
index d7d8c72..2e816c5 100644 (file)
@@ -4225,19 +4225,6 @@ void RenderBox::addVisualOverflow(const LayoutRect& rect)
     m_overflow->addVisualOverflow(rect);
 }
 
-void RenderBox::clearLayoutOverflow()
-{
-    if (!m_overflow)
-        return;
-    
-    if (visualOverflowRect() == borderBoxRect()) {
-        m_overflow.clear();
-        return;
-    }
-    
-    m_overflow->setLayoutOverflow(borderBoxRect());
-}
-
 inline static bool percentageLogicalHeightIsResolvable(const RenderBox* box)
 {
     return RenderBox::percentageLogicalHeightIsResolvableFromBlock(box->containingBlock(), box->isOutOfFlowPositioned());
index a48b919..d4d983e 100644 (file)
@@ -191,7 +191,6 @@ public:
     void addVisualEffectOverflow();
     void addOverflowFromChild(RenderBox* child) { addOverflowFromChild(child, child->locationOffset()); }
     void addOverflowFromChild(RenderBox* child, const LayoutSize& delta);
-    void clearLayoutOverflow();
     
     void updateLayerTransform();
 
index 2b2eafd..2bdba9b 100644 (file)
@@ -378,8 +378,7 @@ void RenderDeprecatedFlexibleBox::layoutBlock(bool relayoutChildren, LayoutUnit)
 
     // Update our scrollbars if we're overflow:auto/scroll/hidden now that we know if
     // we overflow or not.
-    if (hasOverflowClip())
-        layer()->updateScrollInfoAfterLayout();
+    updateScrollInfoAfterLayout();
 
     // Repaint with our new bounds if they are different from our old bounds.
     repainter.repaintAfterLayout();
index bb4f29c..68cee56 100644 (file)
@@ -180,8 +180,7 @@ void RenderGrid::layoutBlock(bool relayoutChildren, LayoutUnit)
 
     // Update our scroll information if we're overflow:auto/scroll/hidden now that we know if
     // we overflow or not.
-    if (hasOverflowClip())
-        layer()->updateScrollInfoAfterLayout();
+    updateScrollInfoAfterLayout();
 
     repainter.repaintAfterLayout();