blob: b554c3c83e86fbefb0352f0a09c1b72630f7e4e6 [file] [log] [blame]
2007-01-05 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- eliminated use of DeprecatedString for list item markers
- eliminated use of DeprecatedValueList for border style collapsing
- made many members private instead of protected or public
- reworked counter implementation to fix most of the CSS 2.1 counter tests;
made CounterNode be a simple non-polymorphic class, moved most counter-
specific code out of RenderObject into RenderCounter, changed the data
structure in RenderStyle to be more speed-efficient but less space-
efficient for nodes with counter styles
- fixed http://bugs.webkit.org/show_bug.cgi?id=11557
Tests: css2.1
- fixed a bug where counter text did not have text transform or text security
applied to it
Test: fast/css/counters/counter-text-security.html
Test: fast/css/counters/counter-text-transform.html
- improved handling of CSS content property values with data of the wrong
type; this probably needs a bit more refinement
Test: fast/css-generated-content/reset-content-to-initial-expected.txt
- fixed a bug where removing the value attribute from an HTMLLIElement would
set the list item's value to 0 instead of restoring it to normal
Test: fast/lists/li-values.html
- fixed a bug where changing the text security style from one style to another
would not change the displayed text
Test: fast/css/text-security.html
- fixed some problems handling long sequences of counter-related styles;
still needs more work and some super-large test cases to check if
recursive algorithms for these that will overflow stack remain
- added support for list styles decimal-leading-zero, hiragana, hirigana-iroha,
katakana, katakana-iroha, cjk-ideographic, armenian, and georgian
Test: fast/lists/decimal-leading-zero.html
- minor tweaks and bug fixes for other list styles, including range checking
* WebCore.exp: Updated for RenderListItem change.
* bridge/mac/WebCoreAXObject.mm: (-[WebCoreAXObject value]): Updated to use
String instead of DeprecatedString.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Removed
implementation for counter styles for now. We should probably restore it
later, but we need to make sure the returned list is separate from the
original list in the DOM -- modifying the list should not change the element
it was computed from.
* css/Counter.h: Removed unneeded empty constructor and destructor.
* css/cssstyleselector.cpp:
(WebCore::applyCounterList): Added. Stores counter directives in hash tables
that should allow us to efficiently implement dynamic counter changes. Full
support will have to wait for a future check-in.
(WebCore::CSSStyleSelector::applyProperty): Changed counter properties to
call applyCounterList. Reformatted the code to parse the content property for
changes to RenderStyle and to handle the case where some the items in the
content list don't generate any content.
* editing/visible_units.cpp:
* rendering/RenderBox.cpp:
* rendering/RenderFlexibleBox.cpp:
* rendering/RenderFlow.cpp:
* rendering/RenderSlider.cpp:
Added includes needed because of header changes.
* html/HTMLLIElement.H: Removed unneeded m_isValued.
* html/HTMLLIElement.cpp:
(WebCore::HTMLLIElement::parseMappedAttribute): To match test results seen
in WinIE, ignore values that are 0 or negative, and use new functions in
RenderListItem to communicate the lack of a valid value.
(WebCore::HTMLLIElement::attach): More of the same.
* rendering/CounterNode.h: Made CounterNode be a non-polymorphic class,
removing all the subclasses. Merged in CounterResetNode. Removed
m_total from CounterResetNode, because it isn't needed for any of
the styles (decimal-leading-zero always uses two digits). Removed
m_hasSeparator and m_willNeedLayout since they aren't needed any more.
Renamed m_count to m_countInParent for clarify, and named the list
links the same as their associated functions. Removed many functions
as well.
* rendering/CounterNode.cpp:
(WebCore::CounterNode::CounterNode): Added new fields.
(WebCore::CounterNode::computeCountInParent): Added. Used by recount.
(WebCore::CounterNode::recount): Simplified by removing unused parameter and the
"get next" idiom. Changed to be iterative instead of recursive so we can handle
arbitrarily long lists.
(WebCore::CounterNode::insertAfter): Moved here from CounterResetNode. Updated
for field name changes. Corrected rule for when to recount.
(WebCore::CounterNode::removeChild): Moved here from CounterResetNode. Changed
to only work on nodes without children. Corrected rule for when to recount.
(WebCore::nextInPreOrderAfterChildren): Added. For debugging only.
(WebCore::nextInPreOrder): Ditto.
(WebCore::showTreeAndMark): Ditto.
(showTree): Ditto.
* rendering/CounterListItem.h:
* rendering/CounterResetNode.h:
* rendering/CounterResetNode.cpp:
Marked ready to remove. I'll do the remove in a separate patch, since I have
to update a lot of different make files when I do.
* rendering/ListMarkerBox.cpp: (WebCore::ListMarkerBox::isText): Changed for the
change to RenderListMarker.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::addChildToFlow): Changed to use functions instead of
direct field access so the fields can be private and we don't need to be friends.
(WebCore::RenderBlock::getBaselineOfFirstLineBox): Ditto.
(WebCore::RenderBlock::getBaselineOfLastLineBox): Ditto.
* rendering/RenderBlock.h:
(WebCore::RenderBlock::initMaxMarginValues): Ditto.
(WebCore::RenderBlock::firstRootBox): Ditto.
(WebCore::RenderBlock::lastRootBox): Ditto.
* rendering/RenderBox.h:
(WebCore::RenderBox::setWidth): Ditto.
(WebCore::RenderBox::setHeight): Ditto.
* rendering/RenderButton.cpp:
(WebCore::RenderButton::addChild): Ditto.
* rendering/bidi.cpp:
(WebCore::RenderBlock::determineStartPosition): Ditto.
* rendering/RenderContainer.h: Renamed m_first and m_last to m_firstChild
and m_lastChild. Made them private instead of proected. Removed the
setFirstChild and setLastChild functions.
* rendering/RenderContainer.cpp:
(WebCore::RenderContainer::RenderContainer): Updated for field name change.
Changed all calls to get at fields directly instead of using functions.
(WebCore::RenderContainer::destroyLeftoverChildren): Ditto.
(WebCore::updateListMarkerNumbers): Updated for RenderListItem change.
(WebCore::RenderContainer::addChild): Changed to get at fields directly
instead of using functions. Also used release() since RenderText::setText
now takes PassRefPtr.
(WebCore::RenderContainer::removeChildNode): Changed to get at fields directly
instead of using functions.
(WebCore::RenderContainer::updatePseudoChildForObject): Create the anonymous
box only if at least one of of the items in the content list actually
generates content. Since a RenderCounter is a RenderText, don't bother making
a new style for it -- it just shares the style with its parent. Changed code
to use RenderImage::setCachedImage() instead of of setContentObject().
Added a call to setIsAnonymousImage() here, which was the only special thing
that setContentObject() used to do. Pass a reference to the counter to the
RenderCounter rather than a pointer. Pass document() as the node instead of
passing the element to RenderCounter, which makes it anonymous automatically,
and removed the setIsAnonymous call.
(WebCore::RenderContainer::appendChildNode): Chagned to get at fields directly
instead of using functions.
(WebCore::RenderContainer::insertChildNode): Ditto.
(WebCore::RenderContainer::layout): Ditto.
(WebCore::RenderContainer::removeLeftoverAnonymousBoxes): Ditto.
(WebCore::RenderContainer::positionForCoordinates): Ditto.
(WebCore::RenderContainer::addLineBoxRects): Ditto.
* rendering/RenderCounter.h: Removed unneeded layout override, never called on a
text node. Added override of originalString. Replaced CounterData* with a copy of
the CounterContent -- it's two atomic strings and an integer so it's efficient
enough to store all three in the render object, and this eliminates the lifetime
problems we could have if we used a pointer.
* rendering/RenderCounter.cpp: Removed duplicate copy of list marker code.
(WebCore::counterMaps): Moved these maps here from RenderObject.
(WebCore::previousSiblingOrParent): Added.
(WebCore::lastDescendant): Added.
(WebCore::previousInPreOrder): Added.
(WebCore::planCounter): Added.
(WebCore::findPlaceForCounter): Added.
(WebCore::counter): New name of function that was named RenderObject::findCounter.
Also uses a new algorithm that passes all the CSS 2.1 tests.
(WebCore::RenderCounter::RenderCounter): Changed to take a Document* instead of a
Node*, since at the moment counters are always anonymous.
(WebCore::RenderCounter::originalString): Added. This overrides the originalString
in the RenderText base class so that any text transforms will use the counter's
value. This code was previously in calcMinMaxWidth.
(WebCore::RenderCounter::calcMinMaxWidth): Changed to call setInternalString and
pass originalString -- this uses the counter's value from the counter tree.
(WebCore::destroyCounterNodeChildren): Added.
(WebCore::RenderCounter::destroyCounterNodes): Added. Called as needed from
RenderObject::destroy for objects that have counter nodes.
* rendering/RenderFlow.h: Made m_continuation private instead of protected.
* rendering/RenderImage.h: Removed unneeded includes, and unnecessary element()
function that casts to HTMLElement*. Made image() protected, and made the two
calcAspectRatio functions private. Removed setContentObject(). Renamed the
errorOccured() function to isErrorImage() and made it private.
* rendering/RenderImage.cpp:
(WebCore::RenderImage::RenderImage): Removed initialization of removed
m_selectionState field.
(WebCore::RenderImage::setCachedImage): Rearrange code so it won't try to
call isErrorImage() on a null image.
(WebCore::RenderImage::paint): Updated for name change.
* rendering/RenderListBox.h: Removed unneeded forward declarations.
* rendering/RenderListItem.h:
Renamed markerStringValue() to markerText() and made it return a String instead of
a DeprecatedString. Renamed m_prededfVal to m_explicitValue. Added booleans named
m_hasExplicitValue and m_isValueUpToDate and marked m_value mutable so it can be
computed in const member functions.
(WebCore::RenderListItem::value): Changed to update value on demand at the time
you ask for it.
(WebCore::RenderListItem::hasExplicitValue): Added. Use instead of magic -1 value
to indicate that the item does or does not have an explicit value.
(WebCore::RenderListItem::explicitValue): Added.
(WebCore::RenderListItem::setExplicitValue): Added.
(WebCore::RenderListItem::clearExplicitValue): Added.
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::RenderListItem): Updated to not use magic -1 values.
(WebCore::RenderListItem::setStyle): Removed call to RenderListMarker::setListItem
since it's not needed any more, and instead pass the list item to the constructor.
(WebCore::previousListItem): Made parameter const.
(WebCore::RenderListItem::calcValue): Restructed the function a bit.
(WebCore::RenderListItem::updateValueNow): Added. Calls calcValue.
(WebCore::RenderListItem::updateValue): Added. New name for resetValue(). Unlike
the old version, this no longer calculates the value until it's asked-for later.
(WebCore::RenderListItem::markerText): Changed to return String rather than a
DeprecatedString and to return a null string rather than empty string when there
is no marker.
* rendering/RenderListMarker.h: Added listMarkerText function -- common code shared
with anyone who needs to convert a value into text given a list style.
Changed constructor to take a RenderListItem and figure out the document from that.
Added isImage() and isText() functions and removed listImage() function. Changed the
type of the text() function from DeprecatedString to String. Removed the listItem()
and seListeItem() functions. Made the getRelativeMarkerRect() function private.
Renamed m_item to m_text and chagned it from DeprecatedString to String. Renamed
m_listImage to m_image.
* rendering/RenderListMarker.cpp:
(WebCore::toRoman): Added range checking to fix buffer overrun for large or negative
numbers. Rewrote to use a local UChar array and String rather than prepending to a
DeprecatedString.
(WebCore::toAlphabetic): Replaces toLetterString, and is more flexible since it takes
an alphabet array. Changed to match CSS 3 specification by using decimal numbering for
0 and negative numbers. Rewrote to use a local UChar array and String rather than
prepending to a DeprecatedString.
(WebCore::toHebrewUnder1000): Added. Helper function for Hebrew numbers so we can
handle numbers up to a million.
(WebCore::toHebrew): Changed to use toHebrewUnder1000, added a special case for
zero, negative, and too-large numbers.
(WebCore::toArmenianUnder10000): Added. Used by toArmenian.
(WebCore::toArmenian): Added.
(WebCore::toGeorgian): Added.
(WebCore::toCJKIdeographic): Added.
(WebCore::listMarkerText): Added. Moved the code here from calcMinMaxWidth, but added
support for text for the styles disc, circle, square, decimal-leading-zero, hiragana,
hirigana-iroha, katakana, katakana-iroha, cjk-ideographic, armenian, and georgian.
Also changed some of the styles to share the new toAlphabetic function.
(WebCore::RenderListMarker::RenderListMarker): Updated for name changes and list
item parameter.
(WebCore::RenderListMarker::~RenderListMarker): Updated for name changes.
(WebCore::RenderListMarker::setStyle): Updated for name changes.
(WebCore::RenderListMarker::isImage): Added. Useful helper that unifies the check
for no image and the error image.
(WebCore::RenderListMarker::paint): Updated for name changes to to use isImage()
and rearranged the code a bit.
(WebCore::RenderListMarker::imageChanged): Updated for name change
(WebCore::RenderListMarker::calcMinMaxWidth): Updated for name change, fixed a bug
where we'd leave the old text around if we were using an image-based marker. Also
changed the code to use isImage() instead of checking m_listImage.
(WebCore::RenderListMarker::calcWidth): Changed to use isImage().
(WebCore::RenderListMarker::lineHeight): Changed to use isImage().
(WebCore::RenderListMarker::baselinePosition): Changed to use isImage().
(WebCore::RenderListMarker::getRelativeMarkerRect): Changed to use isImage(),
restructured the code a little.
* rendering/RenderObject.h: Removed now-uneeded includes. Removed collectBorders()
and isFormElement(). Made remove() function and m_hasCounterNodeMap public so
we could remove friend declarations for RenderListItem and RenderView.
Moved findCounter() to become a private function inside RenderCounter.cpp.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::createObject): Fix bug where a contentData() with
CONTENT_NONE is treated as image content -- only look at the content property
if it has exactly one entry which is a CONTENT_OBJECT.
(WebCore::RenderObject::selectionStartEnd): Add const.
(WebCore::RenderObject::destroy): Moved counter-specific code to
RenderCounter::destroyCounterNodes.
(WebCore::RenderObject::recalcMinMaxWidths): Changed code to set m_recalcMinMax
near the top of the function -- the old code would potentially reset it after it
was set by the calcMinMaxWidths functions, and possibly skip a future needed
recalc. That came up in counter test cases. Removed unneeded boolean check right
after an assertion.
* rendering/RenderPart.h: Marked two virtual functions virtual for clarity.
* rendering/RenderReplaced.h: Made shouldPaint be protected, and made
m_intrinsicWidth, m_intrinsicHeight, and m_selectionState be private.
Also marked isSelected() const.
* rendering/RenderReplaced.cpp: Added newly-needed include.
(WebCore::RenderReplaced::RenderReplaced): Use constructor syntax.
(WebCore::RenderReplaced::isSelected): Made const and changed to call the
selectionStartEnd function in the straightforward way.
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::absoluteRects): Use functions instead of direct field
access so the fields can be private.
(WebCore::RenderSVGText::relativeBBox): Ditto.
* rendering/RenderStyle.h: Tweaked formatting. Changed names of CSS3 holders
to say "rare" instead, since it's not all CSS 3. Renamed CounterData to
CounterContent, since it's used inside ContentData. Changed names of fields in
ContentData to have m prefix. Moved content and counter fields into the rare
non-inherited data object. Removed unneeded assignment operator from a class
that already inherits from Shared which makes it start out noncopyable.
* rendering/RenderStyle.cpp: Name changes, plus:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
Updated for added fields (content, counter-reset, counter-increment).
(WebCore::StyleRareNonInheritedData::~StyleRareNonInheritedData): Ditto.
(WebCore::StyleRareNonInheritedData::operator==): Reformatted and sorted so it's
easy to see if any fields are missing.
(WebCore::operator!=): Added. Compares two CounterContent objects.
(WebCore::RenderStyle::arenaDelete): Removed code to handle content, which is
now in the rareNonInheritedData structure.
(WebCore::RenderStyle::RenderStyle): Ditto.
(WebCore::RenderStyle::inheritFrom): Ditto.
(WebCore::RenderStyle::operator==): Ditto.
(WebCore::RenderStyle::inheritedNotEqual):
(WebCore::RenderStyle::diff):
(WebCore::RenderStyle::contentDataEquivalent): Added case for counter,
which previously would be ignored when determining if content is equivalent.
(WebCore::RenderStyle::clearContent): Added.
(WebCore::RenderStyle::setContent): Updated for change in content location.
(WebCore::ContentData::clear): Changed algorithm so that it's not recursive
and thus can handle a very long list of ContentData.
(WebCore::operator==): Added. Compares two CounterDirective objects.
(WebCore::RenderStyle::counterDirectives): Added.
(WebCore::RenderStyle::accessCounterDirectives): Added.
* rendering/RenderTable.h: Made m_currentBorder const to better reflect the
paint algorithm.
* rendering/RenderTable.cpp: (WebCore::RenderTable::paint): Changed to use
Vector instead of DeprecatedValueList for the border styles, and to sort
rather than inserting in sorted order as we go. Put the code to loop through
the nodes and collect border styles here instead of in a RenderObject virtual
function. Also set m_currentBorder to 0 after the loop for greater clarity.
* rendering/RenderTableCell.h: Added a typedef for a vector of border values.
Removed the virtual collectBorders and replaced with the non-virtual named
collectBorderStyles. Also added a static member function named sortBorderStyles.
* rendering/RenderTableCell.cpp:
(WebCore::CollapsedBorders::CollapsedBorders): Removed unneeded constructor
parameter.
(WebCore::addBorderStyle): Changed to use a vector instead of a
DeprecatedValueList. Wrote out a loop since Vector doesn't have a contains
member function. Removed the code to insert the border at a sorted location;
instead we have a separate call to sort the border styles
(WebCore::RenderTableCell::collectBorderStyles): Renamed, and changed the
parameter type.
(WebCore::compareBorderStylesForQSort): Added.
(WebCore::RenderTableCell::sortBorderStyles): Added.
* rendering/RenderText.h: Changed StringImpl parameters in setText functions
to be PassRefPtr; added a new setInternalString function. Made a bunch of the
member functions private and made all the data members private instead of
protected.
* rendering/RenderText.cpp:
(WebCore::RenderText::setStyle): Restructure a bit for clarity. Fix case where
the old style has a different security than the new style. Use release() since
RenderText::setText now takes PassRefPtr. Always call cacheWidths here.
(WebCore::RenderText::setTextWithOffset): Changed to take the string as a
PassRefPtr instead of a raw pointer.
(WebCore::isInlineFlowOrEmptyText): Added.
(WebCore::RenderText::setInternalString): Refactored core of setText into a
separate protected member function that can be used RenderCounter. Changed
the text security square character to match what's used in list markers.
Changed the text transform switch statement so that gcc will warn us if we add
a new value and don't add a case for it.
(WebCore::RenderText::setText): Refactored most of the function into
setInternalString. Removed the call to cacheWidths -- that's now done in the
setStyle function only.
* rendering/RenderView.h:
* rendering/RenderView.cpp: (WebCore::RenderView::selectionStartEnd): Now const.
* rendering/RenderWidget.cpp: Added newly-needed include.
(WebCore::RenderWidget::setSelectionState): Don't bother setting m_selectionState
here since RenderReplaced::setSelectionState already does that.
2007-01-05 Anders Carlsson <acarlsson@apple.com>
Rubber stamped by Adam.
Move even more code to .cpp files.
* WebCore.xcodeproj/project.pbxproj:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::createWindow):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::canLoad):
(WebCore::FrameLoader::initialRequest):
(WebCore::FrameLoader::receivedData):
(WebCore::FrameLoader::setRequest):
(WebCore::FrameLoader::setResponse):
(WebCore::FrameLoader::willUseArchive):
(WebCore::FrameLoader::handleUnimplementablePolicy):
(WebCore::FrameLoader::cannotShowMIMEType):
(WebCore::FrameLoader::interruptionForPolicyChangeError):
(WebCore::FrameLoader::checkNavigationPolicy):
(WebCore::FrameLoader::checkContentPolicy):
(WebCore::FrameLoader::shouldReloadToHandleUnreachableURL):
(WebCore::FrameLoader::reloadAllowingStaleData):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::finishedLoading):
(WebCore::FrameLoader::continueAfterWillSubmitForm):
(WebCore::FrameLoader::submitForm):
(WebCore::FrameLoader::post):
(WebCore::FrameLoader::isReloading):
(WebCore::FrameLoader::loadEmptyDocumentSynchronously):
(WebCore::FrameLoader::loadResourceSynchronously):
(WebCore::FrameLoader::startLoadingMainResource):
(WebCore::FrameLoader::startLoading):
(WebCore::FrameLoader::cancelMainResourceLoad):
(WebCore::FrameLoader::identifierForInitialRequest):
(WebCore::FrameLoader::willSendRequest):
(WebCore::FrameLoader::didReceiveResponse):
(WebCore::FrameLoader::didReceiveData):
(WebCore::FrameLoader::didFailToLoad):
(WebCore::FrameLoader::originalRequest):
(WebCore::FrameLoader::receivedMainResourceError):
(WebCore::FrameLoader::callContinueFragmentScrollAfterNavigationPolicy):
(WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
(WebCore::FrameLoader::opened):
(WebCore::FrameLoader::dataURLBaseFromRequest):
(WebCore::FrameLoader::checkNewWindowPolicy):
(WebCore::FrameLoader::continueAfterNewWindowPolicy):
(WebCore::FrameLoader::continueAfterNavigationPolicy):
(WebCore::FrameLoader::callContinueLoadAfterNavigationPolicy):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
(WebCore::FrameLoader::callContinueLoadAfterNewWindowPolicy):
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
(WebCore::FrameLoader::sendRemainingDelegateMessages):
(WebCore::FrameLoader::requestFromDelegate):
(WebCore::FrameLoader::loadedResourceFromMemoryCache):
(WebCore::FrameLoader::applyUserAgent):
(WebCore::PolicyCheck::PolicyCheck):
(WebCore::PolicyCheck::clear):
(WebCore::PolicyCheck::set):
(WebCore::PolicyCheck::call):
(WebCore::PolicyCheck::clearRequest):
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* loader/MainResourceLoader.h:
* loader/ResourceLoader.h:
(WebCore::ResourceLoader::setIdentifier):
(WebCore::ResourceLoader::identifier):
* loader/mac/FrameLoaderMac.mm:
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
(WebCore::FrameLoader::referrer):
(WebCore::FrameLoader::didReceiveAuthenticationChallenge):
(WebCore::FrameLoader::didCancelAuthenticationChallenge):
(WebCore::FrameLoader::didChangeTitle):
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::dispatchCreatePage):
2007-01-05 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12079
Nested tables don't repaint properly when a certain row is added
Tests: fast/repaint/table-section-repaint.html
fast/repaint/table-section-overflow.html
Fixed repainting when table sections move during layout.
Made table cells' overflows propagate to table sections and gave tables
overflows.
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout): Added computation of horizontal and vertical overflows
based on the caption's and the table sections' overflows.
Added checks for table sections that change position during layout. When that happens,
we assume all sections below the first section that moved also moved, and repaint
everything downwards from there.
Added calls to repaintDuringLayoutIfMoved() for the caption.
Changed the way table sections are iterated over and added a FIXME to change it again
once bug 12124 is fixed.
(WebCore::RenderTable::paint): Changed to paint overflow.
(WebCore::RenderTable::outerBorderBottom):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::RenderTableSection):
(WebCore::RenderTableSection::layoutRows): Added code to compute the section's overflow
and a flag saying whether any cells in this section overflow.
(WebCore::RenderTableSection::paint): Changed to paint overflow. If any cell
in the section has overflow, then all cells are given a chance to paint. This is needed
because there can be internal overflow, and external overflow can be coming from any
cell inside.
* rendering/RenderTableSection.h:
(WebCore::RenderTableSection::overflowWidth):
(WebCore::RenderTableSection::overflowLeft):
2007-01-05 Beth Dakin <bdakin@apple.com>
Reviewed by Adam.
Fix for <rdar://problem/4863434> Wrong contextual menu appears for
textarea and input elements at http://www.apple.com/feedback/
ical.html
No test cases added since context menus are not in DRT.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::handleContextMenuEvent): Call
EventHandler's hitTestResultAtPoint() instead of just hit testing
the layer.
2007-01-05 Anders Carlsson <acarlsson@apple.com>
Rubber-stamped by Adam.
Move a bunch of platform independent code over to DocumentLoader.cpp
* WebCore.xcodeproj/project.pbxproj:
* loader/DocumentLoader.cpp:
(WebCore::canonicalizedTitle):
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::frameLoader):
(WebCore::DocumentLoader::~DocumentLoader):
(WebCore::DocumentLoader::setMainResourceData):
(WebCore::DocumentLoader::mainResourceData):
(WebCore::DocumentLoader::originalRequest):
(WebCore::DocumentLoader::originalRequestCopy):
(WebCore::DocumentLoader::request):
(WebCore::DocumentLoader::initialRequest):
(WebCore::DocumentLoader::actualRequest):
(WebCore::DocumentLoader::URL):
(WebCore::DocumentLoader::replaceRequestURLForAnchorScroll):
(WebCore::DocumentLoader::setRequest):
(WebCore::DocumentLoader::setMainDocumentError):
(WebCore::DocumentLoader::clearErrors):
(WebCore::DocumentLoader::mainReceivedError):
(WebCore::DocumentLoader::stopLoading):
(WebCore::DocumentLoader::setupForReplace):
(WebCore::DocumentLoader::commitIfReady):
(WebCore::DocumentLoader::finishedLoading):
(WebCore::DocumentLoader::setCommitted):
(WebCore::DocumentLoader::isCommitted):
(WebCore::DocumentLoader::setLoading):
(WebCore::DocumentLoader::isLoading):
(WebCore::DocumentLoader::commitLoad):
(WebCore::DocumentLoader::doesProgressiveLoad):
(WebCore::DocumentLoader::receivedData):
(WebCore::DocumentLoader::setupForReplaceByMIMEType):
(WebCore::DocumentLoader::updateLoading):
(WebCore::DocumentLoader::setFrame):
(WebCore::DocumentLoader::attachToFrame):
(WebCore::DocumentLoader::detachFromFrame):
(WebCore::DocumentLoader::prepareForLoadStart):
(WebCore::DocumentLoader::setIsClientRedirect):
(WebCore::DocumentLoader::isClientRedirect):
(WebCore::DocumentLoader::setPrimaryLoadComplete):
(WebCore::DocumentLoader::isLoadingInAPISense):
(WebCore::DocumentLoader::addResponse):
(WebCore::DocumentLoader::stopRecordingResponses):
(WebCore::DocumentLoader::title):
(WebCore::DocumentLoader::setLastCheckedRequest):
(WebCore::DocumentLoader::lastCheckedRequest):
(WebCore::DocumentLoader::triggeringAction):
(WebCore::DocumentLoader::setTriggeringAction):
(WebCore::DocumentLoader::responses):
(WebCore::DocumentLoader::setOverrideEncoding):
(WebCore::DocumentLoader::overrideEncoding):
(WebCore::DocumentLoader::setTitle):
(WebCore::DocumentLoader::urlForHistory):
* loader/DocumentLoader.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::committedLoad):
(WebCore::FrameLoader::setMainDocumentError):
(WebCore::FrameLoader::mainReceivedCompleteError):
(WebCore::FrameLoader::mainReceivedError):
(WebCore::FrameLoader::cancelledError):
(WebCore::FrameLoader::fileDoesNotExistError):
(WebCore::FrameLoader::mainResourceData):
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* loader/mac/DocumentLoaderMac.mm:
(WebCore::DocumentLoader::unreachableURL):
* loader/mac/FrameLoaderMac.mm:
2007-01-05 Brady Eidson <beidson@apple.com>
Reviewed by Eric Seidel
http://bugs.webkit.org/show_bug.cgi?id=12117
Fixes null deref when opening links from a gmail account
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::updateHistoryForStandardLoad): Null check m_currentHistoryItem
(WebCore::FrameLoader::updateHistoryForClientRedirect): Ditto
2007-01-05 Anders Carlsson <acarlsson@apple.com>
Move some now cross platform functions over to ResourceLoader.cpp in an attempt to fix the non Mac builds.
* loader/CachedResource.h:
(WebCore::CachedResource::setAllData):
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::resourceData):
* loader/ResourceLoader.h:
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didFinishLoading):
* loader/mac/LoaderFunctionsMac.mm:
* loader/mac/ResourceLoaderMac.mm:
* platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::platformDataSize):
* platform/network/ResourceHandle.h:
2007-01-05 David Hyatt <hyatt@apple.com>
Back out fix for 12114. I missed rule #5 in the float positioning part of the CSS2.1 spec. Keep all
the code cleanup though.
Reviewed by mitz
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::positionNewFloats):
2007-01-05 Anders Carlsson <acarlsson@apple.com>
Reviewed by Maciej.
Add a shared buffer class which is backed by either a vector or an NSData object. This object can also
be held in a custom NSData subclass. Use this in the loader wherever NSData was used.
* WebCore.exp:
* WebCore.xcodeproj/project.pbxproj:
* loader/CachedResource.h:
(WebCore::CachedResource::allData):
* loader/DocumentLoader.h:
* loader/FrameLoader.h:
* loader/ResourceLoader.h:
* loader/SubresourceLoaderClient.h:
(WebCore::SubresourceLoaderClient::didFail):
* loader/loader.cpp:
(WebCore::Loader::didFinishLoading):
* loader/loader.h:
* loader/mac/DocumentLoaderMac.mm:
(WebCore::DocumentLoader::setMainResourceData):
(WebCore::DocumentLoader::mainResourceData):
(WebCore::DocumentLoader::setupForReplaceByMIMEType):
* loader/mac/FrameLoaderMac.mm:
(WebCore::FrameLoader::mainResourceData):
* loader/mac/ImageDocumentMac.mm:
(WebCore::finishImageLoad):
* loader/mac/LoaderFunctionsMac.mm:
(WebCore::CheckCacheObjectStatus):
(WebCore::CachedResource::setAllData):
* loader/mac/NetscapePlugInStreamLoaderMac.mm:
(WebCore::NetscapePlugInStreamLoader::didFinishLoading):
* loader/mac/ResourceLoaderMac.mm:
(WebCore::ResourceLoader::addData):
(WebCore::ResourceLoader::resourceData):
(WebCore::ResourceLoader::clearResourceData):
(WebCore::ResourceLoader::didReceiveData):
(WebCore::ResourceLoader::willStopBufferingData):
* loader/mac/SubresourceLoaderMac.mm:
(WebCore::SubresourceLoader::didReceiveResponse):
(WebCore::SubresourceLoader::didFinishLoading):
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge getData:andResponse:forURL:]):
(-[WebCoreFrameBridge getAllResourceDatas:andResponses:]):
* platform/KURL.h:
* platform/SharedBuffer.cpp: Added.
(WebCore::SharedBuffer::SharedBuffer):
(WebCore::SharedBuffer::size):
(WebCore::SharedBuffer::data):
(WebCore::SharedBuffer::append):
(WebCore::SharedBuffer::clear):
(WebCore::SharedBuffer::clearPlatformData):
(WebCore::SharedBuffer::maybeTransferPlatformData):
(WebCore::SharedBuffer::hasPlatformData):
(WebCore::SharedBuffer::platformData):
* platform/SharedBuffer.h: Added.
* platform/mac/SharedBufferMac.mm: Added.
(-[SharedBufferData dealloc]):
(-[SharedBufferData finalize]):
(-[SharedBufferData initWithSharedBuffer:WebCore::]):
(-[SharedBufferData length]):
(-[SharedBufferData bytes]):
(WebCore::SharedBuffer::wrapNSData):
(WebCore::SharedBuffer::SharedBuffer):
(WebCore::SharedBuffer::createNSData):
(WebCore::SharedBuffer::hasPlatformData):
(WebCore::SharedBuffer::platformData):
(WebCore::SharedBuffer::platformDataSize):
(WebCore::SharedBuffer::maybeTransferPlatformData):
(WebCore::SharedBuffer::clearPlatformData):
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleClient.h:
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::bufferedData):
2007-01-05 Anders Carlsson <acarlsson@apple.com>
Reviewed by Adam.
http://bugs.webkit.org/show_bug.cgi?id=12120
REGRESSION(r18605): Safari snippet editor no longer works
* loader/mac/ResourceLoaderMac.mm:
(WebCore::ResourceLoader::willSendRequest):
Put back the code change in r18607.
* platform/mac/KURLMac.mm:
(WebCore::KURL::KURL):
Convert nil NSURLs to null KURLs.
2007-01-04 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Geoff.
http://bugs.webkit.org/show_bug.cgi?id=7296
Disable JavaScript exceptions when dynamically changing CSS properties.
* bindings/js/kjs_css.cpp:
(KJS::DOMCSSStyleDeclaration::put): Removed the Dashboard quirk logic.
* css/CSSMutableStyleDeclaration.cpp:
(WebCore::CSSMutableStyleDeclaration::setProperty): Don't raise an exception if parsing fails.
2007-01-05 Antti Koivisto <koivisto@iki.fi>
Reviewed by hyatt.
http://bugs.webkit.org/show_bug.cgi?id=12109
Fix layer visibility in some cases with nested layers.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateVisibilityStatus):
2007-01-05 Lars Knoll <lars@trolltech.com>
Make it compile with gcc 4.1
* rendering/RenderTableSection.h:
2007-01-04 Adam Roben <aroben@apple.com>
Reviewed by Geoff, cheered by others.
Dead code elimination.
All layout tests pass.
* page/EventHandler.h:
* page/mac/EventHandlerMac.mm:
* page/mac/WebCoreFrameBridge.h:
* page/mac/WebCoreFrameBridge.mm:
2007-01-04 Adam Roben <aroben@apple.com>
Reviewed by Geoff.
Fix: <rdar://4800335> REGRESSION: shift-tabbing from location field
goes to first field rather than last (businessweek.com)
Fix: <rdar://4800373> REGRESSION: tabbing from last control focuses
nothing visible (busniessweek.com)
Handle tabbing into/out of subframes in WebCore instead of letting
AppKit do the dirty work. This change also fixes a number of bugs and
changes some behavior to match other browsers:
- No frames receive a focus event when the page is first loaded.
- When a frame is clicked or focused with the keyboard, it receives
a focus event and all other frames receive a blur event.
- tabindex values are clamped to the range of a signed short, rather
than overflowing within an unsigned short.
- tabindex is respected on frame owner elements, even though HTML4
says it shouldn't be.
- Subframes will be focused when tabbing if they don't contain any
focusable elements within them (it would be nice to only focus the
frame if it has scrollbars).
Renamed SelectionDirection to FocusDirection and put it in its own file.
* page/FocusDirection.h: Added.
(WebCore::):
* page/mac/WebCoreFrameBridge.mm: Updated for renames.
(-[WebCoreFrameBridge nextKeyView]):
(-[WebCoreFrameBridge previousKeyView]):
(-[WebCoreFrameBridge nextKeyViewInsideWebFrameViews]):
(-[WebCoreFrameBridge previousKeyViewInsideWebFrameViews]):
Moved advanceFocus from EventHandler to FocusController and added
support for moving into/out of subframes..
* page/EventHandler.cpp: Moved advanceFocus to FocusController.
* page/EventHandler.h: Ditto.
* page/FocusController.cpp:
(WebCore::deepFocusableNode): Static helper function to find focusable
nodes nested within frames.
(WebCore::FocusController::advanceFocus): Moved from EventHandler and
rewritten to handle subframes.
* page/FocusController.h: Added advanceFocus declaration.
* dom/EventTargetNode.cpp:
(WebCore::EventTargetNode::defaultEventHandler): Updated for the move
of advanceFocus to FocusController.
* html/HTMLFrameOwnerElement.h:
(WebCore::HTMLFrameOwnerElement::isFrameOwnerElement): New method.
(WebCore::HTMLFrameOwnerElement::isKeyboardFocusable): New virtual
implementation used to trick Document::nextFocusableNode so that we
can focus frames.
Rewrote/renamed
Document::nextFocusableNode/Document::previousFocusableNode.
* dom/Document.cpp:
(WebCore::nextNodeWithExactTabIndex): New static helper
function.
(WebCore::previousNodeWithExactTabIndex): Ditto.
(WebCore::nextNodeWithGreaterTabIndex): Ditto.
(WebCore::previousNodeWithLowerTabIndex): Ditto.
(WebCore::Document::nextFocusableNode): Renamed from nextFocusedNode,
and rewritten with much simpler logic.
(WebCore::Document::previousFocusableNode): Ditto.
* dom/Document.h: Updated declarations for renames.
* page/mac/EventHandlerMac.mm: Updated for rename of SelectionDirection
to FocusDirection.
(WebCore::EventHandler::nextKeyViewInFrame): Updated for renames.
(WebCore::EventHandler::nextKeyViewInFrameHierarchy): Ditto.
(WebCore::EventHandler::nextKeyView): Ditto.
(WebCore::EventHandler::focusDocumentView): Added call to
setFocusedFrame when focusing the document view.
(WebCore::EventHandler::passMouseDownEventToWidget): Removed LOG_ERROR
when a nil NSView is returned from AppKit, as this is a fairly common
occurrence when a RenderWidget has a border.
(WebCore::EventHandler::passWheelEventToWidget): Added a nil-check of
the hit-tested NSView.
Changed storage of tabIndex to a signed short, and added clamping of
tabindex attribute values to match Firefox's behavior.
* dom/Node.h: Use a signed short to store m_tabIndex.
(WebCore::Node::isFrameOwnerElement): New method.
(WebCore::Node::tabIndex): Updated for signedness.
(WebCore::Node::setTabIndex): Ditto.
* html/HTMLAnchorElement.cpp: Remove implementation of tabIndex() so
that Node::tabIndex() will be called instead and return the clamped
value (which matches Firefox's behavior).
* html/HTMLAnchorElement.h: Ditto.
* html/HTMLAreaElement.cpp: Ditto.
* html/HTMLAreaElement.h: Ditto.
* html/HTMLGenericFormElement.cpp: Ditto.
* html/HTMLGenericFormElement.h: Ditto.
* html/HTMLObjectElement.cpp: Ditto.
* html/HTMLObjectElement.h: Ditto.
* html/HTMLElement.cpp:
(WebCore::HTMLElement::parseMappedAttribute): Clamp tabIndex to the
range of a signed short to match Firefox.
Added two new Chrome methods for transferring focus out of the
WebView.
* page/Chrome.cpp:
(WebCore::Chrome::canTakeFocus):
(WebCore::Chrome::takeFocus):
* page/Chrome.h:
* page/ChromeClient.h:
* platform/graphics/svg/SVGImageEmptyClients.h: Fixed typo "CromeClient" -> "ChromeClient".
(WebCore::SVGEmptyChromeClient::~SVGEmptyChromeClient):
(WebCore::SVGEmptyChromeClient::canTakeFocus):
(WebCore::SVGEmptyChromeClient::takeFocus):
* platform/graphics/svg/SVGImage.cpp:
(WebCore::SVGImage::setData): Fixed typo.
Miscellaneous:
* WebCore.exp: Updated/sorted symbols.
* WebCore.xcodeproj/project.pbxproj: Made FocusController.h Private so
WebKit can access it.
2007-01-04 Brady Eidson <beidson@apple.com>
Reverted Anders' change to fix the world
* loader/mac/ResourceLoaderMac.mm:
(WebCore::ResourceLoader::willSendRequest):
(WebCore::ResourceLoader::didReceiveResponse):
2007-01-04 Mitz Pettel <mitz@webkit.org>
Reviewed by Sam Weinig.
- http://bugs.webkit.org/show_bug.cgi?id=12078
Clean up RenderTable*
- Coding style cleanup.
- Canceled AutoTableLayout and FixedTableLayout being friend classes of
RenderTable. Instead, added public accessors to RenderTable for what
the table layout classes need and changed TableLayout::calcMinMaxWidth()
to take references to the caller's min and max widths.
- Made RenderTableSection's grid protected and moved code that accessed it
from RenderTable into RenderTableSection.
No test possible (no change to functionality).
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::calcMinMaxWidth):
(WebCore::AutoTableLayout::layout):
* rendering/AutoTableLayout.h:
* rendering/FixedTableLayout.cpp:
(WebCore::FixedTableLayout::calcWidthArray):
(WebCore::FixedTableLayout::calcMinMaxWidth):
(WebCore::FixedTableLayout::layout):
* rendering/FixedTableLayout.h:
* rendering/RenderTable.cpp:
(WebCore::RenderTable::RenderTable):
(WebCore::RenderTable::~RenderTable):
(WebCore::RenderTable::setStyle):
(WebCore::RenderTable::addChild):
(WebCore::RenderTable::calcWidth):
(WebCore::RenderTable::layout):
(WebCore::RenderTable::setCellWidths):
(WebCore::RenderTable::paint):
(WebCore::RenderTable::paintBoxDecorations):
(WebCore::RenderTable::calcMinMaxWidth):
(WebCore::RenderTable::splitColumn): Factored out the section work
to RenderTableSection::splitColumn().
(WebCore::RenderTable::appendColumn): Factored out the section work
to RenderTableSection::appendColumn().
(WebCore::RenderTable::colElement):
(WebCore::RenderTable::recalcSections):
(WebCore::RenderTable::removeChildNode):
(WebCore::RenderTable::calcBorderLeft):
(WebCore::RenderTable::calcBorderRight):
(WebCore::RenderTable::outerBorderTop):
(WebCore::RenderTable::outerBorderBottom):
(WebCore::RenderTable::outerBorderLeft):
(WebCore::RenderTable::outerBorderRight):
(WebCore::RenderTable::sectionAbove):
(WebCore::RenderTable::sectionBelow):
(WebCore::RenderTable::cellAbove):
(WebCore::RenderTable::cellBelow):
(WebCore::RenderTable::cellBefore):
(WebCore::RenderTable::getOverflowClipRect):
(WebCore::RenderTable::dump):
* rendering/RenderTable.h:
(WebCore::RenderTable::getColumnPos):
(WebCore::RenderTable::hBorderSpacing):
(WebCore::RenderTable::vBorderSpacing):
(WebCore::RenderTable::getRules):
(WebCore::RenderTable::cellPadding):
(WebCore::RenderTable::setCellPadding):
(WebCore::RenderTable::ColumnStruct::ColumnStruct):
(WebCore::RenderTable::columns): Added this accessor.
(WebCore::RenderTable::columnPositions): Added this accessor.
(WebCore::RenderTable::header):
(WebCore::RenderTable::footer):
(WebCore::RenderTable::firstBody):
(WebCore::RenderTable::numEffCols):
(WebCore::RenderTable::spanOfEffCol):
(WebCore::RenderTable::colToEffCol):
(WebCore::RenderTable::effColToCol):
(WebCore::RenderTable::bordersPaddingAndSpacing):
(WebCore::RenderTable::needsSectionRecalc):
(WebCore::RenderTable::setNeedsSectionRecalc): Renamed setNeedSectionRecalc()
to this.
(WebCore::RenderTable::hasSections):
(WebCore::RenderTable::recalcSectionsIfNeeded):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::RenderTableCell):
(WebCore::RenderTableCell::destroy):
(WebCore::RenderTableCell::updateFromElement):
(WebCore::RenderTableCell::styleOrColWidth):
(WebCore::RenderTableCell::computeAbsoluteRepaintRect):
(WebCore::RenderTableCell::absolutePosition):
(WebCore::RenderTableCell::baselinePosition):
(WebCore::RenderTableCell::setStyle):
(WebCore::compareBorders):
(WebCore::RenderTableCell::collapsedTopBorder):
(WebCore::RenderTableCell::paint):
(WebCore::collapsedBorderStyle):
(WebCore::CollapsedBorder::CollapsedBorder):
(WebCore::CollapsedBorders::CollapsedBorders):
(WebCore::CollapsedBorders::addBorder):
(WebCore::CollapsedBorders::nextBorder):
(WebCore::RenderTableCell::paintCollapsedBorder):
(WebCore::RenderTableCell::paintBackgroundsBehindCell):
(WebCore::RenderTableCell::paintBoxDecorations):
(WebCore::RenderTableCell::dump):
* rendering/RenderTableCell.h:
(WebCore::RenderTableCell::colSpan):
(WebCore::RenderTableCell::setColSpan):
(WebCore::RenderTableCell::rowSpan):
(WebCore::RenderTableCell::setRowSpan):
(WebCore::RenderTableCell::col):
(WebCore::RenderTableCell::setCol):
(WebCore::RenderTableCell::row):
(WebCore::RenderTableCell::setRow):
(WebCore::RenderTableCell::section):
(WebCore::RenderTableCell::table):
(WebCore::RenderTableCell::yPos):
(WebCore::RenderTableCell::setCellTopExtra):
(WebCore::RenderTableCell::setCellBottomExtra):
(WebCore::RenderTableCell::borderTopExtra):
(WebCore::RenderTableCell::borderBottomExtra):
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::destroy):
(WebCore::RenderTableRow::setStyle):
(WebCore::RenderTableRow::addChild):
(WebCore::RenderTableRow::layout):
(WebCore::RenderTableRow::getAbsoluteRepaintRect):
(WebCore::RenderTableRow::paint):
* rendering/RenderTableRow.h:
(WebCore::RenderTableRow::section):
(WebCore::RenderTableRow::table):
(WebCore::RenderTableRow::lineHeight):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::RenderTableSection):
(WebCore::RenderTableSection::destroy):
(WebCore::RenderTableSection::setStyle):
(WebCore::RenderTableSection::addChild):
(WebCore::RenderTableSection::ensureRows):
(WebCore::RenderTableSection::addCell):
(WebCore::RenderTableSection::setCellWidths):
(WebCore::RenderTableSection::calcRowHeight):
(WebCore::RenderTableSection::layoutRows):
(WebCore::RenderTableSection::lowestPosition):
(WebCore::RenderTableSection::rightmostPosition):
(WebCore::RenderTableSection::leftmostPosition):
(WebCore::RenderTableSection::calcOuterBorderTop):
(WebCore::RenderTableSection::calcOuterBorderBottom):
(WebCore::RenderTableSection::calcOuterBorderLeft):
(WebCore::RenderTableSection::calcOuterBorderRight):
(WebCore::RenderTableSection::paint):
(WebCore::RenderTableSection::recalcCells):
(WebCore::RenderTableSection::clearGrid):
(WebCore::RenderTableSection::numColumns):
(WebCore::RenderTableSection::appendColumn): Added. Moved code from
RenderTable::appendColumn() into here.
(WebCore::RenderTableSection::splitColumn): Added. Moved code from
RenderTable::splitColumn() into here.
(WebCore::RenderTableSection::removeChildNode):
(WebCore::RenderTableSection::dump):
* rendering/RenderTableSection.h:
(WebCore::RenderTableSection::renderName):
(WebCore::RenderTableSection::isTableSection):
(WebCore::RenderTableSection::lineHeight):
(WebCore::RenderTableSection::table):
(WebCore::RenderTableSection::cellAt):
(WebCore::RenderTableSection::numRows):
(WebCore::RenderTableSection::recalcCellsIfNeeded):
(WebCore::RenderTableSection::needsCellRecalc):
(WebCore::RenderTableSection::setNeedsCellRecalc):
(WebCore::RenderTableSection::getBaseline):
* rendering/TableLayout.h:
2007-01-04 Anders Carlsson <acarlsson@apple.com>
Reviewed by Adam.
http://bugs.webkit.org/show_bug.cgi?id=12120
REGRESSION(r18605): Safari snippet editor no longer works
* loader/mac/ResourceLoaderMac.mm:
(WebCore::ResourceLoader::willSendRequest):
Fix logic so applewebdata: URLs no longer cause the underlying URL to be fetched .
2007-01-04 Anders Carlsson <acarlsson@apple.com>
Reviewed by Adam.
Move all remaining instances of NSURLRequest over to ResourceRequest (well, pretty much all).
* loader/MainResourceLoader.h:
* loader/ResourceLoader.h:
* loader/SubresourceLoader.h:
* loader/mac/FrameLoaderMac.mm:
(WebCore::FrameLoader::startLoadingMainResource):
* loader/mac/MainResourceLoaderMac.mm:
(WebCore::MainResourceLoader::loadNow):
(WebCore::MainResourceLoader::load):
(WebCore::MainResourceLoader::setDefersLoading):
* loader/mac/ResourceLoaderMac.mm:
(WebCore::ResourceLoader::load):
* loader/mac/SubresourceLoaderMac.mm:
(WebCore::SubresourceLoader::load):
(WebCore::SubresourceLoader::create):
* platform/graphics/svg/SVGImage.cpp:
(WebCore::SVGImage::setData):
* platform/network/mac/ResourceRequestMac.mm:
(WebCore::ResourceRequest::doUpdatePlatformRequest):
2007-01-04 Anders Carlsson <acarlsson@apple.com>
Reviewed by Brady.
Move more NSURLRequests over to ResourceRequests.
* loader/DocumentLoader.h:
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* loader/MainResourceLoader.h:
* loader/ResourceLoader.h:
(WebCore::ResourceLoader::request):
* loader/SubresourceLoader.h:
* loader/mac/FrameLoaderMac.mm:
(WebCore::FrameLoader::willSendRequest):
(WebCore::FrameLoader::opened):
(WebCore::FrameLoader::requestFromDelegate):
(WebCore::FrameLoader::loadedResourceFromMemoryCache):
(WebCore::FrameLoader::loadResourceSynchronously):
* loader/mac/MainResourceLoaderMac.mm:
(WebCore::MainResourceLoader::willSendRequest):
(WebCore::MainResourceLoader::continueAfterContentPolicy):
(WebCore::MainResourceLoader::loadNow):
(WebCore::MainResourceLoader::setDefersLoading):
* loader/mac/ResourceLoaderMac.mm:
(WebCore::ResourceLoader::load):
(WebCore::ResourceLoader::willSendRequest):
(WebCore::ResourceLoader::didReceiveResponse):
(WebCore::ResourceLoader::cancelledError):
* loader/mac/SubresourceLoaderMac.mm:
(WebCore::SubresourceLoader::willSendRequest):
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::dispatchWillSendRequest):
(WebCore::SVGEmptyFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache):
* platform/network/ResourceRequest.cpp:
(WebCore::ResourceRequest::isNull):
* platform/network/ResourceRequest.h:
2007-01-04 Brady Eidson <beidson@apple.com>
Reviewed by Mark Rowe
http://bugs.webkit.org/show_bug.cgi?id=12119
Changing the behavior of HistoryItem::pageCache() this morning also necessitated
changing the behavior of HistoryItem::hasPageCache()
* history/HistoryItem.cpp:
(WebCore::HistoryItem::hasPageCache): Add the same pendingRelease check pageCache() has
2007-01-04 Mitz Pettel <mitz@webkit.org>
Reviewed by Sam Weinig.
- fix http://bugs.webkit.org/show_bug.cgi?id=12043
Another assertion failure in WebCore::RenderObject::drawBorder
Test: fast/borders/border-radius-huge-assert.html
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::addRoundedRectClip): Fixed the check for border radii
that do not fit in the given width or height to work with radii that sum up to
more than MAX_INT.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::paintBorder): Ditto.
2007-01-04 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/4861080>
GMail Editor: Crash when dropping content into certain list items
A rendering bug (4907469) creates unwanted space at the top of a
list item when its contents are wrapped in span. Dropping content
inside that space causes a crash because positionForCoordinates
fails there and the code that creates drag carets can't handle it.
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge _visiblePositionForPoint:]): Added the
that's inside click handling for the case where
positionForCoordinates returns null. We should also fix
positionForCoordinates but that's less important: now its only side
effect is that a no-op drop is performed instead of a snap back
when you drop the contents of one of these list items its own
unwanted space.
2007-01-04 Beth Dakin <bdakin@apple.com>
Reviewed by Adam.
Fix for http://bugs.webkit.org/show_bug.cgi?id=12118 REGRESSION
(Context menus): No context menu displayed when clicking outside a
short document
No test case added since we do not currently have a way to automate
context menus.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::handleContextMenuEvent): If the
hit test does not find a node, use the document node.
2007-01-04 Anders Carlsson <acarlsson@apple.com>
Reviewed by Adam.
Convert NSURLRequest to ResourceRequest in a few places
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* loader/MainResourceLoader.h:
* loader/mac/FrameLoaderMac.mm:
(WebCore::FrameLoader::identifierForInitialRequest):
(WebCore::FrameLoader::willUseArchive):
* loader/mac/MainResourceLoaderMac.mm:
(WebCore::MainResourceLoader::isPostOrRedirectAfterPost):
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::download):
(WebCore::SVGEmptyFrameLoaderClient::willUseArchive):
2007-01-04 David Hyatt <hyatt@apple.com>
Bug 12114 fix, make sure left/right floats are allowed to go above
other floats of opposite alignment.
Reviewed by aroben
fast/block/float/independent-align-positioning.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::positionNewFloats):
2007-01-04 Anders Carlsson <acarlsson@apple.com>
Reviewed by Brady.
http://bugs.webkit.org/show_bug.cgi?id=12116
REGRESSION: ASSERTION FAILED: URL in +[WebDataProtocol _webIsDataProtocolURL:]
<rdar://problem/4908910>
REGRESSION: After switching to Bookmarks view, the browser window is completely empty (no bookmarks are displayed)
* platform/network/ResourceResponse.h:
(WebCore::ResourceResponse::ResourceResponse):
Initialize m_isNull
2007-01-04 Beth Dakin <bdakin@apple.com>
Reviewed by Adam.
Turn on WebCore context menus.
* dom/EventTargetNode.cpp:
(WebCore::EventTargetNode::defaultEventHandler): Turn on WebCore
menus.
* page/ContextMenuClient.h: Name change and have the
former getCustomMenuFromDefaultItems function return the
PlatformMenuDescription since it feels funny to have the client set
the new platform description.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::handleContextMenuEvent): Above
name change.
(WebCore::ContextMenuController::contextMenuItemSelected): Use
local variable.
* platform/ContextMenu.cpp:
(WebCore::createAndAppendSpeechSubMenu): Fix silly mistake -- make
"Stop speaking" actually stop speaking.
* platform/graphics/svg/SVGImageEmptyClients.h: Name change and
have the former getCustomMenuFromDefaultItems function return the
PlatformMenuDescription since it feels funny to have the client set
the new platform description.
(WebCore::SVGEmptyContextMenuClient::getCustomMenuFromDefaultItems):
2007-01-04 Mitz Pettel <mitz@webkit.org>
Reviewed and landed by Brady
- fix http://bugs.webkit.org/show_bug.cgi?id=12087
REGRESSION: Reproducible crash going back in Back/Forward history
Allow a PageCache that is pending release to be resurrected by its
HistoryItem instead of creating a new PageCache. This avoids the
the condition of having two PageCaches for the same HistoryItem, one
current and one pending release but not yet released, which was causing
this and other bugs before.
Replaced the vector of PageCaches pending release with a set of
HistoryItems that are pending release of their PageCache.
* history/HistoryItem.cpp:
(WebCore::HistoryItem::HistoryItem):
(WebCore::HistoryItem::setHasPageCache): Check for an existing PageCache
pending release, and if found, resurrect it by canceling the release.
(WebCore::HistoryItem::pageCache): Return 0 if the PageCache is pending
release.
(WebCore::itemsWithPendingPageCacheToRelease): Renamed pendingPageCacheToRelease
to this. This method now returns a HashSet of HistoryItems that have scheduled
their PageCaches for release.
(WebCore::HistoryItem::releasePageCachesOrReschedule): Renamed releasePageCache
to this.
(WebCore::HistoryItem::releasePageCache): Added. Actually closes and releases
the PageCache.
(WebCore::HistoryItem::releaseAllPendingPageCaches): Rolled closeObjectsInPendingPageCaches
into this method.
(WebCore::HistoryItem::scheduleRelease):
(WebCore::HistoryItem::cancelRelease): Added.
* history/HistoryItem.h: Removed unused declaration of scheduleReleaseTimer()
* history/HistoryItemTimer.cpp:
(WebCore::HistoryItemTimer::HistoryItemTimer):
(WebCore::HistoryItemTimer::callReleasePageCachesOrReschedule):
* history/HistoryItemTimer.h:
2007-01-04 David Hyatt <hyatt@apple.com>
Just make the synthetic bold offset always be 1.0. This fixes bug
9534, synthetic bold looks doubled.
Reviewed by olliej
* platform/mac/FontDataMac.mm:
(WebCore::FontData::platformInit):
2007-01-04 Anders Carlsson <acarlsson@apple.com>
Reviewed by Brady.
Convert almost all occurrences of NSURLResponse to ResourceResponse.
* WebCore.exp:
* loader/DocumentLoader.h:
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* loader/MainResourceLoader.h:
* loader/NetscapePlugInStreamLoader.h:
* loader/ResourceLoader.h:
* loader/SubresourceLoader.h:
* loader/loader.h:
* loader/mac/FrameLoaderMac.mm:
(WebCore::FrameLoader::willSendRequest):
(WebCore::FrameLoader::didReceiveResponse):
(WebCore::FrameLoader::opened):
(WebCore::FrameLoader::sendRemainingDelegateMessages):
(WebCore::FrameLoader::loadedResourceFromMemoryCache):
(WebCore::FrameLoader::loadResourceSynchronously):
* loader/mac/LoaderFunctionsMac.mm:
(WebCore::CheckCacheObjectStatus):
* loader/mac/MainResourceLoaderMac.mm:
(WebCore::MainResourceLoader::isPostOrRedirectAfterPost):
(WebCore::MainResourceLoader::willSendRequest):
(WebCore::MainResourceLoader::continueAfterContentPolicy):
(WebCore::MainResourceLoader::didReceiveResponse):
(WebCore::MainResourceLoader::loadNow):
* loader/mac/NetscapePlugInStreamLoaderMac.mm:
(WebCore::NetscapePlugInStreamLoader::didReceiveResponse):
* loader/mac/ResourceLoaderMac.mm:
(WebCore::ResourceLoader::willSendRequest):
(WebCore::ResourceLoader::didReceiveResponse):
(WebCore::ResourceLoader::response):
* loader/mac/SubresourceLoaderMac.mm:
(WebCore::SubresourceLoader::willSendRequest):
(WebCore::SubresourceLoader::didReceiveResponse):
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::download):
(WebCore::SVGEmptyFrameLoaderClient::dispatchWillSendRequest):
(WebCore::SVGEmptyFrameLoaderClient::dispatchDidReceiveResponse):
(WebCore::SVGEmptyFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache):
(WebCore::SVGEmptyFrameLoaderClient::incrementProgress):
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleClient.h:
* platform/network/ResourceResponse.cpp:
(WebCore::ResourceResponse::isHTTP):
* platform/network/ResourceResponse.h:
(WebCore::ResourceResponse::ResourceResponse):
(WebCore::ResourceResponse::isNull):
* platform/network/mac/ResourceResponseMac.mm:
(WebCore::ResourceResponse::nsURLResponse):
(WebCore::ResourceResponse::doUpdateResourceResponse):
2007-01-03 Adele Peterson <adele@apple.com>
Reviewed by Darin.
- Fix for <rdar://problem/4887422>
http://bugs.webkit.org/show_bug.cgi?id=11848
REGRESSION (SearchField): Search field on developer.apple.com not drawn with top/bottom borders (11848)
Test: fast/forms/searchfield-heights.html
Override the border and the height for search fields that use -webkit-appearance: searchfield.
* css/html4.css: Use box-sizing: border-box for search fields. We don't need to have the border-box quirk
that we use for the other text fields for this control.
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::searchFieldSizes): Added.
(WebCore::RenderThemeMac::setSearchFieldSize): Added.
(WebCore::RenderThemeMac::adjustSearchFieldStyle): Override the border and the height of the search field.
2007-01-04 Lars Knoll <lars@trolltech.com>
* platform/qt/TemporaryLinkStubs.cpp:
(WebCore::inputElementAltText):
(WebCore::contextMenuItemTagOpenLinkInNewWindow):
(WebCore::contextMenuItemTagDownloadLinkToDisk):
(WebCore::contextMenuItemTagCopyLinkToClipboard):
(WebCore::contextMenuItemTagOpenImageInNewWindow):
(WebCore::contextMenuItemTagDownloadImageToDisk):
(WebCore::contextMenuItemTagCopyImageToClipboard):
(WebCore::contextMenuItemTagOpenFrameInNewWindow):
(WebCore::contextMenuItemTagCopy):
(WebCore::contextMenuItemTagGoBack):
(WebCore::contextMenuItemTagGoForward):
(WebCore::contextMenuItemTagStop):
(WebCore::contextMenuItemTagReload):
(WebCore::contextMenuItemTagCut):
(WebCore::contextMenuItemTagPaste):
(WebCore::contextMenuItemTagNoGuessesFound):
(WebCore::contextMenuItemTagIgnoreSpelling):
(WebCore::contextMenuItemTagLearnSpelling):
(WebCore::contextMenuItemTagSearchWeb):
(WebCore::contextMenuItemTagLookUpInDictionary):
(WebCore::contextMenuItemTagOpenLink):
(WebCore::contextMenuItemTagIgnoreGrammar):
(WebCore::contextMenuItemTagSpellingMenu):
(WebCore::contextMenuItemTagShowSpellingPanel):
(WebCore::contextMenuItemTagCheckSpelling):
(WebCore::contextMenuItemTagCheckSpellingWhileTyping):
(WebCore::contextMenuItemTagCheckGrammarWithSpelling):
(WebCore::contextMenuItemTagFontMenu):
(WebCore::contextMenuItemTagBold):
(WebCore::contextMenuItemTagItalic):
(WebCore::contextMenuItemTagUnderline):
(WebCore::contextMenuItemTagOutline):
(WebCore::contextMenuItemTagWritingDirectionMenu):
(WebCore::contextMenuItemTagDefaultDirection):
(WebCore::contextMenuItemTagLeftToRight):
(WebCore::contextMenuItemTagRightToLeft):
Added missing stubs.
2007-01-04 Don Gibson <dgibson77@gmail.com>
Reviewed by Alexey.
http://bugs.webkit.org/show_bug.cgi?id=11900:
Windows build bustage
* WebCore.vcproj/WebCore/WebCore.vcproj:
* bridge/win/FrameWin.cpp:
(WebCore::FrameWin::FrameWin):
* platform/graphics/BitmapImage.h:
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::setPlatformStrokeColor):
* platform/graphics/Image.h:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawRect):
(WebCore::adjustLineToPixelBoundaries):
(WebCore::GraphicsContext::drawLine):
(WebCore::GraphicsContext::drawEllipse):
(WebCore::GraphicsContext::strokeArc):
(WebCore::GraphicsContext::drawConvexPolygon):
* platform/graphics/cairo/ImageCairo.cpp:
(WebCore::BitmapImage::checkForSolidColor):
(WebCore::BitmapImage::draw):
(WebCore::BitmapImage::drawTiled):
* platform/graphics/win/ImageWin.cpp:
(WebCore::BitmapImage::initPlatformData):
(WebCore::BitmapImage::invalidatePlatformData):
(WebCore::Image::loadPlatformResource):
* platform/win/FontWin.cpp:
(WebCore::Font::drawGlyphs):
* platform/win/TemporaryLinkStubs.cpp:
(WebCore::userIdleTime):
(WebCore::BitmapImage::drawTiled):
(WebCore::BitmapImage::getHBITMAP):
(WebCore::ContextMenu::~ContextMenu):
(WebCore::ContextMenu::appendItem):
(WebCore::ContextMenuItem::ContextMenuItem):
(WebCore::ContextMenuItem::releasePlatformDescription):
(WebCore::ContextMenuItem::type):
(WebCore::ContextMenuItem::setType):
(WebCore::ContextMenuItem::setAction):
(WebCore::ContextMenuItem::setTitle):
(WebCore::ContextMenuItem::setSubMenu):
(WebCore::ContextMenuItem::setChecked):
(WebCore::ContextMenuItem::setEnabled):
(WebCore::DocumentLoader::originalRequest):
(WebCore::DocumentLoader::request):
(WebCore::DocumentLoader::unreachableURL):
(WebCore::DocumentLoader::getResponseRefreshAndModifiedHeaders):
(WebCore::DocumentLoader::replaceRequestURLForAnchorScroll):
(WebCore::DocumentLoader::setCommitted):
(WebCore::DocumentLoader::isLoading):
(WebCore::DocumentLoader::prepareForLoadStart):
(WebCore::DocumentLoader::isClientRedirect):
(WebCore::DocumentLoader::title):
(WebCore::DocumentLoader::urlForHistory):
(WebCore::Editor::markMisspellingsAfterTypingToPosition):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::referrer):
(WebCore::FrameLoader::dataURLBaseFromRequest):
(WebCore::FrameLoader::opened):
(WebCore::FrameLoader::applyUserAgent):
(WebCore::GraphicsContext::strokeRect):
(WebCore::IconDatabase::iconForPageURL):
(WebCore::IconDatabase::defaultIcon):
(WebCore::IconDatabase::retainIconForPageURL):
(WebCore::IconDatabase::releaseIconForPageURL):
(WebCore::PageCache::close):
(WebCore::ResourceHandle::willLoadFromCache):
(WebCore::SearchPopupMenu::saveRecentSearches):
(WebCore::SearchPopupMenu::loadRecentSearches):
(WebCore::SearchPopupMenu::SearchPopupMenu):
2007-01-04 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=11611
REGRESSION: No http referer header sent on XMLHttpRequest
Test: http/tests/xmlhttprequest/referer.html
* loader/FrameLoader.h: Removed FrameLoader::addExtraFieldsToRequest(NSMutableURLRequest*, bool, bool),
which is no longer used.
* loader/mac/FrameLoaderMac.mm: Ditto.
* WebCore.exp: Do not export this method (WebKit doesn't use it).
* loader/mac/SubresourceLoaderMac.mm:
(WebCore::SubresourceLoader::create): Rewrote to create the request with ResourceRequest::nsURLRequest.
* platform/PlatformString.h:
(WebCore::operator!): Added. Previously, attempts to use operator! on a String would result
with an NSString* conversion, which never returns nil. This was causing a problem in SubresourceLoader::create().
2007-01-04 Lars Knoll <lars@trolltech.com>
Make the Qt build compile again.
* platform/ContextMenu.cpp:
(WebCore::ContextMenu::populate):
2007-01-03 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=5164
Non-integer percentages are incorrectly rounded down in Safari
Test: fast/css/percentage-non-integer.html
Added floating point constructor and accessors to Length for use with
Percent lengths only. The raw value of a percent length is the integer
part of a constant multiple of the original double value. The constant
is percentScaleFactor, which is currently 128.
Added assertions that the correct constructors and accessors are used
depending on the type: the double-based percent(), setValue() and Length()
for the Percent type, and the integer-based value(), setValue() and Length()
for all other types.
calcValue() and calcMinValue() work the same as before, regardless of the
type.
Added helpers for testing if the value is 0, positive, negative or undefined
without having to check the type first.
Added raw value accessors. These are useful for doing integer math and
comparisons with scaled percent values or doing Length type-agnostic math.
Changed the rest of the code to use the appropriate accessors and helpers.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForLength):
(WebCore::primitiveValueFromLength):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/cssstyleselector.cpp:
(WebCore::convertToLength):
(WebCore::CSSStyleSelector::applyProperty):
(WebCore::CSSStyleSelector::mapBackgroundSize):
(WebCore::CSSStyleSelector::mapBackgroundXPosition):
(WebCore::CSSStyleSelector::mapBackgroundYPosition):
* platform/StringImpl.cpp:
(WebCore::parseLength):
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn):
(WebCore::AutoTableLayout::fullRecalc):
(WebCore::AutoTableLayout::calcMinMaxWidth):
(WebCore::AutoTableLayout::calcEffectiveWidth):
(WebCore::AutoTableLayout::layout):
(WebCore::AutoTableLayout::calcPercentages):
* rendering/FixedTableLayout.cpp:
(WebCore::FixedTableLayout::calcWidthArray):
(WebCore::FixedTableLayout::layout):
* rendering/Length.h:
(WebCore::Length::Length):
(WebCore::Length::value):
(WebCore::Length::rawValue):
(WebCore::Length::percent):
(WebCore::Length::setValue):
(WebCore::Length::setRawValue):
(WebCore::Length::calcValue):
(WebCore::Length::calcMinValue):
(WebCore::Length::isUndefined):
(WebCore::Length::isZero):
(WebCore::Length::isPositive):
(WebCore::Length::isNegative):
* rendering/RenderBR.cpp:
(WebCore::RenderBR::lineHeight):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::isSelfCollapsingBlock):
* rendering/RenderBox.cpp:
(WebCore::cacluateBackgroundSize):
(WebCore::RenderBox::calcWidth):
(WebCore::RenderBox::calcHeight):
(WebCore::RenderBox::calcReplacedWidth):
(WebCore::RenderBox::calcReplacedHeight):
(WebCore::RenderBox::calcAbsoluteHorizontal):
(WebCore::RenderBox::calcAbsoluteVertical):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::allowedChildFlex):
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::lineHeight):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::calcReplacedWidth):
(WebCore::RenderImage::calcReplacedHeight):
* rendering/RenderLayer.cpp:
(WebCore::Marquee::direction):
(WebCore::Marquee::start):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::mustRepaintBackgroundOrBorder):
(WebCore::RenderObject::lineHeight):
* rendering/RenderSlider.cpp:
(WebCore::RenderSlider::layout): Added FIXMEs.
* rendering/RenderStyle.h:
(WebCore::LengthBox::nonZero):
(WebCore::RenderStyle::initialLineHeight):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::calcWidth):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::addCell):
(WebCore::RenderTableSection::layoutRows):
2007-01-03 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=11744
Setting the 'content' property dynamically has no effect
Test: fast/css/content-dynamic.html
* dom/Node.cpp:
(WebCore::Node::diff): Changed to return 'Detach' if the styles' content
data are not equivalent.
2007-01-03 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12082
REGRESSION (r18333): Crash in RenderFrameSet::layOutAxis()
Test: fast/frames/negative-remaining-length-crash.html
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::layOutAxis): Treat negative availableLength
as zero.
2007-01-03 John Sullivan <sullivan@apple.com>
Written by Darin over my shoulder; reviewed by me
- fixed <rdar://problem/4907437> Find doesn't work if invoked when a form field is focused
* page/Frame.cpp:
(WebCore::isInShadowTree):
new helper function used by findString
(WebCore::Frame::findString):
when deciding whether to start from the selection, ignore selections that are in
a shadow tree (i.e. in a form control)
2007-01-03 Brady Eidson <beidson@apple.com>
Reviewed by Mark Rowe
Fixes http://bugs.webkit.org/show_bug.cgi?id=12089
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::updateHistoryForCommit): Null check the documentLoader
2007-01-03 David Hyatt <hyatt@apple.com>
Relax the display type restriction a little bit for generated content inside
inlines. We still don't allow block display types like we should (since this
will cause a crash), but we at least handle inline-table and inline-block now.
Reviewed by beth
fast/css-generated-content/inline-display-types.html
* rendering/RenderContainer.cpp:
(WebCore::RenderContainer::updatePseudoChildForObject):
2007-01-03 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/4663571> Spell checking won't cross boundary of individual To-Do item
No layout tests because advanceToNextMisspelling isn't yet exposed to automated tests.
* editing/mac/EditorMac.mm:
(WebCore::Editor::advanceToNextMisspelling): Confine spell checking to
the highest editable root, instead of the lowest. Use firstEditablePosition...
to look for an editable position.
2007-01-03 Beth Dakin <bdakin@apple.com>
Fixing silly mistake.
* platform/ContextMenu.cpp:
(WebCore::ContextMenu::checkOrEnableIfNeeded): Called wrong string
function.
2007-01-03 Brady Eidson <beidson@apple.com>
Reviewed by Anders
http://bugs.webkit.org/show_bug.cgi?id=12093 - Assertion in certain SVG layout tests
I can't really think of a cleaner way to fix this then to help these SVG cases avoid
the ASSERT - hopefully we can clean up the svg-as-image situation as the loader stabilizes
and we find better ways to handle it...
* loader/mac/DocumentLoaderMac.mm:
(WebCore::DocumentLoader::urlForHistory): empty-check the url before passing it to the
ASSERTing method
2007-01-03 Darin Adler <darin@apple.com>
Reviewed by Adele.
- removed some obsolete source files
* CMakeLists.txt: Removed obsolete files.
* WebCore.pro: Ditto.
* WebCore.vcproj/WebCore/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* WebCoreSources.bkl: Ditto.
* html/HTMLGenericFormElement.h: Removed reference to RenderFormElement.
* platform/qt/ComboBoxQt.cpp: Removed.
* platform/qt/LineEditQt.cpp: Removed.
* platform/qt/ListBoxQt.cpp: Removed.
* platform/qt/TextEditQt.cpp: Removed.
* rendering/RenderFormElement.cpp: Removed.
* rendering/RenderFormElement.h: Removed.
* rendering/RenderLabel.cpp: Removed.
* rendering/RenderLabel.h: Removed.
2007-01-03 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- fix bug where :after content appears backwards
Test: fast/css-generated-content/after-order.html
* rendering/RenderBlock.cpp:
(WebCore::isAfterContent): Added.
(WebCore::RenderBlock::addChildToFlow): Use isAfterContent.
* rendering/RenderInline.cpp:
(WebCore::isAfterContent): Added.
(WebCore::RenderInline::addChildToFlow): Use isAfterContent.
2007-01-03 David Hyatt <hyatt@apple.com>
Implement box-shadow parsing... getting it all into the RenderStyle.
Reviewed by beth
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSPropertyNames.in:
* css/cssparser.cpp:
(WebCore::CSSParser::parseValue):
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
* rendering/RenderStyle.cpp:
(WebCore::StyleCSS3NonInheritedData::StyleCSS3NonInheritedData):
(WebCore::StyleCSS3NonInheritedData::operator==):
(WebCore::StyleCSS3NonInheritedData::shadowDataEquivalent):
(WebCore::RenderStyle::diff):
(WebCore::RenderStyle::setBoxShadow):
* rendering/RenderStyle.h:
(WebCore::RenderStyle::boxShadow):
2007-01-03 Beth Dakin <bdakin@apple.com>
Reviewed by John.
Call into WebKit to get localized strings for all of the context
menu item titles.
* page/mac/WebCoreViewFactory.h:
* platform/ContextMenu.cpp:
(WebCore::createAndAppendFontSubMenu):
(WebCore::createAndAppendSpellingAndGrammarSubMenu):
(WebCore::createAndAppendSpellingSubMenu):
(WebCore::createAndAppendSpeechSubMenu):
(WebCore::createAndAppendWritingDirectionSubMenu):
(WebCore::ContextMenu::populate):
(WebCore::ContextMenu::checkOrEnableIfNeeded):
* platform/LocalizedStrings.h:
* platform/mac/LocalizedStringsMac.mm:
(WebCore::contextMenuItemTagOpenLinkInNewWindow):
(WebCore::contextMenuItemTagDownloadLinkToDisk):
(WebCore::contextMenuItemTagCopyLinkToClipboard):
(WebCore::contextMenuItemTagOpenImageInNewWindow):
(WebCore::contextMenuItemTagDownloadImageToDisk):
(WebCore::contextMenuItemTagCopyImageToClipboard):
(WebCore::contextMenuItemTagOpenFrameInNewWindow):
(WebCore::contextMenuItemTagCopy):
(WebCore::contextMenuItemTagGoBack):
(WebCore::contextMenuItemTagGoForward):
(WebCore::contextMenuItemTagStop):
(WebCore::contextMenuItemTagReload):
(WebCore::contextMenuItemTagCut):
(WebCore::contextMenuItemTagPaste):
(WebCore::contextMenuItemTagNoGuessesFound):
(WebCore::contextMenuItemTagIgnoreSpelling):
(WebCore::contextMenuItemTagLearnSpelling):
(WebCore::contextMenuItemTagSearchInSpotlight):
(WebCore::contextMenuItemTagSearchWeb):
(WebCore::contextMenuItemTagLookUpInDictionary):
(WebCore::contextMenuItemTagOpenLink):
(WebCore::contextMenuItemTagIgnoreGrammar):
(WebCore::contextMenuItemTagSpellingMenu):
(WebCore::contextMenuItemTagShowSpellingPanel):
(WebCore::contextMenuItemTagCheckSpelling):
(WebCore::contextMenuItemTagCheckSpellingWhileTyping):
(WebCore::contextMenuItemTagCheckGrammarWithSpelling):
(WebCore::contextMenuItemTagFontMenu):
(WebCore::contextMenuItemTagShowFonts):
(WebCore::contextMenuItemTagBold):
(WebCore::contextMenuItemTagItalic):
(WebCore::contextMenuItemTagUnderline):
(WebCore::contextMenuItemTagOutline):
(WebCore::contextMenuItemTagStyles):
(WebCore::contextMenuItemTagShowColors):
(WebCore::contextMenuItemTagSpeechMenu):
(WebCore::contextMenuItemTagStartSpeaking):
(WebCore::contextMenuItemTagStopSpeaking):
(WebCore::contextMenuItemTagWritingDirectionMenu):
(WebCore::contextMenuItemTagDefaultDirection):
(WebCore::contextMenuItemTagLeftToRight):
(WebCore::contextMenuItemTagRightToLeft):
2007-01-03 Brady Eidson <beidson@apple.com>
Reviewed by Darin and Geoff
http://bugs.webkit.org/show_bug.cgi?id=12105 - Crash visiting Acid2 test page
-Replace lost "free nil checking" in the WebKit->WebCore conversion of the BackForwardList
-Changed ::createItem and ::createItemTree to ::createHistoryItem and ::createHistoryItemTree
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::createHistoryItem):
(WebCore::FrameLoader::addBackForwardItemClippedAtTarget):
(WebCore::FrameLoader::createHistoryItemTree):
(WebCore::FrameLoader::updateHistoryForInternalLoad):
* loader/FrameLoader.h:
2007-01-03 Anders Carlsson <acarlsson@apple.com>
Reviewed by Geoff.
Allow plugin elements to handle off events to their widgets.
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::defaultEventHandler):
* html/HTMLPlugInElement.h:
* platform/Widget.h:
(WebCore::Widget::handleEvent):
2007-01-03 Lars Knoll <lars@trolltech.com>
Fix the Qt build
* WebCore.pro:
* history/qt/PageCacheQt.cpp: Added.
(WebCore::PageCache::close):
* loader/qt/DocumentLoaderQt.cpp:
(WebCore::DocumentLoader::getResponseRefreshAndModifiedHeaders):
(WebCore::DocumentLoader::urlForHistory):
* loader/qt/FrameLoaderQt.cpp:
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
(WebCore::FrameLoader::didFirstLayout):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::opened):
(WebCore::FrameLoader::dataURLBaseFromRequest):
(WebCore::FrameLoader::applyUserAgent):
* platform/network/qt/ResourceHandleQt.cpp:
(WebCore::ResourceHandle::loadsBlocked):
(WebCore::ResourceHandle::willLoadFromCache):
2007-01-02 Brady Eidson <beidson@apple.com>
Reviewed extensively and repeatedly by Darin
<rdar://problem/4887137> - WebCore Back/Forward Cache
* WebCore.exp:
* WebCore.xcodeproj/project.pbxproj:
* bridge/mac/WebCorePageState.h: Removed.
* bridge/mac/WebCorePageState.mm: Removed.
* history/BackForwardList.cpp: Added - This largely emulates the design of WebBackForwardList
(WebCore::BackForwardList::BackForwardList):
(WebCore::BackForwardList::~BackForwardList):
(WebCore::BackForwardList::addItem):
(WebCore::BackForwardList::goBack):
(WebCore::BackForwardList::goForward):
(WebCore::BackForwardList::goToItem):
(WebCore::BackForwardList::backItem):
(WebCore::BackForwardList::currentItem):
(WebCore::BackForwardList::forwardItem):
(WebCore::BackForwardList::backListWithLimit):
(WebCore::BackForwardList::forwardListWithLimit):
(WebCore::BackForwardList::capacity):
(WebCore::BackForwardList::setCapacity):
(WebCore::BackForwardList::setPageCacheSize):
(WebCore::BackForwardList::pageCacheSize):
(WebCore::BackForwardList::clearPageCache):
(WebCore::BackForwardList::usesPageCache):
(WebCore::BackForwardList::backListCount):
(WebCore::BackForwardList::forwardListCount):
(WebCore::BackForwardList::itemAtIndex):
(WebCore::BackForwardList::entries):
(WebCore::BackForwardList::close):
(WebCore::BackForwardList::closed):
(WebCore::BackForwardList::removeItem):
(WebCore::BackForwardList::containsItem):
(WebCore::BackForwardList::setDefaultPageCacheSize):
(WebCore::BackForwardList::defaultPageCacheSize):
* history/BackForwardList.h: Added.
* history/HistoryItem.cpp: Added - This largely emulates the design of WebBackForwardList
(WebCore::defaultNotifyHistoryItemChanged):
(WebCore::HistoryItem::HistoryItem):
(WebCore::HistoryItem::~HistoryItem):
(WebCore::HistoryItem::copy):
(WebCore::HistoryItem::setHasPageCache):
(WebCore::HistoryItem::retainIconInDatabase):
(WebCore::HistoryItem::urlString):
(WebCore::HistoryItem::originalURLString):
(WebCore::HistoryItem::title):
(WebCore::HistoryItem::alternateTitle):
(WebCore::HistoryItem::icon):
(WebCore::HistoryItem::lastVisitedTime):
(WebCore::HistoryItem::url):
(WebCore::HistoryItem::originalURL):
(WebCore::HistoryItem::target):
(WebCore::HistoryItem::parent):
(WebCore::HistoryItem::setAlternateTitle):
(WebCore::HistoryItem::setURLString):
(WebCore::HistoryItem::setURL):
(WebCore::HistoryItem::setOriginalURLString):
(WebCore::HistoryItem::setTitle):
(WebCore::HistoryItem::setTarget):
(WebCore::HistoryItem::setParent):
(WebCore::HistoryItem::setLastVisitedTime):
(WebCore::HistoryItem::visitCount):
(WebCore::HistoryItem::setVisitCount):
(WebCore::HistoryItem::scrollPoint):
(WebCore::HistoryItem::setScrollPoint):
(WebCore::HistoryItem::clearScrollPoint):
(WebCore::HistoryItem::setDocumentState):
(WebCore::HistoryItem::documentState):
(WebCore::HistoryItem::clearDocumentState):
(WebCore::HistoryItem::isTargetItem):
(WebCore::HistoryItem::setIsTargetItem):
(WebCore::HistoryItem::alwaysAttemptToUsePageCache):
(WebCore::HistoryItem::setAlwaysAttemptToUsePageCache):
(WebCore::HistoryItem::addChildItem):
(WebCore::HistoryItem::childItemWithName):
(WebCore::HistoryItem::recurseToFindTargetItem):
(WebCore::HistoryItem::targetItem):
(WebCore::HistoryItem::pageCache):
(WebCore::HistoryItem::children):
(WebCore::HistoryItem::hasChildren):
(WebCore::HistoryItem::formContentType):
(WebCore::HistoryItem::formReferrer):
(WebCore::HistoryItem::rssFeedReferrer):
(WebCore::HistoryItem::setRSSFeedReferrer):
(WebCore::HistoryItem::setFormInfoFromRequest):
(WebCore::HistoryItem::formData):
(WebCore::HistoryItem::mergeAutoCompleteHints):
(WebCore::HistoryItem::hasPageCache):
(WebCore::timer): Function to manage the global release timer
(WebCore::pendingPageCacheToRelease): Function to manage the global queue of caches to be released
(WebCore::HistoryItem::releasePageCache):
(WebCore::closeObjectsInPendingPageCaches):
(WebCore::HistoryItem::releaseAllPendingPageCaches):
(WebCore::HistoryItem::scheduleRelease):
(WebCore::HistoryItem::print):
* history/HistoryItem.h: Added.
* history/mac/HistoryItemMac.mm: Added.
(WebCore::HistoryItem::viewState): In the future we need a platform agnostic way to manage the view state
(WebCore::HistoryItem::setViewState):
(WebCore::HistoryItem::getTransientProperty): Transient properties are, for now, only a Mac concept
(WebCore::HistoryItem::setTransientProperty):
* history/HistoryItemTimer.cpp: Added
(WebCore::HistoryItemTimer::HistoryItemTimer): We need a specific class to be the history item timer because
WebCore::Timers only work when you have an instance of an object, but the caches pending release is a static concept
(WebCore::HistoryItemTimer::isActive):
(WebCore::HistoryItemTimer::schedule):
(WebCore::HistoryItemTimer::invalidate):
(WebCore::HistoryItemTimer::callReleasePageCache):
* history/HistoryItemTimer.h: Added.
* history/PageCache.cpp Added - This is a class that contains the fields that used to be in an NSDictionary in WebKit
(WebCore::PageCache::PageCache):
(WebCore::PageCache::setPageState):
(WebCore::PageCache::~PageCache):
(WebCore::PageCache::pageState):
(WebCore::PageCache::setDocumentLoader):
(WebCore::PageCache::documentLoader):
(WebCore::PageCache::setTimeStamp):
(WebCore::PageCache::setTimeStampToNow):
(WebCore::PageCache::timeStamp):
* history/PageCache.h: Added.
* history/mac/PageCacheMac.mm: Added.
(WebCore::PageCache::close):
(WebCore::PageCache::setDocumentView): In the future we need a platform agnostic way to manage the documentView
(WebCore::PageCache::documentView):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::loadFromPageCache):
(WebCore::DocumentLoader::setLoadingFromPageCache):
(WebCore::DocumentLoader::isLoadingFromPageCache):
(WebCore::DocumentLoader::originalURL):
(WebCore::DocumentLoader::requestURL):
(WebCore::DocumentLoader::responseURL):
(WebCore::DocumentLoader::responseMIMEType):
* loader/DocumentLoader.h:
* loader/FrameLoader.cpp: Responsibilities previously scattered in WebKit but concentrated in WebView and WebFrame
are now here, where they should be.
(WebCore::FrameLoader::clear):
(WebCore::FrameLoader::restoreDocumentState):
(WebCore::FrameLoader::goBackOrForward):
(WebCore::FrameLoader::provisionalLoadStarted):
(WebCore::FrameLoader::canCachePage):
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::transitionToCommitted):
(WebCore::FrameLoader::open):
(WebCore::FrameLoader::didFirstLayout):
(WebCore::FrameLoader::dispatchDidChangeLocationWithinPage):
(WebCore::FrameLoader::dispatchDidFinishLoadToClient):
(WebCore::FrameLoader::updateGlobalHistoryForStandardLoad): Marked for usage in future GlobalHistory (uses client for now)
(WebCore::FrameLoader::updateGlobalHistoryForReload): Ditto
(WebCore::FrameLoader::shouldGoToHistoryItem):
(WebCore::FrameLoader::addExtraFieldsToRequest):
(WebCore::FrameLoader::addHistoryItemForFragmentScroll):
(WebCore::FrameLoader::loadProvisionalItemFromPageCache):
(WebCore::FrameLoader::createPageCache):
(WebCore::FrameLoader::shouldTreatURLAsSameAsCurrent):
(WebCore::FrameLoader::createItem):
(WebCore::FrameLoader::addBackForwardItemClippedAtTarget):
(WebCore::FrameLoader::createItemTree):
(WebCore::FrameLoader::saveScrollPositionAndViewStateToItem):
(WebCore::FrameLoader::restoreScrollPositionAndViewState):
(WebCore::FrameLoader::purgePageCache):
(WebCore::FrameLoader::invalidateCurrentItemPageCache):
(WebCore::FrameLoader::saveDocumentState):
(WebCore::FrameLoader::loadItem):
(WebCore::FrameLoader::urlsMatchItem):
(WebCore::FrameLoader::goToItem):
(WebCore::FrameLoader::recursiveGoToItem):
(WebCore::FrameLoader::childFramesMatchItem):
(WebCore::FrameLoader::updateHistoryForStandardLoad):
(WebCore::FrameLoader::updateHistoryForClientRedirect):
(WebCore::FrameLoader::updateHistoryForBackForwardNavigation):
(WebCore::FrameLoader::updateHistoryForReload):
(WebCore::FrameLoader::updateHistoryForInternalLoad):
(WebCore::FrameLoader::updateHistoryForCommit):
(WebCore::FrameLoader::saveDocumentAndScrollState):
(WebCore::FrameLoader::currentHistoryItem):
(WebCore::FrameLoader::previousHistoryItem):
(WebCore::FrameLoader::provisionalHistoryItem):
(WebCore::FrameLoader::setCurrentHistoryItem):
(WebCore::FrameLoader::setPreviousHistoryItem):
(WebCore::FrameLoader::setProvisionalHistoryItem):
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* loader/mac/DocumentLoaderMac.mm:
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::getResponseRefreshAndModifiedHeaders):
(WebCore::DocumentLoader::commitIfReady):
(WebCore::DocumentLoader::urlForHistory):
* loader/mac/FrameLoaderMac.mm:
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::startLoading):
(WebCore::FrameLoader::receivedMainResourceError):
(WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
(WebCore::FrameLoader::opened):
(WebCore::FrameLoader::dataURLBaseFromRequest):
(WebCore::FrameLoader::didChangeTitle):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
* page/FrameTree.cpp:
(WebCore::FrameTree::removeChild):
* page/Page.cpp: Transfered a handful of concepts from WebView
(WebCore::Page::Page):
(WebCore::Page::~Page):
(WebCore::Page::backForwardList):
(WebCore::Page::goBack):
(WebCore::Page::goForward):
(WebCore::Page::goToItem):
* page/Page.h:
* page/PageState.h:
* page/mac/FrameMac.h:
* page/mac/FrameMac.mm:
* page/mac/WebCoreFrameBridge.h:
* page/mac/WebCoreFrameBridge.mm:
* platform/KURL.cpp:
(WebCore::KURL::print): Added debug only method for debugging convenience
* platform/KURL.h:
* platform/Logging.cpp:
(WebCore::): Added some logging channels
* platform/Logging.h:
* platform/PlatformString.h:
(WebCore::nsStringNilIfEmpty): Added for WebKit use
* platform/SystemTime.h: Added userIdleTime()
* platform/graphics/svg/SVGImage.cpp:
* platform/graphics/svg/SVGImageEmptyClients.h: Updated for new FrameLoaderClient methods
(WebCore::SVGEmptyFrameLoaderClient::setDocumentViewFromPageCache):
(WebCore::SVGEmptyFrameLoaderClient::updateGlobalHistoryForStandardLoad):
(WebCore::SVGEmptyFrameLoaderClient::updateGlobalHistoryForReload):
(WebCore::SVGEmptyFrameLoaderClient::shouldGoToHistoryItem):
(WebCore::SVGEmptyFrameLoaderClient::saveScrollPositionAndViewStateToItem):
(WebCore::SVGEmptyFrameLoaderClient::saveDocumentViewToPageCache):
(WebCore::SVGEmptyFrameLoaderClient::canCachePage):
(WebCore::SVGEmptyEditorClient::~SVGEmptyEditorClient):
* platform/mac/LoggingMac.mm:
(WebCore::InitializeLoggingChannelsIfNecessary):
* platform/mac/SystemTimeMac.cpp:
(WebCore::userIdleTime):
* platform/mac/WebCoreSystemInterface.h: Added wkSecondsSinceLastInput for use in userIdleTime
* platform/mac/WebCoreSystemInterface.mm:
* platform/network/FormData.cpp:
(WebCore::FormData::FormData):
(WebCore::FormData::copy):
* platform/network/FormData.h:
* platform/network/ResourceHandle.h:
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::willLoadFromCache): For "are you sure you want to resubmit?" nag
* platform/qt/TemporaryLinkStubs.cpp:
(WebCore::userIdleTime):
* rendering/RenderPart.h:
2007-01-02 Darin Adler <darin@apple.com>
Rubber stamped by Mitz.
Rename isRenderSVGContainer to isSVGContainer.
* platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::renderSubtreeToImage):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::containingBlock):
* rendering/RenderObject.h:
(WebCore::RenderObject::isSVGContainer):
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::viewportTransform):
* rendering/RenderSVGContainer.h:
(WebCore::RenderSVGContainer::isSVGContainer):
* rendering/RenderTreeAsText.cpp:
(WebCore::write):
2007-01-03 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Mitz.
Rename isKCanvasContainer to isRenderSVGContainer.
* platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::renderSubtreeToImage):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::containingBlock):
* rendering/RenderObject.h:
(WebCore::RenderObject::isRenderSVGContainer):
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::viewportTransform):
* rendering/RenderSVGContainer.h:
(WebCore::RenderSVGContainer::isRenderSVGContainer):
* rendering/RenderTreeAsText.cpp:
(WebCore::write):
2007-01-02 Beth Dakin <bdakin@apple.com>
Reviewed by Darin.
Fix assertion failure with WebCore context menus by getting "Copy
Image" item added in.
* platform/ContextMenu.cpp:
(WebCore::ContextMenu::populate): Check if the image url is a local
file or if we have an image in the cache.
2007-01-02 Sam Weinig <sam@webkit.org>
Reviewed by Anders.
Patch for http://bugs.webkit.org/show_bug.cgi?id=12072
select with align attribute should not affect contained text
Don't map align for select elements.
Test: fast/forms/select-align.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::parseMappedAttribute):
2007-01-02 Sam Weinig <sam@webkit.org>
Reviewed by Mitz.
Patch for http://bugs.webkit.org/show_bug.cgi?id=12071
button with align attribute should not affect contained text
Don't map align for button elements.
Test: fast/forms/button-align.html
* html/HTMLButtonElement.cpp:
(WebCore::HTMLButtonElement::parseMappedAttribute):
2007-01-02 Sam Weinig <sam@webkit.org>
Reviewed by Mitz and Anders.
Patch for http://bugs.webkit.org/show_bug.cgi?id=7075
textarea with align=right should not cause contained text to
be right-justified
Don't map align for textarea elements.
Test: fast/forms/textarea-align.html
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::parseMappedAttribute):
2007-01-02 Eric Seidel <eric@webkit.org>
Reviewed by mitz.
Implement SVGSVGElement::deselectAll()
* ksvg2/svg/SVGAnimationElement.h:
(WebCore::SVGAnimationElement::updateLastValueWithCurrent): add comment
* ksvg2/svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::deselectAll): implement
(WebCore::SVGSVGElement::setCurrentTime): add comment about bug
* ksvg2/svg/SVGSVGElement.idl: remove unnecessary comment
2007-01-02 Sam Weinig <sam@webkit.org>
Reviewed by Darin.
Patch for http://bugs.webkit.org/show_bug.cgi?id=3360
align="right" on a text input aligns the input field to the right
Don't map align if input type is not 'image'.
Test: fast/forms/input-align-image.html
Test: fast/forms/input-align.html
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setInputType):
(WebCore::HTMLInputElement::mapToEntry):
(WebCore::HTMLInputElement::parseMappedAttribute):
2007-01-02 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Eric.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12013
Fixes: http://bugs.webkit.org/show_bug.cgi?id=11980
Partly fixes: http://bugs.webkit.org/show_bug.cgi?id=6000 (pattern/gradient recursion works now)
Fixed testcases:
coords-units-01-b.svg (<pattern> in objectBoundingBoxMode were broken.)
pattern-in-defs.svg (clip pattern size against target size, to avoid excessive mallocs)
js-update-pattern.svg (live updating really works now!)
js-late-gradient-and-object-creation.svg (objectBoundingBoxMode gradients-on-text work now)
js-late-gradient-creation.svg (same)
Added testcases:
js-late-pattern-and-object-creation.svg (objectBoundingBoxMode patterns-on-text work now)
js-late-pattern-creation.svg (same)
gradient-cycle-detection.svg (tests that cyclic gradients are ignored)
gradient-deep-referencing.svg
pattern-cycle-detection.svg (tests that cyclic patterns are ignored)
pattern-deep-referencing.svg
Rewrite gradient & pattern code, fixing all known bugs & regressions.
-> Remove SVGResourceListener completly (the ugly resourceNotification() hack is gone now)
-> Make patterns operate in all possible combinations of patternUnits / patternContentunits
The SVGPaintServerPattern now asks the SVGPatternElement to build the pattern tile, passing
the target object's bbox rectangle -> objectBoundingBox calculations can be done, so SVGPaintServerPattern
itself doesn't need to know anything about "bounding box mode". Same could be done for gradients.
-> SVGLength::valueAsPercentage() returns again fractional values, saves some "/ 100.0" statements.
-> Deep references (gradientA -> gradientB -> gradientC...) work now. Previously only one reference worked.
Adding GradientAttributes.h / PatternAttributes.h helper structures for the property collection.
Cycle detection is implemented and won't kill us anymore :-)
JS updates on gradients/patterns only cause one repaint of the client's now. Gradient drawing
does not cause the target object to be redrawn immediately afterwards anymore.
* WebCore.xcodeproj/project.pbxproj:
* ksvg2/misc/KCanvasRenderingStyle.cpp:
(WebCore::KSVGPainterFactory::fillPaintServer):
(WebCore::KSVGPainterFactory::strokePaintServer):
* ksvg2/misc/KCanvasRenderingStyle.h:
* ksvg2/misc/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::addPendingResource):
(WebCore::SVGDocumentExtensions::isPendingResource):
(WebCore::SVGDocumentExtensions::removePendingResource):
* ksvg2/misc/SVGDocumentExtensions.h:
* ksvg2/svg/GradientAttributes.h: Added.
(WebCore::GradientAttributes::GradientAttributes):
(WebCore::GradientAttributes::spreadMethod):
(WebCore::GradientAttributes::boundingBoxMode):
(WebCore::GradientAttributes::gradientTransform):
(WebCore::GradientAttributes::stops):
(WebCore::GradientAttributes::setSpreadMethod):
(WebCore::GradientAttributes::setBoundingBoxMode):
(WebCore::GradientAttributes::setGradientTransform):
(WebCore::GradientAttributes::setStops):
(WebCore::GradientAttributes::hasSpreadMethod):
(WebCore::GradientAttributes::hasBoundingBoxMode):
(WebCore::GradientAttributes::hasGradientTransform):
(WebCore::GradientAttributes::hasStops):
* ksvg2/svg/LinearGradientAttributes.h: Added.
(WebCore::LinearGradientAttributes::LinearGradientAttributes):
(WebCore::LinearGradientAttributes::x1):
(WebCore::LinearGradientAttributes::y1):
(WebCore::LinearGradientAttributes::x2):
(WebCore::LinearGradientAttributes::y2):
(WebCore::LinearGradientAttributes::setX1):
(WebCore::LinearGradientAttributes::setY1):
(WebCore::LinearGradientAttributes::setX2):
(WebCore::LinearGradientAttributes::setY2):
(WebCore::LinearGradientAttributes::hasX1):
(WebCore::LinearGradientAttributes::hasY1):
(WebCore::LinearGradientAttributes::hasX2):
(WebCore::LinearGradientAttributes::hasY2):
* ksvg2/svg/PatternAttributes.h: Added.
(WebCore::PatternAttributes::PatternAttributes):
(WebCore::PatternAttributes::x):
(WebCore::PatternAttributes::y):
(WebCore::PatternAttributes::width):
(WebCore::PatternAttributes::height):
(WebCore::PatternAttributes::boundingBoxMode):
(WebCore::PatternAttributes::boundingBoxModeContent):
(WebCore::PatternAttributes::patternTransform):
(WebCore::PatternAttributes::patternContentElement):
(WebCore::PatternAttributes::setX):
(WebCore::PatternAttributes::setY):
(WebCore::PatternAttributes::setWidth):
(WebCore::PatternAttributes::setHeight):
(WebCore::PatternAttributes::setBoundingBoxMode):
(WebCore::PatternAttributes::setBoundingBoxModeContent):
(WebCore::PatternAttributes::setPatternTransform):
(WebCore::PatternAttributes::setPatternContentElement):
(WebCore::PatternAttributes::hasX):
(WebCore::PatternAttributes::hasY):
(WebCore::PatternAttributes::hasWidth):
(WebCore::PatternAttributes::hasHeight):
(WebCore::PatternAttributes::hasBoundingBoxMode):
(WebCore::PatternAttributes::hasBoundingBoxModeContent):
(WebCore::PatternAttributes::hasPatternTransform):
(WebCore::PatternAttributes::hasPatternContentElement):
* ksvg2/svg/RadialGradientAttributes.h: Added.
(WebCore::RadialGradientAttributes::RadialGradientAttributes):
(WebCore::RadialGradientAttributes::cx):
(WebCore::RadialGradientAttributes::cy):
(WebCore::RadialGradientAttributes::r):
(WebCore::RadialGradientAttributes::fx):
(WebCore::RadialGradientAttributes::fy):
(WebCore::RadialGradientAttributes::setCx):
(WebCore::RadialGradientAttributes::setCy):
(WebCore::RadialGradientAttributes::setR):
(WebCore::RadialGradientAttributes::setFx):
(WebCore::RadialGradientAttributes::setFy):
(WebCore::RadialGradientAttributes::hasCx):
(WebCore::RadialGradientAttributes::hasCy):
(WebCore::RadialGradientAttributes::hasR):
(WebCore::RadialGradientAttributes::hasFx):
(WebCore::RadialGradientAttributes::hasFy):
* ksvg2/svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::notifyAttributeChange):
(WebCore::SVGGradientElement::canvasResource):
(WebCore::SVGGradientElement::buildStops):
(WebCore::SVGGradientElement::insertedIntoDocument):
* ksvg2/svg/SVGGradientElement.h:
* ksvg2/svg/SVGLength.cpp:
(WebCore::SVGLength::valueAsPercentage):
* ksvg2/svg/SVGLinearGradientElement.cpp:
(WebCore::SVGLinearGradientElement::buildGradient):
(WebCore::SVGLinearGradientElement::collectGradientProperties):
* ksvg2/svg/SVGLinearGradientElement.h:
* ksvg2/svg/SVGLocatable.cpp:
(WebCore::SVGLocatable::getScreenCTM):
* ksvg2/svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::SVGPatternElement):
(WebCore::SVGPatternElement::buildPattern):
(WebCore::SVGPatternElement::notifyAttributeChange):
(WebCore::SVGPatternElement::canvasResource):
(WebCore::SVGPatternElement::insertedIntoDocument):
(WebCore::SVGPatternElement::collectPatternProperties):
* ksvg2/svg/SVGPatternElement.h:
* ksvg2/svg/SVGRadialGradientElement.cpp:
(WebCore::SVGRadialGradientElement::buildGradient):
(WebCore::SVGRadialGradientElement::collectGradientProperties):
* ksvg2/svg/SVGRadialGradientElement.h:
* platform/graphics/svg/SVGPaintServerGradient.cpp:
(WebCore::SVGPaintServerGradient::SVGPaintServerGradient):
(WebCore::SVGPaintServerGradient::externalRepresentation):
* platform/graphics/svg/SVGPaintServerGradient.h:
(WebCore::):
* platform/graphics/svg/SVGPaintServerLinearGradient.cpp:
(WebCore::SVGPaintServerLinearGradient::SVGPaintServerLinearGradient):
* platform/graphics/svg/SVGPaintServerLinearGradient.h:
* platform/graphics/svg/SVGPaintServerPattern.cpp:
(WebCore::SVGPaintServerPattern::SVGPaintServerPattern):
(WebCore::SVGPaintServerPattern::patternBoundaries):
(WebCore::SVGPaintServerPattern::setPatternBoundaries):
(WebCore::SVGPaintServerPattern::setTile):
(WebCore::SVGPaintServerPattern::externalRepresentation):
* platform/graphics/svg/SVGPaintServerPattern.h:
* platform/graphics/svg/SVGPaintServerRadialGradient.cpp:
(WebCore::SVGPaintServerRadialGradient::SVGPaintServerRadialGradient):
* platform/graphics/svg/SVGPaintServerRadialGradient.h:
* platform/graphics/svg/SVGResource.cpp:
(WebCore::SVGResource::invalidate):
(WebCore::SVGResource::repaintClients):
* platform/graphics/svg/SVGResource.h:
* platform/graphics/svg/SVGResourceListener.h:
* platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
(WebCore::cgGradientCallback):
(WebCore::CGShadingRefForRadialGradient):
(WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
(WebCore::SVGPaintServerGradient::updateQuartzGradientCache):
(WebCore::SVGPaintServerGradient::teardown):
(WebCore::SVGPaintServerGradient::renderPath):
(WebCore::SVGPaintServerGradient::handleBoundingBoxModeAndGradientTransformation):
(WebCore::SVGPaintServerGradient::setup):
(WebCore::SVGPaintServerGradient::invalidate):
* platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
(WebCore::SVGPaintServerPattern::setup):
(WebCore::SVGPaintServerPattern::teardown):
* platform/graphics/svg/qt/SVGPaintServerLinearGradientQt.cpp:
(WebCore::SVGPaintServerLinearGradient::setup):
* platform/graphics/svg/qt/SVGPaintServerPatternQt.cpp:
(WebCore::SVGPaintServerPattern::setup):
* platform/graphics/svg/qt/SVGPaintServerRadialGradientQt.cpp:
(WebCore::SVGPaintServerRadialGradient::setup):
2007-01-02 Zack Rusin <zack@kde.org>
Compilation fix. File names are case-sensitive.
* ksvg2/svg/SVGPathSegList.cpp:
2007-01-02 Zack Rusin <zack@kde.org>
Compilation fixes for the Qt port.
* WebCore.pro:
* platform/qt/FrameQt.cpp:
(WebCore::FrameQt::bindingRootObject):
(WebCore::FrameQt::addPluginRootObject):
2007-01-02 Eric Seidel <eric@webkit.org>
Reviewed by rwlbuis.
Refactor more animation code for better sharing between SVGAnimate*Element classes.
- replace handleEndCondition with resetValues() and updateLastValueWithCurrent()
- move initialTransform() function down into SVGTimer (eventually to AnimationCompositor)
Add non-functional (only parses) SVGAnimateMotionElement
Improve precision of getPointAtLength calculations and add support for "getNormalAtLength" functionality (needed for rotate='auto' support in animateMotion)
Move add getSegmentAtLength functionality to SVGPathSegList, move toPathData into SVGPathSegList as well.
Add SVGAnimationElement::hasValidTarget() for future better/simpler ASSERT checking
change transformMatrix() to currentTransform() to match AffineTransform class name
* WebCore.xcodeproj/project.pbxproj:
* ksvg2/misc/SVGTimer.cpp:
(WebCore::SVGTimer::animationsByElement):
(WebCore::baseValueTransformList):
(WebCore::SVGTimer::applyAnimations):
* ksvg2/svg/SVGAnimateColorElement.cpp:
(WebCore::SVGAnimateColorElement::updateLastValueWithCurrent):
* ksvg2/svg/SVGAnimateColorElement.h:
* ksvg2/svg/SVGAnimateMotionElement.cpp: Added.
(WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):
(WebCore::SVGAnimateMotionElement::~SVGAnimateMotionElement):
(WebCore::SVGAnimateMotionElement::hasValidTarget): added.
(WebCore::SVGAnimateMotionElement::parseMappedAttribute):
(WebCore::SVGAnimateMotionElement::animationPath): fetch path from <mpath> or d attribute
(WebCore::SVGAnimateMotionElement::updateCurrentValue):
(WebCore::SVGAnimateMotionElement::handleStartCondition):
(WebCore::SVGAnimateMotionElement::applyAnimationToValue):
* ksvg2/svg/SVGAnimateMotionElement.h: Added.
(WebCore::SVGAnimateMotionElement::contextElement):
(WebCore::SVGAnimateMotionElement::):
* ksvg2/svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::hasValidTarget): added.
(WebCore::SVGAnimateTransformElement::storeInitialValue):
(WebCore::SVGAnimateTransformElement::updateCurrentValue):
(WebCore::SVGAnimateTransformElement::updateLastValueWithCurrent):
(WebCore::SVGAnimateTransformElement::applyAnimationToValue):
(WebCore::SVGAnimateTransformElement::currentTransform):
* ksvg2/svg/SVGAnimateTransformElement.h:
* ksvg2/svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::hasValidTarget): added.
(WebCore::SVGAnimationElement::parseMappedAttribute):
(WebCore::SVGAnimationElement::isAdditive):
(WebCore::SVGAnimationElement::isAccumulated):
(WebCore::SVGAnimationElement::handleTimerEvent):
* ksvg2/svg/SVGAnimationElement.h:
(WebCore::SVGAnimationElement::updateLastValueWithCurrent):
(WebCore::SVGAnimationElement::resetValues):
* ksvg2/svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::getPointAtLength):
(WebCore::SVGPathElement::getPathSegAtLength):
(WebCore::SVGPathElement::parseMappedAttribute):
(WebCore::SVGPathElement::toPathData):
* ksvg2/svg/SVGPathSegList.cpp:
(WebCore::SVGPathSegList::getPathSegAtLength): added.
(WebCore::SVGPathSegList::toPathData): added.
* ksvg2/svg/SVGPathSegList.h:
* ksvg2/svg/svgtags.in: add animateMotion
* platform/graphics/Path.cpp:
(WebCore::pathLengthApplierFunction): add support for TraversalNormalAngleAtLength
* platform/graphics/PathTraversalState.cpp:
(WebCore::curveLength): support higher precision pointAtLength calculations, and add normalAtLength support
(WebCore::PathTraversalState::quadraticBezierTo):
(WebCore::PathTraversalState::cubicBezierTo):
* platform/graphics/PathTraversalState.h:
(WebCore::PathTraversalState::): add TraversalNormalAngleAtLength mode
2007-01-01 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- WebCore changes for http://bugs.webkit.org/show_bug.cgi?id=11849
REGRESSION (r18182): Google Calendar is broken (a regular expression containing a null character is not parsed correctly)
* platform/RegularExpression.cpp:
(WebCore::RegularExpression::Private::compile): Changed to not null-terminate
the pattern string and instead pass its length to pcre_compile.
2007-01-01 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=11359
Incomplete repaint of table cell's collapsed border when changing only the cell
Test: fast/repaint/table-cell-collapsed-border.html
* rendering/RenderTable.h:
Added needsSectionRecalc() accessor.
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::getAbsoluteRepaintRect): Overloaded to add the
outer half of any collapsed borders. This function checks the cell's borders'
widths but also the widths of the adjoining cells' borders, since they can
contribute to the length of this cell's borders perpendicular to them, making
such a border overflow the cell in both dimensions.
(WebCore::RenderTableCell::borderLeft): Split the collapsing borders case off to
borderHalfLeft().
(WebCore::RenderTableCell::borderRight): Ditto.
(WebCore::RenderTableCell::borderTop): Ditto.
(WebCore::RenderTableCell::borderBottom): Ditto.
(WebCore::RenderTableCell::borderHalfLeft): Added. Takes an 'outer' boolean
parameter. When true, this function returns the width of the part of the border
that is outside the cell (different from the inner width when the total width is odd).
(WebCore::RenderTableCell::borderHalfRight): Ditto.
(WebCore::RenderTableCell::borderHalfTop): Ditto.
(WebCore::RenderTableCell::borderHalfBottom): Ditto.
* rendering/RenderTableCell.h:
2007-01-01 David Kilzer <ddkilzer@webkit.org>
WebCore.vcproj change reviewed by Darin. Additional build files updated by ddkilzer.
* CMakeLists.txt: Removed RenderLineEdit.cpp.
* WebCore.vcproj/WebCore/WebCore.vcproj: Removed RenderLineEdit.cpp and RenderLineEdit.h.
* WebCoreSources.bkl: Removed RenderLineEdit.cpp.
2007-01-01 Mitz Pettel <mitz@webkit.org>
Reviewed by Mark Rowe.
- fix http://bugs.webkit.org/show_bug.cgi?id=12042
Assertion failure in WebCore::RenderObject::drawBorder
Test: fast/borders/outline-offset-min-assert.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::paintOutline): Bail out if the width or height is
smaller than twice the outline inset.
2007-01-01 Mark Rowe <bdash@webkit.org>
Reviewed by Eric.
http://bugs.webkit.org/show_bug.cgi?id=12061
Bug 12061: Crash in WebCore::Shared<WebCore::StringImpl>::deref
* rendering/RenderStyle.cpp:
(WebCore::ContentData::clearContent): Reset _contentType to CONTENT_NONE to ensure repeated calls to clearContent
do not result in derefing deallocated members.
2007-01-01 Eric Seidel <eric@webkit.org>
Reviewed by andersca.
Begin pushing code down into SVGAnimateElement
* ksvg2/svg/SVGAnimateColorElement.cpp:
(WebCore::SVGAnimateColorElement::handleStartCondition):
* ksvg2/svg/SVGAnimateColorElement.h:
* ksvg2/svg/SVGAnimateElement.h:
(WebCore::SVGAnimateElement::updateCurrentValue):
(WebCore::SVGAnimateElement::handleStartCondition):
(WebCore::SVGAnimateElement::handleEndCondition):
* ksvg2/svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::handleStartCondition):
* ksvg2/svg/SVGAnimateTransformElement.h:
* ksvg2/svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::handleTimerEvent):
* ksvg2/svg/SVGAnimationElement.h:
* ksvg2/svg/SVGSetElement.cpp:
(WebCore::SVGSetElement::updateCurrentValue):
(WebCore::SVGSetElement::handleStartCondition):
(WebCore::SVGSetElement::handleEndCondition):
* ksvg2/svg/SVGSetElement.h:
2007-01-01 Eric Seidel <eric@webkit.org>
Reviewed by andersca.
Add static function SVGColor::colorFromRGBColorString to allow parsing Colors from SVG color strings w/o creating an SVGColor object.
* ksvg2/svg/SVGAnimateColorElement.cpp:
(WebCore::SVGAnimateColorElement::storeInitialValue): use colorFromRGBColorString
(WebCore::SVGAnimateColorElement::startIfNecessary): use colorFromRGBColorString
* ksvg2/svg/SVGColor.cpp:
(WebCore::SVGColor::setRGBColor): use colorFromRGBColorString
(WebCore::parseNumberOrPercent): new color parsing helper
(WebCore::SVGColor::colorFromRGBColorString): cleaned up version of setRGBColor parsing logic
* ksvg2/svg/SVGColor.h:
2007-01-01 Eric Seidel <eric@webkit.org>
Reviewed by andersca.
Split handleTimerEvent logic into separate functions in preparation for moving down into SVGAnimationElement
* ksvg2/svg/SVGAnimateColorElement.cpp:
(WebCore::SVGAnimateColorElement::storeInitialValue):
(WebCore::SVGAnimateColorElement::resetValues):
(WebCore::SVGAnimateColorElement::updateCurrentValue):
(WebCore::SVGAnimateColorElement::startIfNecessary):
(WebCore::SVGAnimateColorElement::handleEndCondition):
(WebCore::SVGAnimateColorElement::handleTimerEvent):
* ksvg2/svg/SVGAnimateColorElement.h:
* ksvg2/svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::storeInitialValue):
(WebCore::SVGAnimateTransformElement::resetValues):
(WebCore::SVGAnimateTransformElement::updateCurrentValue):
(WebCore::SVGAnimateTransformElement::startIfNecessary):
(WebCore::SVGAnimateTransformElement::handleEndCondition):
(WebCore::SVGAnimateTransformElement::handleTimerEvent):
* ksvg2/svg/SVGAnimateTransformElement.h:
2007-01-01 Rob Buis <buis@kde.org>
Reviewed by Eric.
Simple cleanups, removing unused color table, copyright and include guard fixes.
* ksvg2/svg/SVGColor.cpp:
* ksvg2/svg/SVGColor.h:
2007-01-01 Eric Seidel <eric@webkit.org>
Reviewed by andersca.
More animation code cleanup.
* ksvg2/svg/SVGAnimateColorElement.cpp:
(WebCore::SVGAnimateColorElement::handleTimerEvent):
* ksvg2/svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::handleTimerEvent):
* ksvg2/svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::SVGAnimationElement):
(WebCore::SVGAnimationElement::connectedToTimer):
(WebCore::SVGAnimationElement::connectTimer):
(WebCore::SVGAnimationElement::disconnectTimer):
(WebCore::SVGAnimationElement::updateForElapsedSeconds):
* ksvg2/svg/SVGAnimationElement.h:
* ksvg2/svg/SVGSetElement.cpp:
(WebCore::SVGSetElement::handleTimerEvent):
* ksvg2/svg/SVGSetElement.h:
2007-01-01 Eric Seidel <eric@webkit.org>
Reviewed by mitz.
More clean-up to animation code.
* ksvg2/svg/SVGAnimateColorElement.cpp:
(WebCore::SVGAnimateColorElement::handleTimerEvent):
* ksvg2/svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::handleTimerEvent):
(WebCore::SVGAnimateTransformElement::parseTransformValue):
(WebCore::SVGAnimateTransformElement::calculateRotationFromMatrix):
2007-01-01 Eric Seidel <eric@webkit.org>
Reviewed by olliej.
Begin pushing more animation logic out of SVGTimer and into the SVGAnimate* classes.
* ksvg2/misc/SVGTimer.cpp:
(WebCore::SVGTimer::animationsByElement): add comment
(WebCore::SVGTimer::notifyAll): push logic into SVGAnimte* classes
* ksvg2/svg/SVGAnimateColorElement.cpp:
(WebCore::SVGAnimateColorElement::applyAnimationToValue): added.
* ksvg2/svg/SVGAnimateColorElement.h:
* ksvg2/svg/SVGAnimateElement.cpp:
* ksvg2/svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::applyAnimationToValue): added.
* ksvg2/svg/SVGAnimateTransformElement.h:
* ksvg2/svg/SVGAnimationElement.cpp:
(WebCore::calculateTimePercentage): logic moved from SVGTimer
(WebCore::SVGAnimationElement::updateForElapsedSeconds): logic moved from SVGTimer
* ksvg2/svg/SVGAnimationElement.h:
* ksvg2/svg/SVGTransformList.cpp:
(SVGTransformList::concatenate): fixed spacing
2007-01-01 Eric Seidel <eric@webkit.org>
Reviewed by olliej.
Split out animationsByElement() logic in preparation for adding AnimationCompositor class
Add addColorsAndClamp helper (since adding and clamping is the common case)
* ksvg2/misc/SVGTimer.cpp:
(WebCore::SVGTimer::animationsByElement): split out from notifyAll
(WebCore::SVGTimer::notifyAll):
* ksvg2/misc/SVGTimer.h:
* ksvg2/svg/SVGAnimateColorElement.cpp:
(WebCore::SVGAnimateColorElement::addColorsAndClamp): added.
* ksvg2/svg/SVGAnimateColorElement.h:
2006-12-31 Eric Seidel <eric@webkit.org>
Reviewed by olliej.
Split KSVGTimeScheduler into SVGTimer and TimeScheduler.
(Basic clean-up before re-working animation system)
* WebCore.xcodeproj/project.pbxproj:
* ksvg2/misc/KSVGTimeScheduler.cpp: Removed.
* ksvg2/misc/KSVGTimeScheduler.h: Removed.
* ksvg2/misc/SVGTimer.cpp: Added.
(WebCore::SVGTimer::SVGTimer):
(WebCore::SVGTimer::calculateTimePercentage):
(WebCore::SVGTimer::notifyAll):
* ksvg2/misc/SVGTimer.h: Added.
* ksvg2/misc/TimeScheduler.cpp: Added.
(WebCore::TimeScheduler::TimeScheduler):
2006-12-31 Eric Seidel <eric@webkit.org>
Reviewed by olliej.
Re-enable animateTransform (now that SVGList is fixed)
(Things are only "less broken" not totally fixed yet.)
* ksvg2/misc/KSVGTimeScheduler.cpp:
(WebCore::SVGTimer::notifyAll):
2006-12-31 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- http://bugs.webkit.org/show_bug.cgi?id=12049
RenderBlock::calcMinMaxWidth() should not examine children of fixed-width blocks
No test possible (no change to functionality).
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::calcMinMaxWidth): Call calc{Inline,Block}MinMaxWidth()
only if their result is needed.
== Rolled over to ChangeLog-2006-12-31 ==