WebCore:
[WebKit-https.git] / WebCore / ChangeLog
index f3233d2..8393014 100644 (file)
@@ -1,3 +1,231 @@
+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