WebCore:
[WebKit-https.git] / WebCore / ChangeLog
index 0195361..8393014 100644 (file)
@@ -1,3 +1,314 @@
+2008-04-29  David Hyatt  <hyatt@apple.com>
+
+        Implement the new box-reflect property in CSS.  This property enables real-time reflections on
+        objects (yes you can reflect <video>!).
+
+        Reviewed by Dan Bernstein
+
+        Test cases added in fast/reflections/
+
+        * GNUmakefile.am:
+        * WebCore.pro:
+        * WebCore.xcodeproj/project.pbxproj:
+        * WebCoreSources.bkl:
+        * css/CSSComputedStyleDeclaration.cpp:
+        (WebCore::):
+        (WebCore::valueForReflection):
+        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
+        * css/CSSParser.cpp:
+        (WebCore::CSSParser::parseValue):
+        (WebCore::CSSParser::parseReflect):
+        (WebCore::BorderImageParseContext::commitBorderImage):
+        (WebCore::CSSParser::parseBorderImage):
+        (WebCore::parseGradientColorStop):
+        (WebCore::CSSParser::parseTransform):
+        * css/CSSParser.h:
+        * css/CSSPropertyNames.in:
+        * css/CSSReflectValue.cpp: Added.
+        (WebCore::CSSReflectValue::cssText):
+        * css/CSSReflectValue.h: Added.
+        (WebCore::):
+        (WebCore::CSSReflectValue::CSSReflectValue):
+        (WebCore::CSSReflectValue::direction):
+        (WebCore::CSSReflectValue::offset):
+        (WebCore::CSSReflectValue::mask):
+        (WebCore::CSSReflectValue::setDirection):
+        (WebCore::CSSReflectValue::setOffset):
+        (WebCore::CSSReflectValue::setMask):
+        * css/CSSStyleSelector.cpp:
+        (WebCore::CSSStyleSelector::adjustRenderStyle):
+        (WebCore::CSSStyleSelector::applyProperty):
+        (WebCore::CSSStyleSelector::mapNinePieceImage):
+        * css/CSSStyleSelector.h:
+        * rendering/InlineFlowBox.cpp:
+        (WebCore::InlineFlowBox::placeBoxesVertically):
+        (WebCore::InlineFlowBox::paintMask):
+        * rendering/Length.h:
+        (WebCore::Length::calcFloatValue):
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::overflowHeight):
+        (WebCore::RenderBlock::overflowWidth):
+        (WebCore::RenderBlock::overflowLeft):
+        (WebCore::RenderBlock::overflowTop):
+        (WebCore::RenderBlock::overflowRect):
+        (WebCore::RenderBlock::layoutBlock):
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::setStyle):
+        (WebCore::RenderBox::paintMask):
+        (WebCore::RenderBox::imageChanged):
+        (WebCore::RenderBox::computeAbsoluteRepaintRect):
+        * rendering/RenderFlexibleBox.cpp:
+        (WebCore::RenderFlexibleBox::layoutBlock):
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::RenderLayer):
+        (WebCore::RenderLayer::~RenderLayer):
+        (WebCore::RenderLayer::updateLayerPositions):
+        (WebCore::RenderLayer::enclosingPositionedAncestor):
+        (WebCore::RenderLayer::enclosingTransformedAncestor):
+        (WebCore::RenderLayer::isTransparent):
+        (WebCore::transparencyClipBox):
+        (WebCore::RenderLayer::operator delete):
+        (WebCore::RenderLayer::destroy):
+        (WebCore::RenderLayer::removeOnlyThisLayer):
+        (WebCore::RenderLayer::insertOnlyThisLayer):
+        (WebCore::RenderLayer::paintLayer):
+        (WebCore::RenderLayer::updateZOrderLists):
+        (WebCore::RenderLayer::updateOverflowList):
+        (WebCore::RenderLayer::collectLayers):
+        (WebCore::RenderLayer::shouldBeOverflowOnly):
+        (WebCore::RenderLayer::styleChanged):
+        (WebCore::RenderLayer::reflectionLayer):
+        (WebCore::RenderLayer::createReflection):
+        (WebCore::RenderLayer::updateReflectionStyle):
+        * rendering/RenderLayer.h:
+        (WebCore::RenderLayer::hasReflection):
+        (WebCore::RenderLayer::reflection):
+        (WebCore::RenderLayer::paintingInsideReflection):
+        * rendering/RenderObject.cpp:
+        (WebCore::RenderObject::RenderObject):
+        (WebCore::RenderObject::requiresLayer):
+        (WebCore::RenderObject::setStyle):
+        (WebCore::RenderObject::updateImage):
+        (WebCore::RenderObject::reflectionBox):
+        (WebCore::RenderObject::reflectionOffset):
+        * rendering/RenderObject.h:
+        (WebCore::RenderObject::hasTransform):
+        (WebCore::RenderObject::setHasReflection):
+        (WebCore::RenderObject::hasReflection):
+        * rendering/RenderReplica.cpp: Added.
+        (WebCore::RenderReplica::RenderReplica):
+        (WebCore::RenderReplica::~RenderReplica):
+        (WebCore::RenderReplica::layout):
+        (WebCore::RenderReplica::calcPrefWidths):
+        (WebCore::RenderReplica::paint):
+        * rendering/RenderReplica.h: Added.
+        (WebCore::RenderReplica::renderName):
+        (WebCore::RenderReplica::requiresLayer):
+        * rendering/RenderStyle.cpp:
+        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
+        (WebCore::StyleRareNonInheritedData::operator==):
+        (WebCore::StyleRareNonInheritedData::reflectionDataEquivalent):
+        (WebCore::RenderStyle::diff):
+        (WebCore::RenderStyle::applyTransform):
+        * rendering/RenderStyle.h:
+        (WebCore::TranslateTransformOperation::apply):
+        (WebCore::StyleReflection::StyleReflection):
+        (WebCore::StyleReflection::operator==):
+        (WebCore::StyleReflection::operator!=):
+        (WebCore::StyleReflection::direction):
+        (WebCore::StyleReflection::offset):
+        (WebCore::StyleReflection::mask):
+        (WebCore::StyleReflection::setDirection):
+        (WebCore::StyleReflection::setOffset):
+        (WebCore::StyleReflection::setMask):
+        (WebCore::RenderStyle::boxReflect):
+        (WebCore::RenderStyle::setBoxReflect):
+        (WebCore::RenderStyle::initialBoxReflect):
+        * rendering/RenderTable.cpp:
+        (WebCore::RenderTable::layout):
+        (WebCore::RenderTable::paintMask):
+        * rendering/RenderTableCell.cpp:
+        (WebCore::RenderTableCell::requiresLayer):
+        (WebCore::RenderTableCell::paintMask):
+
+2008-04-29  Beth Dakin  <bdakin@apple.com>
+
+        Reviewed by Alice.
+
+        Initial implementation of the following ARIA roles: button, 
+        checkbox, heading, link, radio, textbox.
+
+        * html/HTMLAttributeNames.in: Add 'role' to list of attributes.
+
+        * page/AccessibilityObject.cpp:
+         When an ARIA role is set, the role overrides whatever the actual 
+element is when the element reports itself to the screen reader. So all of these isBlah functions report based on their roleValue now.
+        (WebCore::AccessibilityObject::isWebArea):
+        (WebCore::AccessibilityObject::isImageButton):
+        (WebCore::AccessibilityObject::isAnchor):
+        (WebCore::AccessibilityObject::isTextControl):
+        (WebCore::AccessibilityObject::isImage):
+        (WebCore::AccessibilityObject::isAttachment):
+        (WebCore::AccessibilityObject::isPasswordField):
+        (WebCore::AccessibilityObject::isCheckboxOrRadio):
+        (WebCore::AccessibilityObject::isHeading):
+        (WebCore::AccessibilityObject::isLink):
+
+        Check for ARIA information:
+        (WebCore::AccessibilityObject::headingLevel):
+        (WebCore::AccessibilityObject::anchorElement):
+        (WebCore::AccessibilityObject::actionElement):
+        (WebCore::AccessibilityObject::hasIntValue):
+        (WebCore::AccessibilityObject::intValue):
+        (WebCore::AccessibilityObject::stringValue):
+        (WebCore::AccessibilityObject::title):
+        (WebCore::AccessibilityObject::accessibilityIsIgnored):
+        (WebCore::AccessibilityObject::roleValue):
+
+        There are a few places in the code where it is important to identify the difference between ARIA and non-ARIA.
+        (WebCore::AccessibilityObject::isNativeImage):
+        (WebCore::AccessibilityObject::isNativeTextControl):
+        (WebCore::isARIAInput):
+        (WebCore::isARIAControl):
+
+        A lot of spots in the code used to cast to RenderTextControl to get information about the text inside the element. Now that non-native text controls can run this code with the ARIA role 'textbox', it needs to be as general as possible. 
+        (WebCore::AccessibilityObject::text): Still calls into 
+        RenderTextControl's text() for native text controls. Uses Element's 
+        innerText() for ARIA textboxes.
+        (WebCore::AccessibilityObject::textLength): Call 
+        AccessibilityObject's text() instead of RenderTextControl's.
+        (WebCore::AccessibilityObject::ariaSelectedTextDOMRange):
+        (WebCore::AccessibilityObject::selectedText):
+        (WebCore::AccessibilityObject::selectedTextRange):
+        (WebCore::AccessibilityObject::selectionStart):
+        (WebCore::AccessibilityObject::selectionEnd):
+        (WebCore::AccessibilityObject::setSelectedTextRange):
+        (WebCore::AccessibilityObject::setValue):
+        (WebCore::AccessibilityObject::visiblePositionForIndex):
+        (WebCore::AccessibilityObject::indexForVisiblePosition):
+        (WebCore::AccessibilityObject::textMarkerRangeForRange):
+        (WebCore::AccessibilityObject::textMarkerForIndex):
+        (WebCore::AccessibilityObject::indexForTextMarker):
+        (WebCore::AccessibilityObject::doAXRangeForLine):
+        (WebCore::AccessibilityObject::doAXRangeForIndex):
+        (WebCore::AccessibilityObject::doAXStringForRange):
+        (WebCore::AccessibilityObject::doAXBoundsForRange):
+        
+        Reports ARIA role. If the role is not valid or simply not set, return UnknownRole.
+        (WebCore::AccessibilityObject::ariaRoleAttribute):
+        
+        Added several new functions. Most of them existed before but were static, or have been added to reduce the dependency on RenderTextControl for a lot of the text functionality.
+        * page/AccessibilityObject.h:
+
+        Eliminated dependency on RenderTextControl cast. The information is generalized now and available directly through the AccessibilityObject.
+        * page/mac/AccessibilityObjectWrapper.mm:
+        (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
+        (-[AccessibilityObjectWrapper doAXAttributedStringForRange:]):
+
+2008-04-29  Timothy Hatcher  <timothy@apple.com>
+
+        Make the exceptions that the InspectorController catches log the
+        original file and line number, if present on the exception object.
+
+        Reviewed by Adam Roben.
+
+        * page/InspectorController.cpp:
+        (WebCore::InspectorController::callFunction): Pass the context to HANDLE_EXCEPTION.
+        (WebCore::InspectorController::~InspectorController): Ditto.
+        (WebCore::InspectorController::scriptObjectReady): Ditto.
+        (WebCore::InspectorController::addScriptResource): Ditto.
+        (WebCore::InspectorController::updateScriptResourceRequest): Ditto.
+        (WebCore::InspectorController::updateScriptResourceResponse): Ditto.
+        (WebCore::InspectorController::updateScriptResource): Ditto.
+        (WebCore::InspectorController::addDatabaseScriptResource): Ditto.
+        (WebCore::InspectorController::addScriptConsoleMessage): Ditto.
+        (WebCore::InspectorController::handleException): Take a context. Pull the line
+        and sourceURL properties off the exception if it is an object.
+        * page/InspectorController.h: Change handleException to take a context.
+
+2008-04-29  Timothy Hatcher  <timothy@apple.com>
+
+        Fixes a regression where the Page's debugger would not be reattached
+        when a new JSDOMWindow is created.
+
+        Reviewed by Sam Weinig.
+
+        * bindings/js/kjs_proxy.cpp:
+        (WebCore::KJSProxy::clear): Call attachDebugger after creating the JSDOMWindow.
+        * history/CachedPage.cpp:
+        (WebCore::CachedPage::restore): For the case where the CachedPage doesn't
+        contain a window, reattach the debugger to the new JSDOMWindow by calling
+        proxy->attachDebugger. Also restore the setPageGroupIdentifier.
+
+2008-04-29  Anatoli Papirovski  <apapirovski@mac.com>
+
+        Reviewed by Darin Adler.
+
+        Fix for https://bugs.webkit.org/show_bug.cgi?id=18355
+        Fixed RGB and RGBA parsing to ignore the declaration when the value is not
+        "either three integer values or three percentage values."
+
+        * css/CSSParser.cpp:
+        (WebCore::CSSParser::parseColorParameters):
+
+2008-04-29  Holger Hans Peter Freyther  <zecke@selfish.org>
+
+        Reviewed by Simon.
+
+        Fix crash when setHtml gets called from slots connected to QWebPage::unsupportedContent
+
+        Ben found this crash in the demo browser.
+
+        In void MainResourceLoader::continueAfterContentPolicy(PolicyAction contentPolicy,
+
+        case PolicyDownload:
+        frameLoader()->client()->download(m_handle.get(), request(), m_handle.get()->request(), r);
+        receivedError(interruptionForPolicyChangeError());
+
+        We are in a policy check, the download() call will call setHtml, which will start loading
+        the data into a frame. The loading will cancel all policy checks and call ResourceLoader::releaseResources
+        which will set m_frame to 0. Then we return and invoke interruptionForPolicyChangeError() which
+        will use the m_frame->loader() but it is gone. Do not call into receivedError and
+        interruptionForPolicyChangeError if we are gone anyway...
+
+        * loader/MainResourceLoader.cpp:
+        (WebCore::MainResourceLoader::continueAfterContentPolicy):
+
+2008-04-29  Holger Hans Peter Freyther  <zecke@selfish.org>
+
+        Reviewed by Simon.
+
+        Rely on auto-boxing of C++ for the QCursor c'tor
+
+        * platform/qt/CursorQt.cpp:
+
+2008-04-29  Holger Hans Peter Freyther  <zecke@selfish.org>
+
+        Reviewed by Simon.
+
+        Add the remaining cursors that defaulted to PointerCursor
+
+        * Resources/WebKitResources.qrc:
+        * platform/qt/CursorQt.cpp:
+        (WebCore::verticalTextCursor):
+        (WebCore::cellCursor):
+        (WebCore::contextMenuCursor):
+        (WebCore::copyCursor):
+        (WebCore::progressCursor):
+        (WebCore::aliasCursor):
+
+2008-04-29  Alice Liu  <alice.liu@apple.com>
+
+        Reviewed by Beth Dakin.
+
+        Comply with HTML5 spec about parsing tabindex property according to
+        integer parsing rules
+
+        Test: fast/parser/tabindex-parsing.html
+
+        * html/HTMLElement.cpp:
+        (WebCore::HTMLElement::parseMappedAttribute):
+
 2008-04-29  Tor Arne Vestbø  <tavestbo@trolltech.com>
 
         Reviewed by Simon.