2010-12-07 Sergio Villar Senin <svillar@igalia.com>
[WebKit-https.git] / WebCore / ChangeLog
index fb95eb2..7591ee2 100644 (file)
@@ -1,3 +1,243 @@
+2010-12-07  Sergio Villar Senin  <svillar@igalia.com>
+
+        Reviewed by Xan Lopez.
+
+        [GTK] WebKitSoupCache fails to load resources when cache contents are externally removed
+        https://bugs.webkit.org/show_bug.cgi?id=50577
+
+        Try to download cached resources again if they are no longer
+        accesible by the cache.
+
+        * platform/network/soup/cache/soup-request-http.c:
+        (send_async_cb):
+        (webkit_soup_request_http_send_async):
+
+2010-12-06  MORITA Hajime  <morrita@google.com>
+
+        Reviewed by Dimitri Glazkov.
+
+        RenderIndicator subclasses should not change the render tree during layout.
+        https://bugs.webkit.org/show_bug.cgi?id=50026
+
+        The old code created shadow elements during a layout computation,
+        that makes the layout state inconsisntent and cause an assertion failure. 
+        This change created shadow elements before the layout to avoid  
+        state inconsistencies.
+        
+        Instead of creating shadows on demand, RenderMeter and
+        RenderProgress now create all necessary shadows before layouts,
+        and change its visibilities during the layout: Changing
+        visibilities doesn't trigger relayout and keep the state
+        consistent.
+        
+        RenderMeter uses new HidablePartElement for shadow elements,
+        which can toggle visibiliby between hidden and original value.
+
+        Test: fast/dom/HTMLMeterElement/meter-element-crash.html
+
+        * html/HTMLMeterElement.cpp:
+        (WebCore::HTMLMeterElement::attach): Calling updateFromElement()
+        * html/HTMLMeterElement.h:
+        * html/HTMLProgressElement.cpp:
+        (WebCore::HTMLProgressElement::attach): Calling updateFromElement()
+        * html/HTMLProgressElement.h:
+        * rendering/RenderIndicator.cpp:
+        * rendering/RenderIndicator.h:
+        * rendering/RenderMeter.cpp:
+        (WebCore::MeterPartElement::MeterPartElement): Added to hold a restorable visibility.
+        (WebCore::MeterPartElement::createForPart):
+        (WebCore::MeterPartElement::hide):
+        (WebCore::MeterPartElement::restoreVisibility):
+        (WebCore::MeterPartElement::updateStyleForPart):
+        (WebCore::MeterPartElement::saveVisibility):
+        (WebCore::RenderMeter::~RenderMeter):
+        (WebCore::RenderMeter::createPart): Extracted
+        (WebCore::RenderMeter::updateFromElement): Had a shadow generation.
+        (WebCore::RenderMeter::layoutParts): Removed shadow generation code.
+        (WebCore::RenderMeter::shouldHaveParts):
+        (WebCore::RenderMeter::valuePartRect): Adopted orientation.
+        (WebCore::RenderMeter::orientation): Morphed from isHorizontal()
+        (WebCore::RenderMeter::valuePseudoId): Adoptedn orientation
+        (WebCore::RenderMeter::barPseudoId): Adopted orientation.
+        * rendering/RenderMeter.h:
+        (WebCore::RenderMeter::shadowAttached):
+        * rendering/RenderProgress.cpp:
+        (WebCore::RenderProgress::updateFromElement): Had a shadow generation.
+        (WebCore::RenderProgress::layoutParts):
+        * rendering/RenderProgress.h:
+        * rendering/ShadowElement.cpp:
+        (WebCore::ShadowBlockElement::createForPart): Extracted initAsPart().
+        (WebCore::ShadowBlockElement::initAsPart): Extracted from createForPart().
+        * rendering/ShadowElement.h:
+
+2010-11-29  Mihai Parparita  <mihaip@chromium.org>
+
+        Reviewed by Adam Barth.
+
+        returning to a POST result within a frame does a GET instead of a POST
+        https://bugs.webkit.org/show_bug.cgi?id=10199
+        
+        FrameLoader::loadURLIntoChildFrame had a check for whether a frame
+        had a HistoryItem, and if so used that item's URL. However, that did
+        not handle the case where the HistoryItem had FormData and thus was the
+        result of a POST request. FrameLoader::navigateToDifferentDocument (now
+        renamed to loadDifferentDocumentItem) does all that, so just switch to
+        using it instead.
+        
+        Besides the bug fix, the only difference in behavior is that we use the
+        HistoryItem's URL instead of original URL when restoring it in a child
+        frame. This seems desirable too (for consistency with other browsers, and
+        so that we can avoid form double-submits for forms that that do
+        POST-then-redirect), and is tested by
+        fast/history/history-back-initial-vs-final-url.html.
+        
+        Tests: fast/history/history-back-initial-vs-final-url.html
+               http/tests/navigation/post-frames-goback1.html
+               http/tests/navigation/postredirect-frames-goback1.html
+
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::loadURLIntoChildFrame): Switch to using
+            loadDifferentDocumentItem. Also cleaned up ordering slightly (if
+            on the archive path, there's no need to do any of the other checks).
+        (WebCore::FrameLoader::loadDifferentDocumentItem): Renamed from
+            navigateToDifferentDocument so that calling it from loadItem and
+            loadURLIntoChildFrame flows more easily.
+        (WebCore::FrameLoader::loadSameDocumentItem): Similarly, renamed from
+            navigateWithinDocument.
+        (WebCore::FrameLoader::loadItem): Update callsites to the above methods.
+        * loader/FrameLoader.h:
+
+2010-12-07  Dan Bernstein  <mitz@apple.com>
+
+        Reviewed by Darin Adler.
+
+        Made tables repaint correctly in all writing modes
+        Part of: Make tables work with vertical text
+        https://bugs.webkit.org/show_bug.cgi?id=46417
+
+        Tests: fast/repaint/table-writing-modes-h.html
+               fast/repaint/table-writing-modes-v.html
+
+        * rendering/RenderTableSection.cpp:
+        (WebCore::RenderTableSection::paintObject): Compute the ranges of rows and
+        columns to repaint based on the logical extent of the repaint rect.
+
+2010-12-07  Alexey Marinichev  <amarinichev@chromium.org>
+
+        Reviewed by James Robinson.
+
+        [chromium] compositor lost context recovery fix
+        https://bugs.webkit.org/show_bug.cgi?id=50614
+
+        To test, load a page that triggers the compositor, kill the GPU
+        process and hover over a link to redraw and thus restart the GPU
+        process.  Without this patch it will assert in
+        ContentLayerChromium::updateTextureRect; with this patch it will not.
+
+        * platform/graphics/chromium/LayerChromium.cpp:
+        (WebCore::LayerChromium::setNeedsDisplay):
+
+2010-12-07  Anders Carlsson  <andersca@apple.com>
+
+        Fix the last clang++ build error.
+
+        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
+        (PlatformCALayer::animationForKey):
+        Cast the returned animation to the correct type.
+
+2010-12-07  Anders Carlsson  <andersca@apple.com>
+
+        Fix some clang++ build errors.
+
+        * platform/graphics/ca/GraphicsLayerCA.cpp:
+        (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
+        Remove unused variable.
+
+        * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
+        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
+        Fix constness of pointers.
+
+2010-12-07  Simon Fraser  <simon.fraser@apple.com>
+
+        Reviewed by Chris Marrin.
+
+        Fix the Color -> CGColorRef conversions for the debug colors
+        used for compositing layers.
+
+        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
+        (PlatformCALayer::setBackgroundColor):
+        (PlatformCALayer::setBorderColor):
+
+2010-12-07  Brian Weinstein  <bweinstein@apple.com>
+
+        Reviewed by John Sullivan.
+
+        Part of Layering Violation in ContextMenu
+        https://bugs.webkit.org/show_bug.cgi?id=50586
+        
+        ContextMenuMac.mm had a WebCoreMenuTarget class, which was responsible for wrapping
+        a ContextMenuItem, and calling through to the ContextMenuController to validate it
+        and call a function when it was selected.
+        
+        It was a layering violation to have this class here, because ContextMenu can't know
+        about ContextMenuController.
+        
+        This patch moves the class that wraps the ContextMenuItems to WebKit/mac/WebHTMLView.mm,
+        and sets up the menu targets there.
+
+        No change in behavior, no new tests.
+
+        * WebCore.exp.in: Added function that needs to be exported.
+        * platform/mac/ContextMenuMac.mm:
+        (WebCore::ContextMenu::ContextMenu): Don't set the sharedMenuTarget anymore.
+        (WebCore::ContextMenu::appendItem): Don't call setMenuItemTarget (this is done in WebKit now).
+        (WebCore::ContextMenu::insertItem): Ditto.
+
+2010-12-07  Simon Fraser  <simon.fraser@apple.com>
+
+        Reviewed by Dan Bernstein.
+
+        -webkit-transition Fails on Multiple text-shadow Shadows
+        https://bugs.webkit.org/show_bug.cgi?id=42281
+        
+        When transitioning multiple shadows, the blend function for
+        ShadowData dropped all but the first and last shadow because
+        of a failure to append to the end of the list. Fixed.
+
+        Test: transitions/multiple-text-shadow-transition.html
+
+        * page/animation/AnimationBase.cpp:
+        (WebCore::PropertyWrapperShadow::blend):
+
+2010-12-07  Simon Fraser  <simon.fraser@apple.com>
+
+        Reviewed by Beth Dakin.
+
+        CSS animation doesn't work for border-radius
+        https://bugs.webkit.org/show_bug.cgi?id=48340
+        
+        Include CSSPropertyBorderRadius in the list of shorthand
+        properties, so that the individual border-radius properties
+        get animated.
+
+        Test: transitions/border-radius-transition.html
+
+        * page/animation/AnimationBase.cpp:
+        (WebCore::addShorthandProperties):
+
+2010-12-07  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Kent Tamura.
+
+        Implement HTML5 hidden attribute
+        https://bugs.webkit.org/show_bug.cgi?id=40511
+
+        Test: fast/html/hidden-attr.html
+
+        * html/HTMLElement.cpp:
+        (WebCore::HTMLElement::mapToEntry): Pick up hidden as a global mapped attribute.
+        (WebCore::HTMLElement::parseMappedAttribute): Map hidden attribute to display: none.
+
 2010-12-07  Kenneth Russell  <kbr@google.com>
 
         Reviewed by David Levin.