blob: e512a99b294ba17b76231f36d00a55d6598b70b7 [file] [log] [blame]
2007-05-03 Holger Freyther <freyther@kde.org>
Reviewed by Zack, landed by Simon.
This is bugzilla bug 13499.
* WebCore.pro: Place the Qt port into the qt-port scope, add the Gdk port
2007-05-03 Adele Peterson <adele@apple.com>
Use BUILDING_ON_TIGER.
* page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry):
2007-05-03 Brady Eidson <beidson@apple.com>
Reviewed by Darin
Some more minor cleanup that resolves a FIXME and ditches another pointless method
No change in functionality == no layout test
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::commitProvisionalLoad): Updated a comment
(WebCore::FrameLoader::continueLoadAfterWillSubmitForm): Folded startLoading() into this method
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy): continueAfterWillSubmitForm becomes continueLoadAfterWillSubmitForm
* loader/FrameLoader.h: Removed startLoading()
2007-05-03 Adele Peterson <adele@apple.com>
Reviewed by Tim Hatcher.
Fix for <rdar://problem/4727607> REGRESSION: KeyScript is deprecated, need a new solution for forcing Roman input for password fields on Leopard
* page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry):
Use TSMSetDocumentProperty and TSMRemoveDocumentProperty on Leopard disable and enable non-ascii input sources.
2007-05-03 Brady Eidson <beidson@apple.com>
Reviewed by Anders
commitProvisionalLoad() was the name of two methods.
One of them was private and only called from one other private place.
This was driving me crazy. I had to change that.
No change in functionality == no layout test
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::transitionToCommitted): roll commitProvisionalLoad() into this method
* loader/FrameLoader.h: Removed commitProvisionalLoad()
2007-05-03 Darin Adler <darin@apple.com>
Reviewed by Anders.
- make ICU initialization lazy to speed up application start-up time
(when it includes an initial webpage load)
* platform/TextCodecICU.h: Replaced registerEncodingNames and
registerCodecs with registerBaseEncodingNames, registerBaseCodecs,
registerExtendedEncodingNames, and registerExtendedCodecs.
* platform/TextCodecICU.cpp:
(WebCore::newTextCodecICU): Moved up to the top of the file.
(WebCore::TextCodecICU::registerBaseEncodingNames): Added. Registers
just UTF-8.
(WebCore::TextCodecICU::registerBaseCodecs): Ditto.
(WebCore::TextCodecICU::registerExtendedEncodingNames): Renamed.
(WebCore::TextCodecICU::registerExtendedCodecs): Ditto.
(WebCore::TextCodecICU::createICUConverter): Compare with the name
"GBK" in a way that does not require extending the maps.
* platform/TextEncoding.cpp:
(WebCore::TextEncoding::usesVisualOrdering): Added code so this will
just return false if we haven't used any extended encoding names yet.
The result will be correct, and we won't ask for an encoding name that
will require registering the extended encoding names.
(WebCore::TextEncoding::isJapanese): Ditto.
(WebCore::TextEncoding::backslashAsCurrencySymbol): Ditto, but return
a backslash instead of false.
* platform/TextEncodingRegistry.h: Added a new function named
noExtendedTextEncodingNameUsed.
* platform/TextEncodingRegistry.cpp:
(WebCore::buildBaseTextCodecMaps): Added. Registers the base encodings,
including Latin-1 because it's the default, and the UTF encodings.
(WebCore::extendTextCodecMaps): Added. Registers all the other encodings.
(WebCore::newTextCodec): Removed the all to buildTextCodecMap because
we always build the map when making the canonical encoding name.
(WebCore::atomicCanonicalTextEncodingName): Changed code to build only
the base maps at first, then extend the maps the first time we run into
a name we don't know.
(WebCore::noExtendedTextEncodingNameUsed): Added.
2007-05-03 Mark Rowe <mrowe@apple.com>
Qt build fix. In r21185 the Qt version of WebCore::scaleDragImage was
updated to have the incorrect signature.
* platform/qt/DragImageQt.cpp:
(WebCore::scaleDragImage):
2007-05-02 Beth Dakin <bdakin@apple.com>
* dom/Node.h: Just fixing a variable name because it's driving me
mad.
2007-05-02 Beth Dakin <bdakin@apple.com>
Reviewed by Hyatt.
Fix for <rdar://problem/4513966> Never-ending identical repaint @
orbitz.com (Safari eating 85% CPU)
We need to be a little bit more savvy about when we do a FULL style
recalc since it can be unnecessary and expensive.
* css/CSSMutableStyleDeclaration.cpp:
(WebCore::CSSMutableStyleDeclaration::setChanged): Now takes a
StyleChangeType as a parameter.
(WebCore::CSSMutableStyleDeclaration::setProperty): Send
InlineStyleChange as the paramter. This is the optimization!
* css/CSSMutableStyleDeclaration.h: setChanged takes a
StyleChangeType as a parameter.
* dom/Document.cpp: setChanged now takes a StyleChangeType instead
of a bool.
(WebCore::Document::recalcStyle): Same.
* dom/Element.cpp:
(WebCore::Element::recalcStyle): This is the fix!! Only set change
to Force is we use descendant rules AND it's a FullStyleChange.
* dom/Node.cpp: m_hasStyle was an unused bit on Node, so this patch
gets rid of it and uses that extra bit for m_changed to be a
StyleChangeType instead of a bool.
(WebCore::Node::Node):
(WebCore::Node::setChanged):
(WebCore::Node::dump):
* dom/Node.h: Same.
(WebCore::): Define the StyleChangeType enum.
(WebCore::Node::hasClass):
(WebCore::Node::changed):
(WebCore::Node::styleChangeType):
(WebCore::Node::setHasClass):
* dom/StyledElement.cpp:
(WebCore::StyledElement::parseMappedAttribute): Don't bother
calling setHasStyle() since m_hasStyle is gone now. It was never
used, and this was the only place it was set.
* dom/Text.cpp:
(WebCore::Text::recalcStyle): setChanged now takes a
StyleChangeType instead of a bool.
* html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::recalcStyle): Same.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::restoreState): Same.
(WebCore::HTMLSelectElement::reset): Same.
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::setValue): Same.
* ksvg2/misc/SVGTimer.cpp:
(WebCore::SVGTimer::applyAnimations): Same.
* ksvg2/svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::recalcStyle): Same.
* platform/graphics/svg/SVGResource.cpp:
(WebCore::SVGResource::repaintClients): Same.
2007-05-02 David Harrison <harrison@apple.com>
Reviewed by Antti.
<rdar://problem/4859132> Grammar must always be checked in entire-sentence chunks, and shouldn't show markers for current sentence
Restore the remainder of the original fix now that blocking bug rdar://5174862 is addressed.
John made the original patch on 2007-04-10, but this fell prey to rdar://5157329.
Justin backed out the whole patch on 2007-04-30 to avoid the crash.
Justin then restored most of the original patch, but used word granularity instead, to keep the build working.
I just addressed the root cause of rdar://5157329 in rdar://5174862.
This patch switches the temp uses of word granularity back to sentence granularity.
* editing/mac/EditorMac.mm:
(WebCore::Editor::markMisspellingsAfterTypingToPosition):
* page/Frame.cpp:
(WebCore::Frame::respondToChangedSelection):
2007-05-02 David Harrison <harrison@apple.com>
Reviewed by Antti.
<rdar://problem/5174862> Crash resulting from DeprecatedString::insert()
Test added: editing/selection/move-by-sentence-001.html
* editing/visible_units.cpp:
(WebCore::previousBoundary):
(WebCore::nextBoundary):
Use a UChar Vector instead of DeprecatedString.
Avoid creating an extra string for secure bullet replacement unless it is actually needed.
* platform/DeprecatedString.cpp:
(WebCore::DeprecatedString::insert):
Call forceUnicode() before setLength(), so that only the unicode buffer is resized.
(WebCore::DeprecatedString::setLength):
Adjust the unicode buffer even if the ascii buffer is valid.
2007-05-02 Mitz Pettel <mitz@webkit.org>
Reviewed by Brady.
- http://bugs.webkit.org/show_bug.cgi?id=13564
Remove friend class FrameLoader from Frame
No test added since there is no change in functionality.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didOpenURL):
(WebCore::FrameLoader::begin):
(WebCore::FrameLoader::open):
* loader/FrameLoader.h: Made clear() private.
* page/Frame.cpp:
(WebCore::Frame::setDocument): Changed the argument into a PassRefPtr.
* page/Frame.h:
* xml/XSLTProcessor.cpp:
(WebCore::XSLTProcessor::createDocumentFromSource):
2007-05-02 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=9276
Quirksmode: Image swap resize bug
Test: fast/replaced/image-resize-width.html
* rendering/RenderImage.cpp:
(WebCore::RenderImage::imageChanged): Moved the call to dirtyPrefWidths()
before the call to calcWidth().
2007-05-02 David Hyatt <hyatt@apple.com>
Fix for bug 13566, broken Dashboard widgets. setPrefWidthsDirty did
the wrong thing for text children of a positioned element.
Reviewed by mitz
fast/block/positioning/pref-width-change.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::setPrefWidthsDirty):
2007-05-01 Darin Adler <darin@apple.com>
* rendering/RenderReplaced.cpp: Fix typo in a comment.
2007-05-01 David Hyatt <hyatt@apple.com>
Fix for 13558, crash when using absolutely positioned generated content
inside an inline.
Reviewed by darin
fast/css-generated-content/absolute-position-inside-inline.html
* rendering/RenderContainer.cpp:
(WebCore::RenderContainer::updateBeforeAfterContentForContainer):
2007-05-01 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5002441>
Pressing space key does nothing above quoted content or a signature
Inserting a space under these circumstances inserts a single
text node containing a regular space and then does a layout.
That space isn't rendered (which is correct). Whitespace
rebalancing is supposed to correct it but failed. It replaces
the space with a non-breaking space, but that change doesn't
dirty line boxes (9441) and so the space isn't rendered.
This workaround turns all incoming spaces into non-breaking
spaces before they're inserted (they're rebalanced after
insertion and turned back into regular spaces if possible).
* editing/InsertTextCommand.cpp:
(WebCore::InsertTextCommand::prepareForTextInsertion): Removed
an old irrelevant FIXME.
(WebCore::InsertTextCommand::input): Turn incoming spaces into
non breaking spaces before inserting them.
2007-05-01 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13559
REGRESSION: Canvas aspect ratio is incorrect
- remove intrinsicWidth/Height functions from RenderObject
Test: fast/canvas/canvas-size-change-after-layout.html
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::createRenderer): Removed code to set
the intrinsic size, because the renderer now takes care of this
in its constructor.
(WebCore::HTMLCanvasElement::reset): Instead of calling the
setIntrinsicWidth/Height functions, call canvasSizeChanged, which
takes care of layout, but only if the size actually changed. Also
call repaint if the contents of the canvas changed.
* rendering/RenderApplet.h:
* rendering/RenderApplet.cpp: (WebCore::RenderApplet::intrinsicSize):
Override the new intrinsicSize function. This override still doesn't
make sense, so left a FIXME in here.
* rendering/RenderBox.h: Added an intrinsicSize function here to replace
the intrinsicWidth/Height functions removed from RenderObject.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::calcReplacedWidthUsing): Use intrinsicSize instead
of intrinsicWidth.
(WebCore::RenderBox::calcReplacedHeightUsing): Ditto, but for height.
* rendering/RenderHTMLCanvas.h: Changed the constructor parameter to be
an HTMLCanvasElement* instead of Node*. Also added a canvasSizeChanged
function.
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::RenderHTMLCanvas): Pass an initial intrinsic
size based on the current size of the canvas element. This is now the
responsibility of the renderer and the DOM element calls the canvasSizeChanged
function when the size changes.
(WebCore::RenderHTMLCanvas::paint): Removed checks of the type of the element,
and used the node() function because we don't have to worry about the anonymous
case in this class.
(WebCore::RenderHTMLCanvas::canvasSizeChanged): Added. Changes the size and
then calls setNeedsLayout and setPrefWidthsDirty as needed. I based the logic
here on careful reading of RenderImage::imageChanged.
* rendering/RenderImage.cpp:
(WebCore::RenderImage::RenderImage): Pass a default intrinsic size of 0,0
instead of calling setIntrinsicWidth/Height.
(WebCore::RenderImage::setImageSizeForAltText): Call the new intrinsic size
functions instead of the width/height ones. Simplifies the logic since we
handle both dimensions at once.
(WebCore::RenderImage::imageChanged): Ditto.
(WebCore::RenderImage::layout): Ditto.
(WebCore::RenderImage::calcAspectRatioWidth): Ditto.
(WebCore::RenderImage::calcAspectRatioHeight): Ditto.
* rendering/RenderObject.h: Removed intrinsicWidth/Height virtual functions.
* rendering/RenderReplaced.h: Replaced intrinsicWidth, intrinsicHeight,
setIntrinsicWidth, setIntrinsicHeight, m_intrinsicWidth, and m_intrinsicHeight
with intrinsicSize, setIntrinsicSize, and m_intrinsicSize.
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::RenderReplaced): Added a second contructor that takes
an intrinsic size parameter. Also updated constructor since the intrinsic size
is now an IntSize instead of two integers.
(WebCore::RenderReplaced::intrinsicSize): Added. No point in making this inline
because it's a virtual function.
(WebCore::RenderReplaced::setIntrinsicSize): Added. Didn't make this inline,
partly because in the future we might want this to be more than just a simple
setter function, factoring in common code used in both RenderImage and
RenderHTMLCanvas.
* rendering/RenderWidget.h: Removed a stray using declaration that wasn't needed.
2007-05-01 David Hyatt <hyatt@apple.com>
Fix for hang when incorrectly trying to add before/after content to
a <select>. Disallow generated content in all selects and also turn it
off for <input> buttons.
Reviewed by aroben
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::setStyle):
* rendering/RenderButton.cpp:
(WebCore::RenderButton::canHaveChildren):
* rendering/RenderButton.h:
2007-05-01 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- removed the m_implicit bit from Node, freeing up a bit
- fixed <rdar://problem/5172607> XML parser is creating implicit tbody elements
- fixed <rdar://problem/5172596> HTML-parser-created tbody elements are being
ignored when processing CSS child rules
Test: fast/css/child-selector-implicit-tbody.html
* css/cssstyleselector.cpp: (WebCore::CSSStyleSelector::checkSelector):
Removed code that used to look at implicitNode(), which no longer exists.
* css/html4.css: Added a style rule to handle cases where we have a tr
inside a table with no intervening table section.
* dom/Node.h: Removed the bit.
* dom/Node.cpp:
(WebCore::Node::Node): Don't initialize the bit.
(WebCore::Node::dump): Don't dump the bit.
* dom/XMLTokenizer.cpp:
(WebCore::XMLTokenizer::startElementNs): Remove the code that made a
table body element. This is handled in the render tree, the DOM tree
should not be mangled.
(WebCore::XMLTokenizer::endElementNs): Removed code that used to look at
implicitNode(), which no longer exists.
* html/HTMLElementFactory.cpp: (WebCore::tableSectionConstructor):
Removed boolean parameter that was passed to the HTMLTableSectionElement
constructor.
* html/HTMLParser.cpp: (WebCore::HTMLParser::handleError): Ditto.
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::createTHead): Ditto.
(WebCore::HTMLTableElement::createTFoot): Ditto.
(WebCore::HTMLTableElement::insertRow): Changed to return a PassRefPtr,
because it's possible the row could be removed from the table by JavaScript
code responding to DOM mutation events before the function returns. Just
something I noticed by code inspection.
* html/HTMLTableSectionElement.cpp:
(WebCore::HTMLTableSectionElement::HTMLTableSectionElement): Removed
boolean "implicit" parameter to the constructor.
(WebCore::HTMLTableSectionElement::insertRow): Changed to return a
PassRefPtr for the same reason cited above.
* html/HTMLTableElement.h: Changed the return value of insertRow to be
a PassRefPtr.
* html/HTMLTableSectionElement.h: Ditto.
2007-04-30 David Hyatt <hyatt@apple.com>
Fix for bug 12691, generated content and display: table-cell duplicates
content on a size change. Make sure that the code to update before/after
content is smart enough to drill into anonymous containers to find the
old child.
Reviewed by olliej
Added fast/css-generated-content/table-cell-before-content.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::setStyle):
* rendering/RenderButton.cpp:
(WebCore::RenderButton::updateBeforeAfterContent):
* rendering/RenderButton.h:
* rendering/RenderContainer.cpp:
(WebCore::RenderContainer::beforeAfterContainer):
(WebCore::RenderContainer::updateBeforeAfterContent):
(WebCore::RenderContainer::updateBeforeAfterContentForObject):
* rendering/RenderContainer.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::setStyle):
(WebCore::RenderInline::addChildToFlow):
(WebCore::RenderInline::splitInlines):
2007-04-30 Jungshik Shin <jungshik.shin@gmail.com>
Reviewed by justin
<http://bugs.webkit.org/show_bug.cgi?id=13552>
comment to Range::comparePoint in dom/Range.cpp has
'0xD0' in place of '-': leading to a compiler warning
* dom/Range.cpp:
(WebCore::Range::comparePoint):
2007-04-30 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/4875189> List gets deleted when replacing contents
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::doApply): Don't expand
to include elements, like lists, when deleting a selection
to replace it.
2007-04-30 Justin Garcia <justin.garcia@apple.com>
Reviewed by ggaren
Buildfix. Leave in grammar checking machinery to
keep WebKit building on other platforms but don't
operate on sentence sized chunks so that we don't
re-introduce 5157329.
* editing/Editor.h:
* editing/mac/EditorMac.mm:
(WebCore::Editor::markMisspellingsAfterTypingToPosition):
(WebCore::markMisspellingsOrBadGrammar):
(WebCore::Editor::markMisspellings):
(WebCore::Editor::markBadGrammar):
* page/Frame.cpp:
(WebCore::Frame::respondToChangedSelection):
2007-04-30 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5168598>
Crash when deleting a link inside an input field
Deletion code tries to update one of its positions to keep
it valid and nullifies it. Later in mergeParagraphs we try
to find out if it's valid by checking to see if it's still in
the document and crash.
The fix is just to not bother keeping the position,
m_upstreamStart, valid, since after the point in the code
under examination, it doesn't need to be valid anymore.
Besides, code to update DeleteSelectionCommand's positions
should go in the functions that handle the content removal
that might invalid them (there are already FIXMEs about this).
Also, users shouldn't be able to insert links (or any rich content)
into plaintext-only regions like text fields, even if those
text fields are inside richly editable regions. This is a
separate bug and is filed as 5171552.
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::handleGeneralDelete): Don't
bother updating m_upstreamStart.
2007-04-30 Patti Hoa <patti@apple.com>
Reviewed by Dave Hyatt.
<rdar://problem/5108546> REGRESSION: Zoom follows keyboard focus does not work
* WebCore.xcodeproj/project.pbxproj:
Add new file SelectionControllerMac.mm
* dom/Document.cpp:
(WebCore::Document::updateSelection):
Move the code to fire off AXSelectedTextChanged notification to a new method notifyAccessibilityForSelectionChange in SelectionControllerMac.mm
* editing/SelectionController.cpp:
(WebCore::SelectionController::setSelection):
call notifyAccessibilityForSelectionChange to handle firing of accessibility notification and zoomFocusChange
* editing/SelectionController.h:
Add notifyAccessibilityForSelectionChange method for Mac platform
* platform/Widget.h:
* platform/mac/WidgetMac.mm:
(WebCore::Widget::convertToScreenCoordinate):
Add a helper routine that takes IntPoint in local coordinate and convert that to screen coordinate
2007-04-30 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/5157329>
REGRESSION: Crash at WTF::fastFree() when arrowing or deleting backward through editable text (13493)
Backing out the changes for 4859132.
* editing/Editor.h:
* editing/mac/EditorMac.mm:
(WebCore::Editor::markMisspellingsAfterTypingToPosition):
(WebCore::Editor::markMisspellings):
* page/Frame.cpp:
(WebCore::Frame::respondToChangedSelection):
2007-04-29 Antti Koivisto <antti@apple.com>
Reviewed by Oliver.
Fix <rdar://problem/5169261>
REGRESSION: Google Maps zooming too sensitive when using two fingers on trackpad
Use line based delta values when generating DOM wheel events, use pixel deltas
for scrolling only.
No test case, requires user interaction and specific hardware.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEvent):
* platform/PlatformWheelEvent.h:
(WebCore::PlatformWheelEvent::continuousDeltaX):
(WebCore::PlatformWheelEvent::continuousDeltaY):
* platform/mac/WheelEventMac.mm:
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
2007-04-29 Oliver Hunt <oliver@apple.com>
Reviewed by Brady.
Build fix for experimental features build
* rendering/RenderForeignObject.cpp:
2007-04-29 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13544
REGRESSION (r21120): Member profile frame not erased at Yahoo! Answers
Test: fast/repaint/layer-hide-when-needs-layout.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::setStyle): If we get a layout hint, we count on
layout() or updateLayerPositions() to repaint. In the case of a layer
going invisible, however, we need to repaint here since neither of the
above will do it.
2007-04-29 Oliver Hunt <oliver@apple.com>
Reviewed by Steve.
Fix for <rdar://problem/5126393> REGRESSION (r19672-19697): Safari drag image drags at original size (13261)
Added logic to ensure that when we create the drag image
we're looking at the rendered image size.
* page/DragController.cpp:
(WebCore::DragController::doImageDrag):
Pass the rendered image size to fitDragImageToMaxSize
* platform/DragImage.cpp:
(WebCore::fitDragImageToMaxSize):
Need to do scaling relative to rendered image size
* platform/DragImage.h:
scaleDragImage needs x and y scales to allow for them to be
scaled seperately on a page
* platform/gdk/DragImageGdk.cpp:
(WebCore::scaleDragImage):
Prevent build bustage
* platform/mac/DragImageMac.mm:
(WebCore::scaleDragImage):
scale width and height independently
* platform/qt/DragImageQt.cpp:
(WebCore::scaleDragImage):
Prevent build bustage
2007-04-29 Darin Adler <darin@apple.com>
Reviewed by Adele.
- fix the Gmail part of http://bugs.webkit.org/show_bug.cgi?id=12798
and <rdar://problem/4118559>
This patch changes things so that resizing can make things larger than their
initial size, but not smaller. I believe this resolves the problem for Gmail,
but you can still get strange behavior if you have a small right-aligned <textarea>.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::resize): Rewrote to use more IntPoint and IntSize and add
in a new minimum-size algorithm. This function now has the side effect of storing
a new minimumSizeForResizing in the element being resized, and respects any existing
minimum as well.
(WebCore::RenderLayer::offsetFromResizeCorner): Reversed this so it converts the
point into coordinates relative to the resize corner, hence negative numbers mean
the point is above and to the left. This is used only in the algorithm above.
* dom/Element.h: Removed unneeded include of Attr.h, and added forward declarations
as needed. Removed all friend declarations; there was no need for any of them.
Tweaked formatting of various declarations and removed unneeded parameter names.
Made as much as possible private, and a couple things public to avoid the need for
friend classes. Added minimumSizeForResizing, setMinimumSizeForResizing, rareData,
and createRareData functions.
* dom/Element.cpp:
(WebCore::rareDataMap): Added. Function to return the single global map.
(WebCore::rareDataFromMap): Added. For use by inlined functions to get the
data from the map in the case where it's present.
(WebCore::ElementRareData::ElementRareData): Added.
(WebCore::Element::~Element): Added code to delete the element from the rare
data map when appropriate.
(WebCore::Element::rareData): Added.
(WebCore::Element::createRareData): Added.
(WebCore::Element::setAttributeNodeNS): Got rid of the old inline version of this,
since it was the sole reason we had to include Attr.h in Element.h.
(WebCore::Element::minimumSizeForResizing): Added. Accesses rare data.
(WebCore::Element::setMinimumSizeForResizing): Ditto.
* dom/Node.h: Renamed the m_specified bit since it's now used for two purposes.
Its new long name is m_attrWasSpecifiedOrElementHasRareData.
* dom/Attr.cpp: (WebCore::Attr::Attr): Updated for bit name change.
* dom/Attr.h:
(WebCore::Attr::specified): Ditto.
(WebCore::Attr::setSpecified): Added, since setting the bit directly is pretty ugly now.
* dom/Document.cpp: (WebCore::Document::adoptNode): Updated for bit name change.
* dom/Node.cpp:
(WebCore::Node::Node): Ditto.
(WebCore::Node::dump): Ditto.
* dom/NamedAttrMap.cpp: (WebCore::NamedAttrMap::isReadOnlyNode): Moved out of line,
since this was the sole reason we had to include Element.h in NamedAttrMap.h.
* html/HTMLElement.cpp:
(WebCore::HTMLElement::nodeName): Changed to use tagQName() since that's a public
way to do something that's now private.
(WebCore::HTMLElement::cloneNode): Ditto.
* dom/Attribute.cpp:
* dom/NamedAttrMap.h:
* dom/NamedMappedAttrMap.cpp:
* dom/StyledElement.h:
* html/HTMLTokenizer.h:
* xml/XPathFunctions.cpp:
* xml/XPathStep.cpp:
Updated includes, and other administrivia.
2007-04-29 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin and Hyatt.
- http://bugs.webkit.org/show_bug.cgi?id=13487
Implement O(1) absoluteClippedOverflowRect and absoluteOutlineBox during layout for a possible speed gain
Test for a bug fixed by this patch: fast/repaint/intermediate-layout-position-clip.html
By keeping track of the total translation and clip during layout, absolutePosition and
computeAbsoluteRepaintRect become O(1).
* WebCore.pro: Added LayoutState.cpp
* WebCore.vcproj/WebCore/WebCore.vcproj: Added LayoutState.{cpp,h}
* WebCore.xcodeproj/project.pbxproj: Added LayoutState.{cpp,h}
* WebCoreSources.bkl: Added LayoutState.cpp
* page/FrameView.cpp:
(WebCore::FrameView::layout): When doing subtree layout, push an initial layout state for the
layout root.
* rendering/LayoutState.cpp: Added. A LayoutState corresponding to a box consists of the origin of
its coordinate system in view coordinates and possibly the clip rect, in view coordinates, which
applies to its children.
(WebCore::LayoutState::LayoutState):
(WebCore::LayoutState::destroy):
(WebCore::throw):
(WebCore::LayoutState::operator delete):
* rendering/LayoutState.h: Added.
(WebCore::LayoutState::LayoutState):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock): Factored out the "only positioned objects" case into
layoutOnlyPositionedObjects(). Added code to push/pop LayoutState, unless we have columns, in
which case we disable/enable LayoutState. Removed the translation by the layout delta
of the old absolute rects, since that is now integral to absoluteClippedOverflowRect() and
absoluteOutlineBox().
(WebCore::RenderBlock::layoutOnlyPositionedObjects): Added this helper function that checks for
and handles the case where only positioned objects need layout. Returns true in that case.
(WebCore::RenderBlock::repaintOverhangingFloats): Disabled LayoutState when repainting floats, since
they may belong to other containers.
(WebCore::RenderBlock::updateFirstLetter): Disabled LayoutState when adding and removing from the
first letter container, since it may be different than ourselves.
* rendering/RenderBlock.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::setStyle): Minor cleanup: changed element()->document() to the equivalent document().
(WebCore::RenderBox::offsetForPositionedInContainer): Added. Factored out common code from
absolutePosition, computeAbsoluteRepaintRect and RenderLayer::updateLayerPosition into this function.
(WebCore::RenderBox::absolutePosition): Added an O(1) code path when this function is called during
layout (and LayoutState has not been disabled). Factored out some code into
offsetForPositionedInContainer.
(WebCore::RenderBox::absoluteClippedOverflowRect): Added the layout delta here, so callers don't need
to.
(WebCore::RenderBox::computeAbsoluteRepaintRect): Added an O(1) code path when this function is called
during layout (and LayoutState has not been disabled). Factored out some code into
offsetForPositionedInContainer.
* rendering/RenderContainer.cpp:
(WebCore::RenderContainer::layout): Added LayoutState push/pop.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock): Factored out the "only positioned objects" case into
layoutOnlyPositionedObjects(). Added LayoutState push/pop. Removed the translation by the layout delta
of the old absolute rects, since that is now integral to absoluteClippedOverflowRect() and
absoluteOutlineBox().
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::absoluteClippedOverflowRect): Added an ASSERT.
* rendering/RenderForeignObject.cpp:
(WebCore::RenderForeignObject::layout): Disabled LayoutState because it is incompatible with arbitrary
affine transforms.
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::layout): Removed the translation by the layout delta of the old absolute
rects, since that is now integral to absoluteClippedOverflowRect() and absoluteOutlineBox().
* rendering/RenderImage.cpp:
(WebCore::RenderImage::layout): Ditto.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions): Added ASSERTs. Factored out some code into
RenderBox::offsetForPositionedInContainer.
(WebCore::RenderLayer::updateScrollInfoAfterLayout): Disabled LayoutState around the call to
scrollToOffset.
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::updateMarkerLocation): Disabled LayoutState when moving the list marker, since
it can trigger repainting in other containers.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::isRoot): Minor cleanup: changed element()->document() to the equivalent
document().
(WebCore::RenderObject::computeAbsoluteRepaintRect): Removed 'return' at the end of the function.
(WebCore::RenderObject::container): Reordered to avoid calling isText() twice.
(WebCore::RenderObject::absoluteOutlineBox): Added the layout delta here, so callers don't need to.
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::layout): Disabled LayoutState because it is incompatible with arbitrary
affine transforms.
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout): Factored out the "only positioned objects" case into
layoutOnlyPositionedObjects(). Added LayoutState push/pop. Removed the translation by the layout delta
of the old absolute rects, since that is now integral to absoluteClippedOverflowRect() and
absoluteOutlineBox().
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::absoluteClippedOverflowRect): Added the layout delta here, so callers
don't need to.
(WebCore::RenderTableCell::computeAbsoluteRepaintRect): For the O(1) code path, skipped the correction
for the parent row, because RenderTableRow doesn't push a translation into LayoutState.
(WebCore::RenderTableCell::absolutePosition): Ditto.
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::layout): Added LayoutState push/pop.
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::setCellWidths): Added LayoutState push/pop if cells are repainted or
receive layout.
(WebCore::RenderTableSection::calcRowHeight): Ditto.
(WebCore::RenderTableSection::layoutRows): Added LayoutState push/pop.
* rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
(WebCore::RenderView::layout): Added initial LayoutState setup for the layout.
(WebCore::RenderView::paintBoxDecorations): Minor cleanup: changed element()->document() to the
equivalent document().
(WebCore::RenderView::repaintViewRectangle): Ditto.
(WebCore::RenderView::pushLayoutState): Added. Pushes initial layout state for subtree layout.
* rendering/RenderView.h:
(WebCore::RenderView::pushLayoutState):
(WebCore::RenderView::popLayoutState):
(WebCore::RenderView::layoutState):
(WebCore::RenderView::disableLayoutState):
(WebCore::RenderView::enableLayoutState):
2007-04-29 David Hyatt <hyatt@apple.com>
Fix for bugzilla 13535, regression from positioning cleanup a while
back. Some code got added to compute available width for a relpositioned
inline, only the code meant to be used for inline flows and not inline blocks.
Reviewed by mjs
fast/block/positioning/inline-block-relposition.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::containingBlockWidthForPositioned):
2007-04-29 Oliver Hunt <oliver@apple.com>
Reviewed by Zack.
Implement basic drag and drop support for qt
this allows content and link dragging but does not
provide the DOM data access methods.
* platform/DragData.h:
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::ClipboardQt):
(WebCore::ClipboardQt::~ClipboardQt):
(WebCore::ClipboardQt::clearData):
(WebCore::ClipboardQt::clearAllData):
(WebCore::ClipboardQt::setData):
(WebCore::ClipboardQt::declareAndWriteDragImage):
(WebCore::ClipboardQt::writeURL):
(WebCore::ClipboardQt::writeRange):
(WebCore::ClipboardQt::hasData):
* platform/qt/ClipboardQt.h:
(WebCore::ClipboardQt::clipboardData):
(WebCore::ClipboardQt::invalidateWritableData):
* platform/qt/DragDataQt.cpp:
(WebCore::DragData::canSmartReplace):
(WebCore::DragData::containsPlainText):
(WebCore::DragData::asPlainText):
(WebCore::DragData::createClipboard):
(WebCore::DragData::containsCompatibleContent):
(WebCore::DragData::containsURL):
(WebCore::DragData::asURL):
(WebCore::DragData::asFragment):
2007-04-28 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin and Oliver.
- change Document to hold onto Frame* instead of FrameView*
This is an architectural cleanup and a prerequisite to fixing citibank login
in an architecturally sound way.
Some fixups for the page cache:
* history/CachedPage.cpp:
(WebCore::CachedPage::restore): Add an assert that the document's view
matches the cached page's view - this needs to be true by the time this
function is called.
(WebCore::CachedPage::clear): Change assert to require frame matching, not
view matching.
* history/CachedPage.h:
(WebCore::CachedPage::view): Add a way to get the view out.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::begin): pass Frame, not FrameView, when creating document
(WebCore::FrameLoader::open): restore view based on CachedPage, not Document.
Remaining changes are just straightforward updates based on which
pointer is held or passed:
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument):
(WebCore::DOMImplementation::createHTMLDocument):
* dom/DOMImplementation.h:
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::view):
(WebCore::Document::frame):
(WebCore::Document::recalcStyle):
(WebCore::Document::updateLayout):
(WebCore::Document::attach):
(WebCore::Document::detach):
(WebCore::Document::createTokenizer):
(WebCore::Document::recalcStyleSelector):
(WebCore::Document::setInPageCache):
(WebCore::Document::applyXSLTransform):
* dom/Document.h:
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::HTMLDocument):
* html/HTMLDocument.h:
* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::HTMLViewSourceDocument):
* html/HTMLViewSourceDocument.h:
* ksvg2/svg/SVGDocument.cpp:
(WebCore::SVGDocument::SVGDocument):
* ksvg2/svg/SVGDocument.h:
* loader/ImageDocument.cpp:
(WebCore::ImageDocument::ImageDocument):
* loader/ImageDocument.h:
* loader/PluginDocument.cpp:
(WebCore::PluginDocument::PluginDocument):
* loader/PluginDocument.h:
* loader/TextDocument.cpp:
(WebCore::TextDocument::TextDocument):
* loader/TextDocument.h:
* xml/XSLTProcessor.cpp:
(WebCore::XSLTProcessor::createDocumentFromSource):
(WebCore::XSLTProcessor::transformToDocument):
* xml/XSLTProcessor.h:
2007-04-28 Adele Peterson <adele@apple.com>
RS by Darin.
Update to fix for <rdar://problem/5152299>
Test: fast/events/no-blur-on-enter-button.html
* html/HTMLButtonElement.cpp: (WebCore::HTMLButtonElement::defaultEventHandler):
Don't blur the button when handling the enter key. This matches our new behavior for input elements.
2007-04-28 Adele Peterson <adele@apple.com>
Fix by Darin, reviewed by me.
Fix for <rdar://problem/5152299> REGRESSION: <button> elements do not respond to space and return key as similar <input> elements do
Tests:
fast/forms/button-spacebar-click.html
fast/forms/button-enter-click.html
* html/HTMLButtonElement.h: (WebCore::HTMLButtonElement::): Made type enum private.
Removed unnecessary m_value and m_currValue, and unused m_dirty.
* html/HTMLButtonElement.cpp:
(WebCore::HTMLButtonElement::HTMLButtonElement): Removed initialization of m_dirty.
(WebCore::HTMLButtonElement::parseMappedAttribute): Removed case to parse value and accesskey attributes, which don't do anything.
(WebCore::HTMLButtonElement::defaultEventHandler): Removed unnecessary check for button type.
Added cases to handle spacebar and enter keys in the same way that they're handled for <input type=button/reset/submit> buttons.
(WebCore::HTMLButtonElement::isSuccessfulSubmitButton): Shortened comment.
(WebCore::HTMLButtonElement::appendFormData): Use value() instead of m_currValue. Renamed encoding argument to formData.
2007-04-28 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13501
REGRESSION (r21093): Pasting into text field fails and makes the caret disappear
Test: fast/dynamic/anonymous-block-layer-lost.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::removeChild): Avoid cutting off layers when removing
the anonymous block.
2007-04-28 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13471
REGRESSION (r21045): Secure keyboard entry mode remains in effect after leaving a password field by submitting
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::clear): Replaced direct access to Frame's d->m_doc
with a call to Frame::setDocument.
(WebCore::FrameLoader::begin): Ditto.
(WebCore::FrameLoader::open): Ditto.
(WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady): Ditto.
(WebCore::FrameLoader::canCachePage): Added a comment.
* manual-tests/secure-keyboard-enabled-after-submit.html: Added.
* page/Frame.cpp:
(WebCore::Frame::setDocument): Reset secure keyboard entry, in case the
old document's focused node has set it.
2007-04-28 Mitz Pettel <mitz@webkit.org>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=13379
REGRESSION: Cannot add an option to a selected popup
* manual-tests/update-empty-popup.html: Added.
* platform/mac/PopupMenuMac.mm:
(WebCore::PopupMenu::show): Added a call to the client's hidePopup()
callback before returning in the case that the menu is empty. Otherwise
the client thinks that the menu stayed open.
2007-04-28 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Fix for <rdar://problem/4806988> REGRESSION: history.go(0) doesn't reload page (affects buttons at facebook.com)
Test: fast/history/history_reload.html
* loader/FrameLoader.cpp: (WebCore::FrameLoader::scheduleHistoryNavigation):
We avoid doing a redirection when going to the same url in a history navigation, but we have to still
schedule a redirection when the number of steps is zero so we can force a reload.
2007-04-28 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=13514
REGRESSION (r20997-21003): Crash in WebCore::Node::document
Test: fast/dom/NodeList/childNodes-reset-cache.html
* dom/Node.cpp:
(WebCore::Node::notifyLocalNodeListsChildrenChanged): Reset the common caches for child node
lists. We cannot rely on notifications, since there may be no list objects left around.
* dom/ChildNodeList.cpp:
(WebCore::ChildNodeList::rootNodeChildrenChanged):
* dom/ChildNodeList.h:
Override rootNodeChildrenChanged() with an empty implementation, now that caches are reset
in Node::notifyLocalNodeListsChildrenChanged().
2007-04-28 Mark Rowe <mrowe@apple.com>
Build fix. Change use of nil to 0 in C++ source file.
* editing/Editor.cpp:
(WebCore::Editor::increaseSelectionListLevel):
(WebCore::Editor::increaseSelectionListLevelOrdered):
(WebCore::Editor::increaseSelectionListLevelUnordered):
2007-04-28 Darin Adler <darin@apple.com>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=6216
REGRESSION: getElementsByTagNameNS with empty namespace doesn't work
* dom/Node.cpp:
(WebCore::TagNodeList::TagNodeList): Changed parameter to PassRefPtr, tweaked formatting.
(WebCore::TagNodeList::item): Tweaked formatting.
(WebCore::TagNodeList::nodeMatches): Tweaked formatting.
(WebCore::Node::setPrefix): Tweaked formatting.
(WebCore::Node::getElementsByTagNameNS): Added special case to turn empty namespaces into
null namespaces.
2007-04-28 Darin Adler <darin@apple.com>
Reviewed by Kevin Decker.
- fix <rdar://problem/5148271> Chinese numbers are incorrect in numbered lists
(including pasting from TextEdit to Mail)
Covered by an existing regression test, which had wrong results checked in.
Hyatt told me not to use the algorithm in the CSS 3 specification, but I didn't listen!
This corrects mistakes there and makes our results match current Firefox.
* rendering/RenderListMarker.cpp:
(WebCore::toCJKIdeographic): Added code to strip off trailing zero digits.
Added special case for zero, since that's the one case where we don't want
to strip off trailing zero digits. Fixed mixed-up logic that would put the
digits in each group backwards.
(WebCore::listMarkerText): Corrected character values for the CJK_IDEOGRAPHIC case.
2007-04-28 Darin Adler <darin@apple.com>
Reviewed by Oliver.
- fix <rdar://problem/5138250> REGRESSION (r18245): Changing any one aspect
of a font applies all the aspects to selected text
Since this bug is only visible with the font panel, I don't
think there's any way to make a DumpRenderTree-driven test.
* editing/Editor.cpp: (WebCore::Editor::fontForSelection):
Set hasMultipleFonts properly. The old code had an early exit
that was left over from when hasMultipleFonts was a pointer.
2007-04-27 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13525
Repainting a listbox schedules a relayout
No test possible as there is no change to functionality.
- fix the root cause of http://bugs.webkit.org/show_bug.cgi?id=10862
REGRESSION: Collapsing form input on www.myspace.com
No test possible since text fields are no longer implemented as flexboxes.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::scheduleRelayout): Added a check that the subtree
root is in the tree and not free-floating.
* rendering/bidi.cpp:
(WebCore::RenderBlock::bidiReorderCharacters): Changed addChild and removeChild
to appendChildNode and removeChildNode to save some unnecessary overhead.
These calls still mark the tree for relayout, but the change in scheduleRelayout
ensures that a layout won't be scheduled.
2007-04-27 Patti Hoa <patti@apple.com>
Reviewed by Darin.
<rdar://problem/5153017> REPRODUCIBLE ASSERT: range != nil in WebViewFactory.mm:415 -[WebViewFactory startOfTextMarkerRange:] (13354)
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject textMarkerRangeForRange:]):
Fix the range length check. It was incorrectly assuming that the max range requested cannot be equal
to the length of the string. Since NSRange location is index based, it's perfectly valid to have the max
range equal to the the text length.
2007-04-27 David Harrison <harrison@apple.com>
Reviewed by Darin.
<rdar://problem/5160627> Export JS list creation support as ObjC SPI for Mail
* WebCore.exp:
* editing/Editor.h:
* editing/Editor.cpp:
(WebCore::Editor::insertOrderedList):
(WebCore::Editor::insertUnorderedList):
(WebCore::Editor::canIncreaseSelectionListLevel):
(WebCore::Editor::canDecreaseSelectionListLevel):
(WebCore::Editor::increaseSelectionListLevel):
(WebCore::Editor::increaseSelectionListLevelOrdered):
(WebCore::Editor::increaseSelectionListLevelUnordered):
(WebCore::Editor::decreaseSelectionListLevel):
Add insertOrderedList() and insertUnorderedList().
Move existing list management functions from WebCoreFrameBridge.
The level increasing functions now return a PassRefPtr<Node> instead of Node.
Add check for canEditRichly.
- in many other functions, condense the check for nil client().
* editing/InsertListCommand.h:
* editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::insertList):
(WebCore::InsertListCommand::fixOrphanedListChild):
(WebCore::InsertListCommand::doApply):
Add insertList(), which returns the new list element.
Don't set the list element's ID if the specified ID was an empty string.
* editing/ModifySelectionListLevel.h:
* editing/ModifySelectionListLevel.cpp:
(WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevelWithType):
(WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevel):
(WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevelOrdered):
(WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevelUnordered):
Return PassRefPtr<Node> instead of Node.
* page/mac/WebCoreFrameBridge.h:
* page/mac/WebCoreFrameBridge.mm:
Move list management functions to Editor.h and Editor.cpp.
2007-04-27 David Hyatt <hyatt@apple.com>
Fix for <rdar://problem/5134254>, toolbar buttons don't work in gmail after double-click. Make sure
to clear out the capturing frame, since you don't get a second up when a double-click happens.
Reviewed by mjs
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseDoubleClickEvent):
2007-04-27 Justin Garcia <justin.garcia@apple.com>
Reviewed by oliver
<rdar://problem/5164796>
Enable execCommand("CreateLink", ...) for caret selections
* editing/CreateLinkCommand.cpp:
(WebCore::CreateLinkCommand::doApply): For a caret
selection, insert a link at the caret position
with the url as the link text.
* editing/JSEditor.cpp: Enable CreateLink for caret
selections.
2007-04-27 Antti Koivisto <antti@apple.com>
Reviewed by Darin, Hyatt.
Fix http://bugs.webkit.org/show_bug.cgi?id=13081
Empty table cells not handled correctly
<rdar://problem/5067926>
To match Firefox and IE, empty table cells with variable width need to be
treated as special case. They generally get zero width.
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn):
(WebCore::AutoTableLayout::calcEffectiveWidth):
(WebCore::AutoTableLayout::layout):
* rendering/AutoTableLayout.h:
(WebCore::AutoTableLayout::Layout::Layout):
* rendering/RenderStyle.h:
(WebCore::RenderStyle::hasPadding):
2007-04-27 Rob Buis <buis@kde.org>
Reviewed by Oliver.
http://bugs.webkit.org/show_bug.cgi?id=13052
Text not rendered in a second inline SVG element
Correct the rendering of svg text when embedded in non-svg container.
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::paint):
2007-04-27 Mark Rowe <mrowe@apple.com>
Reviewed by Maciej.
* WebCore.pro: Remove non-existent paths from qmake files.
2007-04-25 Lars Naesbye Christensen <lars@naesbye.dk>
Reviewed by Timothy Hatcher.
http://bugs.webkit.org/show_bug.cgi?id=13477
Bug 13477: Help and context menu cursors need dropshadows.
* Resources/cellCursor.png:
* Resources/contextMenuCursor.png:
* Resources/helpCursor.png:
* platform/mac/CursorMac.mm:
(WebCore::contextMenuCursor):
(WebCore::copyCursor):
(WebCore::progressCursor):
(WebCore::noDropCursor):
2007-04-27 Holger Freyther <freyther@kde.org>
Reviewed by Maciej.
Remove unmaintained CMake build system.
* CMakeLists.txt: Removed.
2007-04-26 Matt Perry <mpComplete@gmail.com>
Reviewed by Maciej.
Added a version check to hackAroundLibXMLEntityBug, since that bug has
been fixed in recent versions of libxml2.
* dom/XMLTokenizer.cpp:
(WebCore::hackAroundLibXMLEntityBug):
2007-04-26 Christopher Brichford <chrisb@adobe.com>
Reviewed by Timothy Hatcher.
- Fix for Bug 13204: Submit initial version of mac project files for apollo
port of WebCore
http://bugs.webkit.org/show_bug.cgi?id=13204
* WebCore.apolloproj/mac/WebCore.Debug.xcconfig: Added.
* WebCore.apolloproj/mac/WebCore.Release.xcconfig: Added.
* WebCore.apolloproj/mac/WebCore.xcconfig: Added.
* WebCore.apolloproj/mac/WebCore.xcodeproj/project.pbxproj: Added.
2007-04-26 Alp Toker <alp@atoker.com>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=13505
Cast loses precision on x86_64
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::beginTransparencyLayer):
(WebCore::GraphicsContext::endTransparencyLayer):
Use a stack of opacity values instead of Cairo user data.
2007-04-26 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13500
REGRESSION: Listbox scrollbar does not reflect actual scrolled position when selected option is added after layout
Test: fast/forms/listbox-scrollbar-incremental-load.html
The scroller position was not updated correctly during insertion, since
scrollbar proportions are updated only during layout
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::selectionChanged): Delay scrolling to reveal the
selection until after layout if m_optionsChanged is set. Layout is
guaranteed to happen soon when the flag is set.
2007-04-26 David Hyatt <hyatt@apple.com>
Fix for 13511, crash on a counters page. Make sure that RenderTexts
never get a null StringImpl. I would have added an assert that the length
had to be nonzero also, but unfortunately editing creates empty RenderTexts
because of its EditingText DOM subclass that always forces renderers to be
made. I suppose there is a good reason for this...
Reviewed by aroben
* dom/CharacterData.cpp:
(WebCore::CharacterData::setData):
(WebCore::CharacterData::appendData):
(WebCore::CharacterData::insertData):
(WebCore::CharacterData::deleteData):
(WebCore::CharacterData::replaceData):
* rendering/RenderCounter.cpp:
(WebCore::RenderCounter::RenderCounter):
* rendering/RenderText.cpp:
(WebCore::RenderText::RenderText):
(WebCore::RenderText::trimmedPrefWidths):
(WebCore::RenderText::setTextWithOffset):
(WebCore::RenderText::setTextInternal):
(WebCore::RenderText::setText):
2007-04-26 Alice Liu <alice.liu@apple.com>
Reviewed by Oliver.
* editing/SelectionController.cpp:
(WebCore::SelectionController::selectAll):
adding null check
2007-04-26 Justin Garcia <justin.garcia@apple.com>
Reviewed by oliver
<rdar://problem/5120591>
Crash when creating a link in Leopard wiki server
* editing/CreateLinkCommand.cpp:
(WebCore::CreateLinkCommand::doApply): Use a RefPtr,
setting the anchor's href can destroy it if there is
an ancestor with a subtree modified event listener.
2007-04-26 Mitz Pettel <mitz@webkit.org>
Reviewed by hyatt
- http://bugs.webkit.org/show_bug.cgi?id=13496
Eliminate repaintObjectsBeforeLayout
No tests added since there is no change to functionality. Several
tests in fast/repaint test repainting of objects that move during layout.
* page/FrameView.cpp:
(WebCore::FrameView::layout):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlockChildren): Removed an early
setNeedsLayout(false). Resetting the bit here prevents the full repaint
that we rely on when we decide not to repaint children that move.
* rendering/RenderBlock.h:
* rendering/RenderObject.cpp:
* rendering/RenderObject.h:
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::setCellWidths): Replaced the call to
repaintObjectsBeforeLayout() if the cell didn't need layout with
an unconditional repaint(). We don't bother with repainting only the
delta between the old and new widths, since by marking the cell for
layout results in a full repaint with the new width anyway.
2007-04-26 David Hyatt <hyatt@apple.com>
Fix for 13509. Don't recur to parent inline flows if they have been
marked as needing layout themselves.
Reviewed by adele
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::dirtyLinesFromChangedChild):
2007-04-26 Matt Perry <mpComplete@gmail.com>
Reviewed and landed by Alexey.
http://bugs.webkit.org/show_bug.cgi?id=13495
Crash when referencing an undefined entity in an XHTML document
Test: fast/parser/badentity.xhtml
* dom/XMLTokenizer.cpp:
(WebCore::getEntityHandler): Check for a NULL returned from getXHTMLEntity
2007-04-26 Anders Carlsson <andersca@apple.com>
Reviewed by Hyatt.
<rdar://problem/4851944>
REGRESSION: With TOT, BMP images can no longer be opened in the browser window
On Tiger, the MIME type for the com.microsoft.bmp UTI isn't in the registry, so add it manually.
* platform/MimeTypeRegistry.cpp:
(WebCore::initialiseSupportedImageMIMETypes):
2007-04-26 David Hyatt <hyatt@apple.com>
Fix for bug 13503, invalidateContainingBlockPrefWidths is 15% of the
nesting PLT. Avoid O(n^2) behavior by including inlines in the minmax
dirty chain.
Reviewed by kevin
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::calcInlinePrefWidths):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::setPrefWidthsDirty):
(WebCore::RenderObject::invalidateContainerPrefWidths):
* rendering/RenderObject.h:
2007-04-26 Anders Carlsson <andersca@apple.com>
Reviewed by Darin.
<rdar://problem/5067925>
Reproducible crash (infinite recursion) with a layout test that submits on unload (13078)
Ask the document loader whether it's loading the main resource, since there are cases where the frame
loader's variable isn't updated correctly.
In the distant future, the frame loader shouldn't have an instance variable but this is the least intrusive fix for now.
I couldn't come up with a good test case for this since it requires running three tests in a row and scheduleLoad didn't work. Also,
calling submit in the onunload prevents any new tests from loading!
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::isLoading):
2007-04-26 Anders Carlsson <andersca@apple.com>
... and fix the build.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::continueAfterNavigationPolicy):
2007-04-26 Anders Carlsson <andersca@apple.com>
Revert the previous change - activeDocumentLoader never returns the policy document loader.
Instead, add a null check for the policy document loader.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::continueAfterNavigationPolicy):
2007-04-26 Anders Carlsson <andersca@apple.com>
Use the active document loader instead of the policy document loader.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::continueAfterNavigationPolicy):
2007-04-26 Anders Carlsson <andersca@apple.com>
Reviewed by Maciej.
<rdar://problem/5049099> documents no longer have a default base URL
Don't call canHandleRequest if we have valid substitute data and the protocol is "applewebdata".
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::continueAfterNavigationPolicy):
2007-04-25 Stephanie Lewis <slewis@apple.com>
Reviewed by Darin.
Fix the build for platforms that overload the abs function.
* dom/ChildNodeList.cpp:
(WebCore::ChildNodeList::item):
2007-04-25 David Hyatt <hyatt@apple.com>
Fix for bug 13373, make sure to invalidate the pref widths for objects
with percentage padding.
Reviewed by beth
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlockChildren):
(WebCore::RenderBlock::layoutPositionedObjects):
* rendering/bidi.cpp:
(WebCore::RenderBlock::layoutInlineChildren):
2007-04-25 David Harrison <harrison@apple.com>
Comment change. Correct the header name in the endif comment.
* editing/FormatBlockCommand.h:
Change InsertListCommand_h to FormatBlockCommand_h.
2007-04-25 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
* platform/AtomicString.cpp: (WebCore::AtomicString::add):
Removed unnecessary use of strlen to check if a string is empty.
2007-04-25 Mitz Pettel <mitz@webkit.org>
Build fix.
* rendering/RenderListMarker.h: Undeleted the m_text member.
2007-04-25 David Hyatt <hyatt@apple.com>
Rearchitect calcPrefWidths. The calculation is now done lazily only when minPrefWidth
or maxPrefWidth are asked for. The result of the calculation is cached.
The new invalidation scheme for pref width invalidation follows the
containing block hierarchy and knows to halt at positioned objects, since
they cannot influence the size of their containers.
Reviewed by darin
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::init):
(WebCore::CSSStyleSelector::initForStyleResolve):
* page/FrameView.cpp:
(WebCore::FrameView::layout):
* rendering/RenderApplet.cpp:
(WebCore::RenderApplet::layout):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::makeChildrenNonInline):
(WebCore::RenderBlock::removeChild):
(WebCore::RenderBlock::layout):
(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::calcPrefWidths):
(WebCore::InlineMinMaxIterator::endOfInline):
(WebCore::shouldGrowTableCellForImage):
(WebCore::RenderBlock::calcInlinePrefWidths):
(WebCore::RenderBlock::calcBlockPrefWidths):
* rendering/RenderBlock.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::setStyle):
(WebCore::RenderBox::minPrefWidth):
(WebCore::RenderBox::maxPrefWidth):
(WebCore::RenderBox::calcWidth):
(WebCore::RenderBox::calcWidthUsing):
(WebCore::RenderBox::calcAbsoluteHorizontal):
(WebCore::RenderBox::calcAbsoluteHorizontalValues):
* rendering/RenderBox.h:
* rendering/RenderContainer.cpp:
(WebCore::RenderContainer::removeChildNode):
(WebCore::RenderContainer::appendChildNode):
(WebCore::RenderContainer::insertChildNode):
(WebCore::RenderContainer::layout):
* rendering/RenderContainer.h:
(WebCore::RenderContainer::moveChildNode):
* rendering/RenderCounter.cpp:
(WebCore::RenderCounter::dirtyLineBoxes):
(WebCore::RenderCounter::calcPrefWidths):
* rendering/RenderCounter.h:
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::calcPrefWidths):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::calcHorizontalPrefWidths):
(WebCore::RenderFlexibleBox::calcVerticalPrefWidths):
(WebCore::RenderFlexibleBox::calcPrefWidths):
(WebCore::RenderFlexibleBox::layoutBlock):
* rendering/RenderForeignObject.cpp:
(WebCore::RenderForeignObject::layout):
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::layout):
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::layout):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::layout):
* rendering/RenderInline.cpp:
* rendering/RenderInline.h:
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::updateFromElement):
(WebCore::RenderListBox::calcPrefWidths):
* rendering/RenderListItem.cpp:
(WebCore::firstNonMarkerChild):
(WebCore::RenderListItem::updateMarkerLocation):
(WebCore::RenderListItem::calcPrefWidths):
(WebCore::RenderListItem::layout):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::layout):
(WebCore::RenderListMarker::calcPrefWidths):
(WebCore::RenderListMarker::updateMargins):
* rendering/RenderListMarker.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::RenderObject):
(WebCore::RenderObject::removeChildNode):
(WebCore::RenderObject::moveChildNode):
(WebCore::RenderObject::appendChildNode):
(WebCore::RenderObject::insertChildNode):
(WebCore::RenderObject::setPrefWidthsDirty):
(WebCore::RenderObject::invalidateContainingBlockPrefWidths):
(WebCore::RenderObject::information):
(WebCore::RenderObject::setStyle):
* rendering/RenderObject.h:
(WebCore::RenderObject::layer):
(WebCore::RenderObject::hasLayer):
(WebCore::RenderObject::prefWidthsDirty):
(WebCore::RenderObject::setNeedsLayoutAndPrefWidthsRecalc):
(WebCore::RenderObject::setHasLayer):
* rendering/RenderPartObject.cpp:
(WebCore::RenderPartObject::layout):
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::layout):
* rendering/RenderSVGContainer.h:
* rendering/RenderSVGHiddenContainer.cpp:
* rendering/RenderSVGHiddenContainer.h:
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::layout):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::calcWidth):
(WebCore::RenderTable::layout):
(WebCore::RenderTable::removeChildNode):
* rendering/RenderTable.h:
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::layout):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::removeChildNode):
* rendering/RenderTableSection.h:
* rendering/RenderText.cpp:
(WebCore::RenderText::trimmedPrefWidths):
(WebCore::isSpaceAccordingToStyle):
(WebCore::RenderText::minPrefWidth):
(WebCore::RenderText::maxPrefWidth):
(WebCore::RenderText::calcPrefWidths):
(WebCore::RenderText::width):
* rendering/RenderText.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
(WebCore::RenderView::calcPrefWidths):
(WebCore::RenderView::layout):
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::layout):
2007-04-25 Steve Falkenburg <sfalken@apple.com>
Reviewed by Adam.
Fix spelling error in spelling method name.
Expose new spelling callback methods to all platforms.
* bridge/EditorClient.h:
* platform/gdk/EditorClientGdk.cpp:
(WebCore::EditorClientGdk::updateSpellingUIWithGrammarString):
* platform/gdk/EditorClientGdk.h:
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyEditorClient::updateSpellingUIWithGrammarString):
(WebCore::SVGEmptyEditorClient::getGuessesForWord):
2007-04-24 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler, Tim Hatcher.
Fixed a few NSAutoreleasePool issues I noticed while reviewing Brady's patch.
* platform/graphics/mac/GraphicsContextMac.mm:
(WebCore::GraphicsContext::setCompositeOperation): Call -drain instead of
-release, since -release is a no-op in a GC world.
2007-04-25 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=13445
NodeList access by index is slow
* dom/ChildNodeList.cpp:
(WebCore::ChildNodeList::item): Support iterating backwards from the last accessed node
or from the last child.
* dom/NodeList.h: Make cachedLength unsigned.
2007-04-26 Mark Rowe <mrowe@apple.com>
Gdk build fix. Add missing stub.
* platform/gdk/TemporaryLinkStubs.cpp:
(Editor::advanceToNextMisspelling):
2007-04-25 Rob Buis <buis@kde.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12163
SVG text does not appear in a scrolling <div>
Make sure SVG text is painted when scrolling by taking into account the relative offset of the non-SVG parent in the paintInfo rect.
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::paint):
2007-04-26 Mark Rowe <mrowe@apple.com>
Fix non-Mac builds after r21081.
Stub out new Editor methods for Qt and Gdk, and new SVGEmptyEditorClient methods
for all non-Mac builds.
* editing/qt/EditorQt.cpp:
(WebCore::Editor::showSpellingGuessPanel):
(WebCore::Editor::spellingPanelIsShowing):
* page/qt/EventHandlerQt.cpp:
(WebCore::EventHandler::passWheelEventToWidget):
(WebCore::EventHandler::passMousePressEventToScrollbar):
* platform/gdk/TemporaryLinkStubs.cpp:
(Editor::showSpellingGuessPanel):
(Editor::spellingPanelIsShowing):
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyEditorClient::ignoreWordInSpellDocument):
(WebCore::SVGEmptyEditorClient::learnWord):
(WebCore::SVGEmptyEditorClient::checkSpellingOfString):
(WebCore::SVGEmptyEditorClient::checkGrammarOfString):
(WebCore::SVGEmptyEditorClient::udpateSpellingUIWithGrammarString):
(WebCore::SVGEmptyEditorClient::updateSpellingUIWithMisspelledWord):
(WebCore::SVGEmptyEditorClient::showSpellingUI):
(WebCore::SVGEmptyEditorClient::spellingUIIsShowing):
(WebCore::SVGEmptyEditorClient::getGuessesForWord):
2007-04-25 Anders Carlsson <andersca@apple.com>
Reviewed by Ada.
<rdar://problem/5122153>
Crash occurs at WebCore::Frame::loader() when switching to Bookmarks view while loading standalone image
Don't call writeRawData if the data length is 0. (This is checked by the decoder for the non-raw case).
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::write):
2007-04-26 Mark Rowe <mrowe@apple.com>
Gdk build fix courtesy of Alp Toker.
* make-generated-sources.sh: Remove conditional logic to ensure the
script exits with the correct exit code.
2007-04-24 Anders Carlsson <andersca@apple.com>
Reviewed by Mitz.
<rdar://problem/4869095>
default content type for XMLHttpRequest POSTs changed (breaks Flickrator 0.1 widget)
Use the right MIME type.
* xml/xmlhttprequest.cpp:
(WebCore::XMLHttpRequest::send):
2007-04-24 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- second round of preparation for Hyatt's "lazy minMaxWidth" change
http://bugs.webkit.org/show_bug.cgi?id=13431
These are small changes that are either safe to do first, or unrelated to the main
change in Hyatt's patch.
- Preallocate 4 entries each in m_layoutStruct and m_spanCells to save allocation
in AutoTableLayout.
- Add an early exit to RenderFlow::dirtyLinesFromChangedChild.
- Change InlineBox::hasTextChildren() to use a bit directly and never a virtual function.
- Save a virtual function call by using a local bool variable for isTableCell().
- Fix containingBlock() so it returns 0 for table cells with no parent.
- Change all callers who are getting at layer() as a boolean to use hasLayer().
- Change if statements to max() function calls (only the ones Hyatt had in his patch).
- Remove some old kdDebug calls.
- Tweak formatting of some code.
- Add const in one place.
* bindings/js/kjs_html.cpp:
(KJS::HTMLElementFunction::callAsFunction):
* page/EventHandler.cpp:
(WebCore::EventHandler::eventMayStartDrag):
* page/Frame.cpp:
(WebCore::Frame::clearTimers):
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn):
* rendering/AutoTableLayout.h:
* rendering/InlineBox.h:
(WebCore::InlineBox::InlineBox):
(WebCore::InlineBox::hasTextChildren):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::nodeAtPoint):
* rendering/InlineFlowBox.h:
(WebCore::InlineFlowBox::InlineFlowBox):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::repaintOverhangingFloats):
(WebCore::RenderBlock::paintChildren):
(WebCore::RenderBlock::paintFloats):
(WebCore::RenderBlock::fillBlockSelectionGaps):
(WebCore::RenderBlock::insertFloatingObject):
(WebCore::RenderBlock::floatRect):
(WebCore::RenderBlock::lowestPosition):
(WebCore::RenderBlock::rightmostPosition):
(WebCore::RenderBlock::leftmostPosition):
(WebCore::RenderBlock::addOverhangingFloats):
(WebCore::RenderBlock::nodeAtPoint):
(WebCore::RenderBlock::hitTestContents):
(WebCore::RenderBlock::calcPrefWidths):
(WebCore::InlineMinMaxIterator::next):
(WebCore::getBorderPaddingMargin):
(WebCore::RenderBlock::calcInlinePrefWidths):
(WebCore::RenderBlock::calcBlockPrefWidths):
* rendering/RenderContainer.cpp:
(WebCore::RenderContainer::appendChildNode):
(WebCore::RenderContainer::insertChildNode):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::calcHorizontalPrefWidths):
(WebCore::RenderFlexibleBox::calcVerticalPrefWidths):
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::dirtyLinesFromChangedChild):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateVisibilityStatus):
(WebCore::RenderLayer::updateLayerPosition):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::containingBlock):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::paint):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::paintBackgroundsBehindCell):
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::nodeAtPoint):
(WebCore::RenderTableRow::paint):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::nodeAtPoint):
* rendering/RenderTreeAsText.cpp:
(WebCore::write):
2007-04-24 Steve Falkenburg <sfalken@apple.com>
Reviewed by Darin, Oliver.
Refactor spelling codepaths
* bridge/EditorClient.h:
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected):
* platform/ContextMenu.cpp:
(WebCore::ContextMenu::populate):
(WebCore::ContextMenu::checkOrEnableIfNeeded):
* platform/gdk/EditorClientGdk.cpp:
(WebCore::EditorClientGdk::ignoreWordInSpellDocument):
(WebCore::EditorClientGdk::learnWord):
(WebCore::EditorClientGdk::checkSpellingOfString):
(WebCore::EditorClientGdk::checkGrammarOfString):
(WebCore::EditorClientGdk::udpateSpellingUIWithGrammarString):
(WebCore::EditorClientGdk::updateSpellingUIWithMisspelledWord):
(WebCore::EditorClientGdk::showSpellingUI):
(WebCore::EditorClientGdk::spellingUIIsShowing):
(WebCore::EditorClientGdk::getGuessesForWord):
* platform/gdk/EditorClientGdk.h:
2007-04-24 Darin Adler <darin@apple.com>
Reviewed by Adele.
- first round of preparation for Hyatt's "lazy minMaxWidth" change
http://bugs.webkit.org/show_bug.cgi?id=13431
This patch limits itself to renaming and making other super-simple
changes so that the above change will be smaller and easier to review
and understand.
Rename:
calcHorizontalMinMaxWidth -> calcHorizontalPrefWidths
calcMinMaxWidth -> calcPrefWidths
calcMinMaxWidthInternal -> calcPrefWidthsInternal
calcVerticalMinMaxWidth -> calcVerticalPrefWidths
setNeedsLayoutAndMinMaxRecalc -> setNeedsLayoutAndPrefWidthsRecalc
trimmedMinMaxWidth -> trimmedPrefWidths
RenderObject::m_maxWidth -> RenderObject::m_maxPrefWidth
RenderObject::m_minWidth -> RenderObject::m_minPrefWidth
RenderObject::maxWidth() -> RenderObject::maxPrefWidth()
RenderObject::minWidth() -> RenderObject::minPrefWidth()
Replace m_minMaxKnown, minMaxKnown(), and setMinMaxKnown() with
m_prefWidthsDirty, prefWidthsDirty(), and setPrefWidthsDirty(),
a boolean with the opposite sense.
Convert some uses of if statements into "max".
Change many uses of layer() to hasLayer(). For now it's just a boolean
version of layer(), but Hyatt's patch makes it faster by using a bit.
Added a guard to use of axObjectCache() to make RenderObject destruction
a little faster for the normal case.
Removed some assertions that will be removed in Hyatt's patch.
Made some functions const that will be const in Hyatt's patch.
Put in some revised comments from Hyatt's patch.
Removed an unneeded nil check from RenderListMarker::setStyle.
Moved RootInlineBox::setHorizontalOverflowPositions and
RootInlineBox::setVerticalSelectionPositions to the RootInlineBox.h
header and marked them inline.
* dom/Document.cpp:
(WebCore::Document::updateStyleSelector):
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::parseMappedAttribute):
* page/Frame.cpp:
(WebCore::Frame::forceLayoutWithPageWidthRange):
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn):
(WebCore::AutoTableLayout::calcPrefWidths):
(WebCore::AutoTableLayout::calcEffectiveWidth):
* rendering/AutoTableLayout.h:
* rendering/CounterNode.cpp:
(WebCore::CounterNode::recount):
* rendering/FixedTableLayout.cpp:
(WebCore::FixedTableLayout::calcPrefWidths):
* rendering/FixedTableLayout.h:
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::paint):
* rendering/RenderApplet.cpp:
(WebCore::RenderApplet::layout):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::removeChild):
(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::handleCompactChild):
(WebCore::RenderBlock::getClearDelta):
(WebCore::RenderBlock::calcPrefWidths):
(WebCore::RenderBlock::calcInlinePrefWidths):
(WebCore::RenderBlock::calcBlockPrefWidths):
* rendering/RenderBlock.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::RenderBox):
(WebCore::RenderBox::nodeAtPoint):
(WebCore::RenderBox::calcWidth):
(WebCore::RenderBox::calcWidthUsing):
(WebCore::RenderBox::calcAbsoluteHorizontal):
(WebCore::RenderBox::calcAbsoluteHorizontalValues):
* rendering/RenderBox.h:
(WebCore::RenderBox::minPrefWidth):
(WebCore::RenderBox::maxPrefWidth):
* rendering/RenderContainer.cpp:
(WebCore::RenderContainer::removeChildNode):
(WebCore::RenderContainer::appendChildNode):
(WebCore::RenderContainer::insertChildNode):
(WebCore::RenderContainer::layout):
* rendering/RenderContainer.h:
(WebCore::RenderContainer::calcPrefWidths):
* rendering/RenderCounter.cpp:
(WebCore::RenderCounter::calcPrefWidths):
* rendering/RenderCounter.h:
* rendering/RenderFieldset.cpp:
(WebCore::RenderFieldset::calcPrefWidths):
* rendering/RenderFieldset.h:
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::calcPrefWidths):
* rendering/RenderFileUploadControl.h:
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::calcHorizontalPrefWidths):
(WebCore::RenderFlexibleBox::calcVerticalPrefWidths):
(WebCore::RenderFlexibleBox::calcPrefWidths):
(WebCore::RenderFlexibleBox::layoutBlock):
(WebCore::RenderFlexibleBox::allowedChildFlex):
* rendering/RenderFlexibleBox.h:
(WebCore::RenderFlexibleBox::hasMultipleLines):
(WebCore::RenderFlexibleBox::isVertical):
(WebCore::RenderFlexibleBox::isHorizontal):
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::absoluteClippedOverflowRect):
* rendering/RenderForeignObject.cpp:
(WebCore::RenderForeignObject::layout):
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::layout):
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::layout):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::imageChanged):
(WebCore::RenderImage::layout):
(WebCore::RenderImage::calcPrefWidths):
* rendering/RenderImage.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::addChildToFlow):
(WebCore::RenderInline::splitInlines):
(WebCore::RenderInline::splitFlow):
(WebCore::RenderInline::calcPrefWidths):
* rendering/RenderInline.h:
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::updateFromElement):
(WebCore::RenderListBox::calcPrefWidths):
* rendering/RenderListBox.h:
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::updateValue):
(WebCore::RenderListItem::updateMarkerLocation):
(WebCore::RenderListItem::calcPrefWidths):
(WebCore::RenderListItem::layout):
(WebCore::RenderListItem::explicitValueChanged):
* rendering/RenderListItem.h:
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::setStyle):
(WebCore::RenderListMarker::layout):
(WebCore::RenderListMarker::imageChanged):
(WebCore::RenderListMarker::calcPrefWidths):
(WebCore::RenderListMarker::calcWidth):
* rendering/RenderListMarker.h:
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::updateOptionsWidth):
(WebCore::RenderMenuList::calcPrefWidths):
* rendering/RenderMenuList.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::RenderObject):
(WebCore::addLayers):
(WebCore::RenderObject::removeLayers):
(WebCore::RenderObject::moveLayers):
(WebCore::RenderObject::addAbsoluteRectForLayer):
(WebCore::RenderObject::checkForRepaintDuringLayout):
(WebCore::RenderObject::dump):
(WebCore::RenderObject::setStyle):
(WebCore::RenderObject::destroy):
(WebCore::RenderObject::recalcMinMaxWidths):
* rendering/RenderObject.h:
(WebCore::RenderObject::hasLayer):
(WebCore::RenderObject::prefWidthsDirty):
(WebCore::RenderObject::setPrefWidthsDirty):
(WebCore::RenderObject::setNeedsLayoutAndPrefWidthsRecalc):
(WebCore::RenderObject::calcPrefWidths):
(WebCore::RenderObject::minPrefWidth):
(WebCore::RenderObject::maxPrefWidth):
* rendering/RenderPart.cpp:
(WebCore::RenderPart::setWidget):
* rendering/RenderPartObject.cpp:
(WebCore::RenderPartObject::updateWidget):
(WebCore::RenderPartObject::layout):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::calcPrefWidths):
* rendering/RenderReplaced.h:
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::calcPrefWidths):
(WebCore::RenderSVGContainer::layout):
* rendering/RenderSVGContainer.h:
* rendering/RenderSVGHiddenContainer.cpp:
(WebCore::RenderSVGHiddenContainer::calcPrefWidths):
* rendering/RenderSVGHiddenContainer.h:
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::layout):
* rendering/RenderSlider.cpp:
(WebCore::RenderSlider::calcPrefWidths):
* rendering/RenderSlider.h:
* rendering/RenderTable.cpp:
(WebCore::RenderTable::calcWidth):
(WebCore::RenderTable::layout):
(WebCore::RenderTable::calcPrefWidths):
(WebCore::RenderTable::splitColumn):
(WebCore::RenderTable::appendColumn):
* rendering/RenderTable.h:
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::updateFromElement):
(WebCore::RenderTableCell::styleOrColWidth):
(WebCore::RenderTableCell::calcPrefWidths):
* rendering/RenderTableCell.h:
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::updateFromElement):
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::layout):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::paint):
* rendering/RenderText.cpp:
(WebCore::RenderText::trimmedPrefWidths):
(WebCore::RenderText::calcPrefWidths):
(WebCore::RenderText::calcPrefWidthsInternal):
(WebCore::RenderText::setText):
* rendering/RenderText.h:
(WebCore::RenderText::minPrefWidth):
(WebCore::RenderText::maxPrefWidth):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::calcPrefWidths):
* rendering/RenderTextControl.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
(WebCore::RenderView::calcPrefWidths):
(WebCore::RenderView::layout):
* rendering/RenderView.h:
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::layout):
* rendering/RootInlineBox.cpp:
* rendering/RootInlineBox.h:
(WebCore::RootInlineBox::setHorizontalOverflowPositions):
(WebCore::RootInlineBox::setVerticalSelectionPositions):
* rendering/TableLayout.h:
2007-04-24 Justin Garcia <justin.garcia@apple.com>
Reviewed by oliver
<rdar://problem/5156401>
Crash when dragging text into a link inside a table cell
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
Don't avoid the anchor if doing so would skip over a line break, that
would put content in the wrong paragraph, which can throw ReplaceSelectionCommand,
which relies on moveParagraphs into infinite recursion.
Renamed the input position.
Don't need to re-fetch the enclosing anchor when preparing to push it down,
since it hasn't changed since the top of the function.
2007-04-24 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam.
<rdar://problem/5133011> 64-bit: Attempting to paste copied text in a input field results in a crash at WebCore::Range::startPosition()
Change a couple incorrect uses of LONG_MAX to INT_MAX to match the variable type they are used in.
The LONG_MAX on 64-bit was overflowing the int variables, causing this crash on paste.
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject value]):
* editing/TextIterator.cpp:
(WebCore::TextIterator::handleTextNode):
(WebCore::TextIterator::handleTextBox):
2007-04-24 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam.
<rdar://problem/4966982> 64-bit: In a unordered list, TYPE=DISC and TYPE=CIRCLE attribute values are ignored
We need to draw our full-circle arcs counter-clockwise, since a clockwise arc from 0 to 2π is no arc at all!
This only worked on 32-bit due to a rounding error in CoreGraphics, causing it to draw a full circle anyway.
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawEllipse):
2007-04-24 Brady Eidson <beidson@apple.com>
Reviewed by Beth, Hyatt, Ada, and Darin
<rdar://problem/5011477> and <rdar://problem/5011514>
Provide support for the icon.db to be moved to a different directory from the old WebKit-style
icons, and remove the old directory if that is the case
Support for this starts in WebCore, where we can use the metadata table in the icon.db to track
whether or not we've ever done the import
* WebCore.exp:
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::defaultDatabaseFilename): Changed to "Icons.db"
(WebCore::IconDatabase::IconDatabase):
(WebCore::IconDatabase::deleteAllPreparedStatements): Delete the new statements added
(WebCore::IconDatabase::imported): Grab this flag from the DB or return the cached flag
(WebCore::IconDatabase::setImported): Store this flag into the DB
(WebCore::IconDatabase::importedQuery): Actually do the DB query for this save
(WebCore::IconDatabase::setImportedQuery): Actually do the DB query for this retrieval
* loader/icon/IconDatabase.h:
2007-04-24 Darin Adler <darin@apple.com>
Reviewed by Justin.
- fix <rdar://problem/4356361> Selection after multiple delete
keypresses and undo selects only the last deleted character
Test: editing/undo/undo-combined-delete-boundary.html
Test: editing/undo/undo-combined-delete.html
Test: editing/undo/undo-delete-boundary.html
Test: editing/undo/undo-delete.html
Test: editing/undo/undo-forward-delete-boundary.html
Test: editing/undo/undo-forward-delete.html
* editing/TypingCommand.cpp:
(WebCore::TypingCommand::insertText): Fix obviously-wrong code where there were missing
braces. I couldn't find any real symptom of this, but I think the fix should go in anyway.
All layout tests still pass.
(WebCore::TypingCommand::deleteKeyPressed): Added code to compute a selection that goes
back to the beginning of the composite editing operation.
(WebCore::TypingCommand::forwardDeleteKeyPressed): Ditto.
* editing/Selection.h:
* editing/Selection.cpp: (WebCore::Selection::setWithoutValidation):
Added. Back door to allow setting the ends of a selection without revalidating,
because we need to use it on a selection where the endpoints may no longer be
valid due to mutations done by earlier pieces of the editing operation.
* editing/EditCommand.h:
(WebCore::EditCommand::startingSelection): Return a const& for speed.
(WebCore::EditCommand::endingSelection): Ditto.
2007-04-24 Sam Weinig <sam@webkit.org>
Reviewed by Mitz.
- fix for http://bugs.webkit.org/show_bug.cgi?id=13448
REGRESSION: setting an input element's value to JavaScript null gives "null"
Test: fast/forms/input-null.html
* html/HTMLInputElement.idl: Convert JS null to the empty string on setting
DOMString attributes.
2007-04-24 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13453
Control clip isn't applied to children's backgrounds, outlines and floats
Test: fast/forms/control-clip.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paint): Apply the clip in all phases that paint
children. Split PaintPhaseOutline and PaintPhaseChildBlockBackground into
two phases each, applying the clip only to the children.
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::paintObject): Treat the scrollbar as part of the
background rather than as a child's background, now that children are
clipped out.
2007-04-24 Benjamin Otte <otte@gnome.org>
Reviewed by Mark Rowe.
Gdk build system improvements.
* make-generated-sources.sh: Exit with failure status if make fails.
2007-04-24 Benjamin Otte <otte@gnome.org>
Reviewed by Mark Rowe.
Gdk build system improvements.
* Projects/gdk/webcore-gdk.bkl:
fail if running any of the commands failed. In particular
make-generated-sources.sh
2007-04-23 Beth Dakin <bdakin@apple.com>
Reviewed by Adam.
Fix for <rdar://problem/5155507> REGRESSION: Crash in
RenderLayer::setHasVisibleContent()
* rendering/RenderContainer.cpp:
(WebCore::RenderContainer::appendChildNode): Must null-check
enclosingLayer()
(WebCore::RenderContainer::insertChildNode): Same.
2007-04-23 David Hyatt <hyatt@apple.com>
Fix for bug 13337, deep tag nesting is slow. This patch fixes a number of O(n^2) issues as well as making
a few performance optimizations based off profiling. Details next to each change below.
Note that calcMinMaxWidth being slow is a critical separate piece of this puzzle. Until bug 13430 is fixed,
render tree construction will be O(n^2) (because of the minmaxrecalc bit setting being stupid enough to
always crawl to the root of the tree) and calcMinMaxWidth will waste tons of unnecessary time.
When these fixes are combined with the calcMinMaxWidth fix in 13430, the penguin page specified in 13337
loads in < 2 seconds (down from an infinite hang before).
Reviewed by aroben, ollie
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::locateCousinList):
(WebCore::CSSStyleSelector::locateSharedStyle):
* css/csstyleselector.h
Cap the depth of cousin searching on the shared style optimization. We will be willing to (at most) crawl
up the tree the same distance that we were willing to crawl backwards through sibling lists. Leaving it
uncapped resulted in pathological style resolution for the case of an infinitely nested chain of singletons.
* html/HTMLParser.cpp:
(WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks):
(WebCore::HTMLParser::popBlock):
Cap the number of residual style tags that we are willing to reopen. We will reopen at most 200
residual style tags, since the assumption is that once that many tags are on the stack, you're probably already
every kind of bold, italic, and color of the rainbow.
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::absoluteClippedOverflowRect):
absoluteClippedOverflowRect can just return the empty rect when the inline flow has no line boxes instead of
doing a bunch of work (and calling containingBlock()) for no reason.
* rendering/RenderInline.cpp:
(WebCore::RenderInline::addChildToFlow):
Remove the useless containingBlock() check from addChildToFlow. Obviously every inline's containing block
is a block flow.
* rendering/bidi.cpp:
(WebCore::inlineWidth):
(WebCore::RenderBlock::createLineBoxes):
Cap the depth of individual line trees to 200. Again the assumption is that once that many open inlines exist
all on one line that there's no way this would be intentional.
2007-04-23 David Hyatt <hyatt@apple.com>
Fix for bug 13430, cap inline splitting for continuations to a maximum depth of 200.
Reviewed by olliej, antti
* rendering/RenderInline.cpp:
(WebCore::RenderInline::splitInlines):
2007-04-23 Alp Toker <alp@atoker.com>
Gdk build fix. Track EventHandler change made in r21042.
* page/gdk/EventHandlerGdk.cpp:
(WebCore::EventHandler::passWheelEventToWidget):
(WebCore::EventHandler::passMousePressEventToScrollbar):
2007-04-23 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin.
<rdar://problem/5024945> -[DOMRange lineBoxRects] doesn't include start and end nodes that have offsets
* rendering/RenderText.cpp:
(WebCore::RenderText::addLineBoxRects): Use min(box->len(), end) instead of special-casing UINT_MAX.
2007-04-23 Adele Peterson <adele@apple.com>
Fix by Darin, reviewed by me.
Fix for REGRESSION: Can't upload attachments to bugzilla since the file upload control is reset immediately
http://bugs.webkit.org/show_bug.cgi?id=13461
* rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::updateFromElement):
Only clear the FileChooser if the value is empty *and* (not or) the filename is empty.
2007-04-23 Adele Peterson <adele@apple.com>
Reviewed by Adam.
Updated fix for <rdar://problem/4887426> Set a reasonable maximum number of recent searches for search menu
* html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::parseMappedAttribute): Use a const int maxSavedResults instead of magic number 256.
2007-04-23 Timothy Hatcher <timothy@apple.com>
Reviewed by Hyatt.
<rdar://problem/5024945> -[DOMRange lineBoxRects] doesn't include start and end nodes that have offsets
Don't call selectionRect with a -1 end position, instead use the text length.
* rendering/RenderText.cpp:
(WebCore::RenderText::addLineBoxRects):
2007-04-23 Adele Peterson <adele@apple.com>
Fixed and reviewed by Darin, Adele, and Oliver.
WebCore part of fix for <rdar://problem/5107538> REGRESSION: Page scroll when selecting characters from inline input candidate window by arrow buttons
http://bugs.webkit.org/show_bug.cgi?id=13263
* dom/KeyboardEvent.h: (WebCore::KeypressCommand::isEmpty): Added helper method.
2007-04-23 Patti Hoa <patti@apple.com>
<rdar://problem/4938364> Attachment button has different string length between attributeStringForRange and stringForRange
<rdar://problem/4939536> AXLengthForTextMarkerRange returns zero length for the range of an attachment
Reviewed by Darin.
* bridge/mac/WebCoreAXObject.mm:
(nsStringForReplacedNode):
Added helper routine to check if the replaced node should be exposed as an attachment character in string representation.
Added an additional check to make sure that text node is not considered a replaced node.
Removed helper routine AXAttributedStringAppendReplaced since half of the functions are now taken care by nsStringForReplacedNode.
The other half is directly used in the doAXAttributedStringForTextMarkerRange method.
(-[WebCoreAXObject doAXStringForTextMarkerRange:]):
(-[WebCoreAXObject doAXAttributedStringForTextMarkerRange:]):
Both string and AttrbributedString methods will now utilize the helper routine nsStringForReplacedNode to return replacement
characters for range occupied by attachment.
2007-04-23 Adele Peterson <adele@apple.com>
Reviewed by Oliver.
Fix for <rdar://problem/4887426> Set a reasonable maximum number of recent searches for search menu
* html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::parseMappedAttribute):
Enforce a maximum of 256 saved results for the search field.
2007-04-23 Adele Peterson <adele@apple.com>
Reviewed by Hyatt & Adam.
Fix for <rdar://problem/4807799> REGRESSION: calling select() in onSearch handler doesn't work if you hit enter to trigger the event
Fix for <rdar://problem/5153970> onChange doesn't fire when focusing a popup, using type-ahead to select, and leaving
This previous behavior to blur controls when hitting enter was added to achieve the result of firing the change event. Firefox does not
fire blur- just the change event, so this fix will match Firefox behavior.
This also fixes a bug where we didn't fire the change event when using type-ahead selection with the popup menu.
* html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler): Fire change event instead of blur event when hitting enter.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::dispatchFocusEvent): Now that we have type-ahead selection for popups that can be opened with the arrow keys,
we should always save the last selection when a popup gets focus, so it can be compared to the current selection when it loses focus.
(WebCore::HTMLSelectElement::dispatchBlurEvent): For the same reasons as above, we should fire onChange for all popups on blur.
(WebCore::HTMLSelectElement::menuListDefaultEventHandler): Fire change event instead of blur event when hitting enter. Removed an unnecessary
check for form() before calling menuListOnChange(). Removed an unnecessary check for renderer() and usesMenuList().
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler): Remove call to blur. Since list boxes fire the change event immediately after an
action is taken, we don't need to fire anything after hitting enter.
(WebCore::HTMLSelectElement::menuListOnChange): Reset m_lastOnChangeIndex after firing the change event.
2007-04-23 Anders Carlsson <andersca@apple.com>
Reviewed by Ada.
<rdar://problem/5061022>
REGRESSION: Acrobat 8 plug-in fails to scroll with trackpad two-finger scroll or mouse wheel (12995)
Pass wheel events to all widgets.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEvent):
* page/EventHandler.h:
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::passWheelEventToWidget):
2007-04-23 Alp Toker <alp@atoker.com>
Reviewed by Mark.
Save and restore the context state when beginning and ending a transparency layer.
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::beginTransparencyLayer):
(WebCore::GraphicsContext::endTransparencyLayer):
2007-04-23 Alp Toker <alp@atoker.com>
Reviewed by Mark.
Further implementation and checks. The opacity layer code is not so beautiful
but gets the job done with fewer complications than maintaining our own stack.
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::translate):
(WebCore::GraphicsContext::setPlatformStrokeThickness):
(WebCore::GraphicsContext::beginTransparencyLayer):
(WebCore::GraphicsContext::endTransparencyLayer):
(WebCore::GraphicsContext::setCompositeOperation):
(WebCore::GraphicsContext::rotate):
(WebCore::GraphicsContext::scale):
2007-04-23 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- rename box-sizing to -webkit-box-sizing
because of <rdar://problem/4667227> REGRESSION: Shifted table on page at
https://us.etrade.com/e/t/home (due to box-sizing)
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Rename.
* css/CSSPropertyNames.in: Ditto.
* css/cssparser.cpp: (WebCore::CSSParser::parseValue): Rename and take out comment
explaining why we aren't prefacing with -webkit.
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::applyProperty): Rename.
* css/html4.css: Rename.
* css/quirks.css: Rename.
2007-04-23 Alp Toker <alp@atoker.com>
Reviewed by Hyatt.
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawEllipse):
(WebCore::GraphicsContext::drawConvexPolygon):
Fix stroking and filling of ellipses and polygons.
* platform/graphics/cairo/ImageCairo.cpp:
(WebCore::BitmapImage::draw): Make use of a new GraphicsContext
function to simplify the code.
(WebCore::Image::drawPattern): Now implemented. This makes content
with tiled patterns (eg. CSS repeat) render correctly.
* platform/graphics/gdk/ImageGdk.cpp:
(WebCore::Image::drawPattern): Remove old stub.
2007-04-22 Lars Naesbye Christensen <lars@naesbye.dk>
Reviewed by Tim Hatcher.
Prettier, more modern 'cell' cursor
http://bugs.webkit.org/show_bug.cgi?id=13441
Also updates past ChangeLog entries to new email address
* ChangeLog:
* ChangeLog-2006-12-31:
* Resources/cellCursor.png:
2007-04-23 Mark Rowe <mrowe@apple.com>
Rubber-stamped by Hyatt.
Rename cMaxPenderingSourceLengthInLowBandwidthDisplay to cMaxPendingSourceLengthInLowBandwidthDisplay.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
2007-04-22 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin and Geoff.
- move most of Window's data members into a separate private object, to avoid needing
to use the oversize allocator for it
http://bugs.webkit.org/show_bug.cgi?id=13381
It was the only remaining JSObject subclass to use the oversize
allocator on 32-bit platforms, and having oversize objects around
makes garbage collection slower so this would hurt performance
with many tabs/windows open.
No significant effect on JS iBench.
* bindings/js/kjs_events.cpp:
(KJS::JSUnprotectedEventListener::JSUnprotectedEventListener):
(KJS::JSUnprotectedEventListener::~JSUnprotectedEventListener):
(KJS::JSEventListener::JSEventListener):
(KJS::JSEventListener::~JSEventListener):
(KJS::JSLazyEventListener::parseCode):
* bindings/js/kjs_window.cpp:
(KJS::WindowPrivate::WindowPrivate):
(KJS::Window::Window):
(KJS::Window::~Window):
(KJS::Window::location):
(KJS::Window::selection):
(KJS::Window::locationbar):
(KJS::Window::menubar):
(KJS::Window::personalbar):
(KJS::Window::statusbar):
(KJS::Window::toolbar):
(KJS::Window::scrollbars):
(KJS::Window::mark):
(KJS::Window::getValueProperty):
(KJS::Window::findJSEventListener):
(KJS::Window::findJSUnprotectedEventListener):
(KJS::Window::clearHelperObjectProperties):
(KJS::Window::clear):
(KJS::Window::setCurrentEvent):
(KJS::Window::setReturnValueSlot):
(KJS::Window::clearAllTimeouts):
(KJS::Window::installTimeout):
(KJS::Window::pauseTimeouts):
(KJS::Window::resumeTimeouts):
(KJS::Window::clearTimeout):
(KJS::Window::timerFired):
(KJS::Window::disconnectFrame):
(KJS::Window::jsEventListeners):
(KJS::Window::jsHTMLEventListeners):
(KJS::Window::jsUnprotectedEventListeners):
(KJS::Window::jsUnprotectedHTMLEventListeners):
* bindings/js/kjs_window.h:
2007-04-22 David Hyatt <hyatt@apple.com>
Fix 1% regression on the PLT. Make sure roundToDevicePixels does no
work when no scale is in effect.
Reviewed by mjs
2007-04-22 Darin Adler <darin@apple.com>
Reviewed by Oliver.
- fix small things noticed while looking into a font subsitution bug
* platform/Font.h: (WebCore::Font::operator==): Corrected a misleading comment.
* platform/Font.cpp:
(WebCore::Font::Font): Initialize m_pageZero to 0 in the empty constructor instead
of leaving it uninitialized. Initialize m_fontList for tighter code. Remove unneeded
initialization of RefPtr members to 0. Changed the copy constructor to use initialization
for tighter code.
(WebCore::Font::operator=): Sorted to match the order from the header and the copy
constructor, and removed the uneeded self-assignment check.
2007-04-22 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=5196
<rdar://problem/4537384> input type=file fields with style=display:none do not post
their values (5196)
- fix http://bugs.webkit.org/show_bug.cgi?id=8248
Can not clear file input field
* manual-tests/clear-input-file.html: Added.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::appendFormData): Remove check that prevents submission of
form data when there is no renderer or the renderer is invisible. While well-intentioned,
the rule does not match the behavior of other web browsers.
(WebCore::HTMLInputElement::setValue): Instead of disallowing all value changes for file
type, allow changes to the empty string.
(WebCore::HTMLInputElement::storesValueSeparateFromAttribute): Made file type return true
for this. 1) The file type does store its value separate from the value attribute.
2) The code in setInputType() should do the right thing given this new value, according to
my inspection of the code. 3) The code in both reset() and setValue() will work properly
if this is true, which was the motivation for changing it.
* platform/FileChooser.h: Added a clear function.
* platform/FileChooser.cpp: (WebCore::FileChooser::clear): Clear the filename and the icon.
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::valueChanged): Used a local variable to make the code
a little bit more readable (and match the change below).
(WebCore::RenderFileUploadControl::updateFromElement): Used local variables a bit more in
the old code. Added code that will call clear on the FileChooser and repaint if the DOM
element has an empty value and the FileChooser does not.
2007-04-22 Grace Kloba <klobag@gmail.com>
Reviewed by Hyatt.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12279
Implemented two pass loading. Enabled by WTF_USE_LOW_BANDWIDTH_DISPLAY flag.
* dom/Document.cpp:
(WebCore::Document::Document): initialize member variable m_inLowBandwidthDisplay
* dom/Document.h:
(WebCore::Document::haveStylesheetsLoaded): while in low bandwidth display mode, ignore pending style sheets
(WebCore::Document::setDocLoader):
(WebCore::Document::inLowBandwidthDisplay):
(WebCore::Document::setLowBandwidthDisplay):
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::scriptHandler): while in low bandwidth display mode, don't execute JavaScript
* loader/Cache.cpp:
(WebCore::Cache::requestResource): while in low bandwidth display mode, don't let style sheet and JavaScript block
* loader/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::checkNotify): add notifyFinished() as client may need "this" pointer
* loader/DocLoader.h:
(WebCore::DocLoader::replaceDocument):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader):
(WebCore::FrameLoader::requestFrame): while in low bandwidth display mode, don't load sub-frame
(WebCore::FrameLoader::stopLoading):
(WebCore::FrameLoader::begin): set to low bandwidth display mode if the top frame is HTML document
(WebCore::FrameLoader::write):
(WebCore::FrameLoader::endIfNotLoading):
(WebCore::FrameLoader::checkCompleted): while in low bandwidth display mode, don't set complete
(WebCore::FrameLoader::requestObject): while in low bandwidth display mode, don't care Object
(WebCore::FrameLoader::addLowBandwidthDisplayRequest):
(WebCore::FrameLoader::removeAllLowbandwidthDisplayRequests):
(WebCore::FrameLoader::notifyFinished):
(WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
* loader/FrameLoader.h:
(WebCore::FrameLoader::FrameLoader::needToSwitchOutLowBandwidthDisplay):
(WebCore::FrameLoader::FrameLoader::setUseLowBandwidthDisplay):
(WebCore::FrameLoader::FrameLoader::useLowBandwidthDisplay):
2007-04-22 Darin Adler <darin@apple.com>
Reviewed by Tim Hatcher.
- fix http://bugs.webkit.org/show_bug.cgi?id=13439
4 problems found in dashboard-region parser and serializer
Test: fast/css/dashboard-region-parser.html
* css/CSSPrimitiveValue.cpp: (WebCore::CSSPrimitiveValue::cssText):
Fix code that overwrote each additional region with the previous one to
instead build a space-separated list. Check for the case of an identifier
that's invalid, since that's (accidentally) how we represent a region
value that doesn't have explicit top/right/bottom/left values. The old code
would end up writing out four spaces after the region type.
* css/cssparser.cpp: (WebCore::CSSParser::parseDashboardRegions):
Fail to parse if there is something after the "none" identifier or after
the arguments inside the dashboard-region "function". Also replaced code
that produced a identifier with CSS_VAL_INVALID in a roundabout way with
code that does it explicitly.
2007-04-22 Darin Adler <darin@apple.com>
Reviewed by Adele.
- support for fix for <rdar://problem/5100240> REGRESSION: Control-O broken
* dom/KeyboardEvent.h: Include a vector of command names in the KeypressCommand object
instead of a single command name.
2007-04-22 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=13115
REGRESSION: 1000% performance regression in DOM access by index, which was already slow
* dom/NodeList.h: Move cached data into a separate class, so it can be shared.
* dom/Node.h: Replace the set of registered NodeLists with a struct that also
contains a shared NodeList::Caches (so the size of Node doesn't change).
* dom/NodeList.cpp:
(WebCore::NodeList::NodeList):
(WebCore::NodeList::~NodeList):
(WebCore::NodeList::recursiveLength):
(WebCore::NodeList::itemForwardsFromCurrent):
(WebCore::NodeList::itemBackwardsFromCurrent):
(WebCore::NodeList::recursiveItem):
(WebCore::NodeList::itemWithName):
(WebCore::NodeList::rootNodeChildrenChanged):
(WebCore::NodeList::NodeListInfo::NodeListInfo):
(WebCore::NodeList::NodeListInfo::reset):
* dom/ChildNodeList.cpp:
(WebCore::ChildNodeList::ChildNodeList):
(WebCore::ChildNodeList::length):
(WebCore::ChildNodeList::item):
(WebCore::ChildNodeList::nodeMatches):
* dom/ChildNodeList.h:
* dom/Node.cpp:
(WebCore::Node::childNodes):
(WebCore::Node::registerNodeList):
(WebCore::Node::unregisterNodeList):
(WebCore::Node::notifyLocalNodeListsAttributeChanged):
(WebCore::Node::notifyLocalNodeListsChildrenChanged):
Adjust for the above changes.
2007-04-21 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13391
REGRESSION (r18819): Incomplete repaint of button text
Test: fast/repaint/control-clip.html
Ignore controls' lightweight clip in repaint rect computation for now.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeAbsoluteRepaintRect):
2007-04-21 Darin Adler <darin@apple.com>
Reviewed by Adam.
- fix <rdar://problem/4816343> :-khtml-drag CSS pseudo-class changed to :-webkit-drag, need alias
* css/CSSSelector.cpp: (WebCore::CSSSelector::extractPseudoType):
Since Apple documentation claims "-khtml-drag" works, we need to keep it working,
so add it back as an alias.
2007-04-21 Darin Adler <darin@apple.com>
Reviewed by Oliver.
- fix <rdar://problem/4782422> REGRESSION: -[stringByEvaluatingJavaScriptFromString]
returns an empty string instead of nil for non-string results
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
Added a call to nsStringNilIfEmpty to restore the old behavior. It might be nice to
distinguish the empty string from a non-string result, but there's no obvious way
to do that, and for compatibility it's probably best to just restore the old
behavior instead.
2007-04-21 David Hyatt <hyatt@apple.com>
Fix for bug 13432, determineFlowSpacing is O(n^2).
Reviewed by aroben
* rendering/InlineBox.cpp:
(WebCore::InlineBox::nextOnLineExists):
(WebCore::InlineBox::prevOnLineExists):
* rendering/InlineBox.h:
(WebCore::InlineBox::InlineBox):
2007-04-21 Lamar Goddard <lamargoddard@gmail.com>
Reviewed by Darin.
Fix for http://bugs.webkit.org/show_bug.cgi?id=5262
<rdar://problem/5018778>
XMLSerializer drops Namespace information
Updated WebCore::markup to output namespace information for elements/attributes whose namespace information
doesn't appear in its scope in the output.
Added test case: fast/dom/serialize-nodes.xhtml
* WebCore/editing/markup.cpp:
(WebCore::createMarkup(const Node*, ...)): Changed call to WebCore::markup to match parameters
(WebCore::markup): Changed recursive call to match tree structure, removed ASSERT and no longer needed includeSiblings parameter.
(WebCore::startMarkup): Added optional parameter to track namespaces in the current scope.
(WebCore::addNamespace): Function to add namespace information to markup.
(WebCore::shouldAddNamespaceAttr):
(WebCore::shouldAddNamespaceElem): Functions that test whether namespace information should be added for a given node.
* WebCore/dom/Document.idl:
(createElementNS):
(createAttributeNS):
(getElementsByTagNameNS): Added [ConvertNullToNullString] to namespaceURI parameter.
* WebCore/dom/Node.cpp:
(Node::getElementsByTagNameNS): removed test for namespaceURI being null as null can be a valid namespace.
2007-04-21 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=13300
Reproducible crash opening anekdot.ru
* html/HTMLParser.cpp:
(WebCore::HTMLParser::HTMLParser):
(WebCore::HTMLParser::getNode):
(WebCore::HTMLParser::handleIsindex):
* html/HTMLParser.h:
Made HTMLParser::form a RefPtr, and renamed it to m_currentFormElement.
Made m_currentMapElement a RefPtr.
2007-04-21 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13353
REGRESSION (r20754-20766): Textarea does not resize when scrollbar is present
Test: fast/overflow/hit-test-overflow-controls.html
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseMoveEvent): Avoid activating scrollbars
during layer resize.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::isPointInOverflowControl): Renamed isPointInScrollbar
to this, to reflect that it returns true for points in the resize corner
as well. Changed it to call the layer to do the actual work.
(WebCore::RenderBlock::nodeAtPoint): Updated for the above rename.
* rendering/RenderBlock.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::horizontalScrollbarWidget): Fixed typo in this function's
name (it was horizontaScrollbarWidget).
(WebCore::RenderLayer::hitTestOverflowControls): Added. Returns whether the
hit point is in one of the scrollbars or the resize corner, and updates the
platform scrollbar in the hit test result if a scrollbar was hit.
* rendering/RenderLayer.h:
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::isPointInOverflowControl): Rename.
* rendering/RenderListBox.h:
2007-04-21 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13417
Repro crash when the first argument to getMatchedCSSRules is not an element
Test: fast/dom/Window/getMatchedCSSRules-null-crash.html
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::styleRulesForElement): Added null check.
2007-04-21 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13416
Repro crash after referencing the user stylesheet from JavaScript
No test included because DumpRenderTree does not support setting the user stylesheet.
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::CSSStyleSelector):
(WebCore::CSSStyleSelector::~CSSStyleSelector):
* css/cssstyleselector.h: Made m_userSheet a RefPtr.
2007-04-21 MorganL <morganl.webkit@yahoo.com>
Reviewed by Adam.
NPObject should be forward declared using 'struct' instead of 'class'
* page/Frame.h:
2007-04-21 Alp Toker <alp@atoker.com>
Gdk build fix.
* platform/gdk/FontPlatformDataGdk.cpp:
(WebCore::FontPlatformData::FontPlatformData): Use the correct casts.
2007-04-20 Brady Eidson <beidson@apple.com>
Reviewed by Oliver (Black Sheep)
<rdar://problem/3559794>
[WebView setMaintainsBackForwardList:] doesn't actually flush out the current page caches
* WebCore.exp:
* history/BackForwardList.cpp:
(WebCore::BackForwardList::BackForwardList): Set the flag to true by default
(WebCore::BackForwardList::addItem): Check the flag and bail if its false
(WebCore::BackForwardList::setCapacity): More correct if it set the m_current to
NoCurrentItemIndex if we're setting capacity to 0
(WebCore::BackForwardList::enabled):
(WebCore::BackForwardList::setEnabled): If we're disabling, cycle capacity to 0 and
back to flush things out
* history/BackForwardList.h: Add enabled(), setEnabled(bool), and m_enabled
2007-04-20 David Hyatt <hyatt@apple.com>
Bug 13424, firstLineStyle and verticalPositionHint together take
33% of the time on the new tag nesting PLT. Don't waste time even
looking for first-line styles if no stylesheet used them.
Reviewed by beth
* css/CSSGrammar.y:
* dom/Document.cpp:
(WebCore::Document::Document):
* dom/Document.h:
(WebCore::Document::usesFirstLineRules):
(WebCore::Document::setUsesFirstLineRules):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::verticalPositionHint):
(WebCore::RenderObject::firstLineStyle):
2007-04-20 Peter Kasting <pkasting@google.com>
Reviewed by Oliver.
- fix http://bugs.webkit.org/show_bug.cgi?id=13420
* platform/TextEncodingRegistry.cpp:
(WebCore::addToTextEncodingNameMap): Change a pointer comparison to a
strcmp(), since the strings here are not necessarily
pointer-equivalent.
2007-04-20 Darin Adler <darin@apple.com>
Reviewed by Geoff Garen and John Sullivan.
- fix <rdar://problem/4671964> document property on <iframe> elements causes problems for SAP application
Test: fast/dom/iframe-document.html
* bindings/js/kjs_html.h: Removed IFrameDocument.
* bindings/js/kjs_html.cpp: (KJS::JSHTMLElement::iFrameGetter): Ditto.
2007-04-19 Alp Toker <alp@atoker.com>
Reviewed by Mark.
* platform/gdk/FontGdk.cpp:
(WebCore::Font::drawGlyphs):
* platform/gdk/FontPlatformDataGdk.cpp:
(WebCore::FontPlatformData::FontPlatformData): Fix font support in Gdk port.
2007-04-19 David Hyatt <hyatt@apple.com>
Fix for bug 13208, implement word-break. This patch produces a partial
implementation of word-break. word-break: break-all is implemented. In
addition, a custom value, word-break: break-word is added that is a hybrid
of word-wrap: break-word and word-break: break-all (and more useful than
either).
Reviewed by beth
Added fast/text/word-break.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSPropertyNames.in:
* css/CSSValueKeywords.in:
* css/cssparser.cpp:
(WebCore::CSSParser::parseValue):
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
* rendering/RenderStyle.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):
(WebCore::RenderStyle::diff):
* rendering/RenderStyle.h:
(WebCore::):
(WebCore::RenderStyle::breakWords):
(WebCore::RenderStyle::wordBreak):
(WebCore::RenderStyle::setWordBreak):
(WebCore::RenderStyle::initialWordBreak):
(WebCore::RenderStyle::initialWordWrap):
* rendering/RenderText.cpp:
(WebCore::RenderText::calcMinMaxWidthInternal):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::createInnerTextStyle):
(WebCore::RenderTextControl::calcHeight):
* rendering/bidi.cpp:
(WebCore::RenderBlock::findNextLineBreak):
2007-04-20 Mark Rowe <mrowe@apple.com>
Qt build fix for FreeBSD.
* WebCore.pro: FreeBSD needs HAVE_PTHREAD_NP_H defined.
2007-04-19 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13403
REGRESSION (r18875-r18899): Can no longer type into search form field after searching and then clicking "back"
The problem was that the page was loaded from the page cache with a subtree
marked for layout and the layout timer stopped (having been stopped when the
page entered the page cache). FrameView::needsLayout() was returning false
which prevented the pending layout from completing.
* page/FrameView.cpp:
(WebCore::FrameView::clear): Removed the call to stop the layout timer, since
reset() does that already.
(WebCore::FrameView::needsLayout): Changed to return true if there's a subtree
pending relayout.
2007-04-19 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/5144139>
On delete, <BR> inserted into non-editable ToDo <TABLE> element
The fact that the br was being inserted at a bad position
(a non-editable position and one inside a table instead of
before it) was fixed in the previous checkin. This change
stops us from inserting a br at all, to fix the bug.
After a delete, we need a placeholder if the selection
started at the start of a paragraph and ended at the end
of a paragraph. But not if it starts just before a table
and ends inside that table. We need placeholders to hold
open emptied out table cells, but that is handled separately.
Also, moved lineBreakExistsAtPosition to htmlediting.cpp
so that it can be used in more places.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::removePlaceholderAt):
(WebCore::CompositeEditCommand::moveParagraphs):
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::doApply):
* editing/InsertLineBreakCommand.cpp:
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply):
* editing/htmlediting.cpp:
(WebCore::lineBreakExistsAtPosition):
* editing/htmlediting.h:
2007-04-19 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
Fixes some issues found while investigating:
<rdar://problem/5144139> On delete, <BR> inserted into non-editable ToDo <TABLE> element
Move the code to handle inserting content before/after
tables for [table, 0/max] to insertNodeAt, so that
all insertions get it, not just some.
Changed insertNodeAt to take in a position instead of a
node and an offset.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::insertNodeAt):
(WebCore::CompositeEditCommand::insertNodeAtTabSpanPosition):
(WebCore::CompositeEditCommand::insertBlockPlaceholder):
(WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
If paragrahStart.node() is an atomic node, insertNodeAt can handle
insertion, we don't need to special case it.
(WebCore::CompositeEditCommand::moveParagraphs):
(WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
* editing/CompositeEditCommand.h:
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::mergeParagraphs):
(WebCore::DeleteSelectionCommand::doApply):
* editing/FormatBlockCommand.cpp:
(WebCore::FormatBlockCommand::doApply):
* editing/IndentOutdentCommand.cpp:
(WebCore::IndentOutdentCommand::indentRegion):
(WebCore::IndentOutdentCommand::outdentParagraph):
* editing/InsertLineBreakCommand.cpp:
(WebCore::InsertLineBreakCommand::doApply):
* editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::doApply):
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply):
* editing/InsertTextCommand.cpp:
(WebCore::InsertTextCommand::prepareForTextInsertion): Removed some
dead code that handled insertion at non-editable positions.
(WebCore::InsertTextCommand::insertTab):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::doApply):
(WebCore::ReplaceSelectionCommand::insertNodeAtAndUpdateNodesInserted):
* editing/ReplaceSelectionCommand.h:
2007-04-19 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13336
REGRESSION (r20646): editing/execCommand/hilitecolor.html crashes under guardMalloc
Avoid calling selectionRect() and selectionGapRects() on a renderer that needs
layout.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::selectionGapRects):
* rendering/RenderBlock.h:
(WebCore::RenderBlock::BlockSelectionInfo::BlockSelectionInfo):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::selectionRect):
* rendering/RenderObject.h:
(WebCore::RenderObject::SelectionInfo::SelectionInfo):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::selectionRect):
* rendering/RenderText.cpp:
(WebCore::RenderText::selectionRect):
2007-04-19 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5142012>
GoogleDocs: Crash at WebCore::Range::startPosition() when creating a list from a link
List creation uses moveParagraphs to push content into list items.
Its fragment creation (using createMarkup) incorrectly uses regular
spaces instead of nbsps for spaces that were rendered (11475), which
causes spaces to be collapsed during the move operation. This results
in a call to rangeFromLocationAndLength with a location past the end
of the document. We use the result from rangeFromLocationAndLength
(null) and crash.
Also when moveParagraphs tries to push content into a list item surrounded
by an anchor, it fails because positionAvoidingSpecialElementBoundary avoids
the anchor, which also avoids the list item. This was fixed by pushing
down anchors before avoiding them.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::pushAnchorElementDown): Remove the
old anchor after we push down clones of it, this is what callers
expect.
(WebCore::CompositeEditCommand::pushPartiallySelectedAnchorElementsDown):
Call the new enclosingAnchorElement, that takes in a position instead
of a node.
(WebCore::CompositeEditCommand::moveParagraphs): If spaces collapsed
as a result of the move, rangeFromLocationAndLength can return null,
bail and don't try to preserve the selection in that case.
(WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
Moved from htmlediting.cpp.
Make sure anchors are pushed down before avoiding them so that we don't
also avoid structural elements like lists and blocks.
* editing/CompositeEditCommand.h:
* editing/TypingCommand.cpp: Moved isFirst/LastPositionBefore/AfterTable
to htmlediting.cpp.
* editing/htmlediting.cpp:
Moved positionAvoidingSpecialElementBoundary so that it could call
pushAnchorElementDown.
(WebCore::isFirstPositionAfterTable): Moved here.
(WebCore::isLastPositionBeforeTable): Moved here.
(WebCore::enclosingAnchorElement): Moved here.
(WebCore::enclosingListChild): Removed an extraneous space.
* editing/htmlediting.h:
2007-04-19 Beth Dakin <bdakin@apple.com>
Reviewed by Hyatt.
Fix for <rdar://problem/5120889> Sized table cells w/borders not
drawn to correct size
When table cells have children with %-height, the cells were
incorrectly shrinking down to be the size of the child. This
exposed another problem with replaced children and sizing.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::calcReplacedHeightUsing): The exposed problem.
Subtract our borders and padding in the auto or percent table cell
containing block case.
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::layoutRows): When our children can
flex, do not always set the cellTopExtra and cellBottomExtra to 0!
That is bad! We should do the same as the non-flex case.
2007-04-19 Anders Carlsson <andersca@apple.com>
Reviewed by Geoff.
http://bugs.webkit.org/show_bug.cgi?id=13333
Support naturalWidth/naturalHeight on image elements
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::naturalWidth):
(WebCore::HTMLImageElement::naturalHeight):
* html/HTMLImageElement.h:
* html/HTMLImageElement.idl:
2007-04-19 Patti Hoa <patti@apple.com>
Reviewed by Darin.
- review suggestion for rdar://5145011 code change
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject value]):
return early if value attribute is not supported by the attachment view.
2007-04-19 Patti Hoa <patti@apple.com>
Reviewed by Darin.
<rdar://problem/5145011> Allow attachment view of web object to handle accessibility actions
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject value]):
Only allow asking the attachmentView for value if attachmentView supports this value attribute
(-[WebCoreAXObject title]):
(-[WebCoreAXObject accessibilityAttributeNames]):
Should not return that long list of unrelated attributes for attachmentView.
(-[WebCoreAXObject accessibilityActionNames]):
(-[WebCoreAXObject accessibilityPerformAction:]):
Allow attachmentView a chance to handle actions.
(-[WebCoreAXObject accessibilityParameterizedAttributeNames]):
Should not return that long list of unrelated attributes for attachmentView.
2007-04-19 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13291
REGRESSION (r19595): WebViewDidBeginEditingNotification not posted when focusing with the mouse
Covered by editing tests.
* dom/Document.cpp:
(WebCore::Document::setFocusedNode): Moved the call to Editor::didBeginEditing()
back into here.
* dom/Element.cpp:
(WebCore::Element::updateFocusAppearance): Removed the call to didBeginEditing().
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateFocusAppearance): Ditto.
2007-04-19 Sam Weinig <sam@webkit.org>
Reviewed by Darin.
- Patch for http://bugs.webkit.org/show_bug.cgi?id=12249
FCKeditor: <hr>, <ul> and <ol> have id="undefined"
Convert undefined and null to a null string for third argument of
execCommand();
Test: editing/execCommand/arguments-combinations.html
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/kjs_binding.cpp:
(KJS::valueToStringWithUndefinedOrNullCheck):
* bindings/js/kjs_binding.h:
* bindings/scripts/CodeGeneratorJS.pm:
* dom/Document.idl:
2007-04-19 Alp Toker <alp@atoker.com>
Reviewed by hyatt.
* WebCoreSources.bkl: Remove obsolete source file from build.
2007-04-18 Alp Toker <alp@atoker.com>
Gdk build fix. Reviewed by Sam Weinig.
Track changes to make GdkLauncher work again.
* WebCoreSources.bkl:
* platform/gdk/ChromeClientGdk.h:
* platform/gdk/TemporaryLinkStubs.cpp:
(ChromeClientGdk::createWindow):
(ChromeClientGdk::createModalDialog):
(Editor::markBadGrammar):
2007-04-17 Brady Eidson <beidson@apple.com>
Reviewed by Tim
<rdar://problem/5008925>
Expose the NSURLConnection delegate willCacheResponse API to WebResourceLoadDelegate
* WebCore.xcodeproj/project.pbxproj: Added ResourceLoaderMac.mm
* loader/FrameLoaderClient.h: Add the willCacheResponse SPI for WebKit to implement
* loader/ResourceLoader.h:
* loader/mac/ResourceLoaderMac.mm: Added.
(WebCore::ResourceLoader::willCacheResponse): Return the new cachedResponse from the client
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::willCacheResponse): Stub
* platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::willCacheResponse): Return the new cachedResponse from the client
* platform/network/mac/ResourceHandleMac.mm:
(-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]): Call to get the new
cachedURLResponse before calling for the cache policy
2007-04-18 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13375
REGRESSION (r20901): failing fast/overflow/scrollRevealButton.html
* dom/Document.cpp: (WebCore::Document::updateLayout):
If we have a parent frame, update its layout too.
2007-04-18 Alp Toker <alp@atoker.com>
Gdk build fix. Reviewed by Mark.
* loader/gdk/FrameLoaderClientGdk.cpp:
(WebCore::FrameLoaderClientGdk::loadedFromCachedPage):
(WebCore::FrameLoaderClientGdk::setDocumentViewFromCachedPage):
(WebCore::FrameLoaderClientGdk::saveDocumentViewToCachedPage):
* loader/gdk/FrameLoaderClientGdk.h:
* platform/gdk/TemporaryLinkStubs.cpp:
(CachedPage::close): Track PageCache to CachedPage refactoring.
2007-04-17 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13369
REGRESSION (r13366): Invisible table cell background is painted
Test: fast/table/invisible-cell-background.html
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::paintBackgroundsBehindCell): Don't paint any
background if the cell is not visible. This behavior matches WinIE and Opera.
2007-04-17 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/5119244>
Crash when indenting a selected ToDo
indentRegion() was using the old (incorrect) editable root
getter, which returned null for a valid, editable position,
causing the crash.
* editing/IndentOutdentCommand.cpp:
(WebCore::IndentOutdentCommand::indentRegion):
The editable root for a position is editableRootForPosition(p),
not p.node()->rootEditableElement(), because of VisiblePositions
before/after tables, replaced elements and others.
2007-04-17 Justin Garcia <justin.garcia@apple.com>
Reviewed by hyatt
<rdar://problem/5138441>
GoogleDocs: Indented text looks like text that's been Quoted
GoogleDocs uses FormatBlock, blockquotes and a style rule
for blockquotes to implement a "Quote Text" feature. Styles
intended only for those blockquotes were added to the
blockquotes that we use for indenting.
* css/html4.css: Removed the webkit-indent-blockquote class rule.
* editing/IndentOutdentCommand.cpp:
(WebCore::createIndentBlockquoteElement): Use custom margins
and turn off border and padding to override author rules for
blockquotes.
2007-04-17 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5136770>
Gmail Editor: Hang when turning a particular multi-line selection into a list
When InsertListCommand pushes content into list items,
it creates an empty list item and then calls moveParagraphs.
But moveParagraphs' selection preservation code fails when
it encounters empty list items (list items w/o placeholders).
This causes InsertListCommand to lose track of where it has
already been performed, which causes the hang.
* editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::doApply): Use brs to hold open
empty list items.
2007-04-17 Darin Adler <darin@apple.com>
Oops, rolled that last change out. I'll redo it again later after making
som additional refinments.
2007-04-17 Darin Adler <darin@apple.com>
Reviewed by Brady.
- a few baby steps to try to make lockHistory and userGesture less confusing
* page/FrameLoadRequest.h:
(WebCore::FrameLoadRequest::FrameLoadRequest): Add initialization of m_isUserGesture
to true.
(WebCore::FrameLoadRequest::shouldLockHistory): Renamed from lockHistory to avoid having
a getter that sounds like a verb phrase.
(WebCore::FrameLoadRequest::setShouldLockHistory): Ditto.
(WebCore::FrameLoadRequest::isUserGesture): Added.
(WebCore::FrameLoadRequest::setIsUserGesture): Ditto.
* loader/FrameLoader.h: Remove userGesture parameter from load that takes
FrameLoadRequest. Remove default values for lockHistory and userGesture parameters,
since that just makes it more likely we'll forget to pass them in. Remove one of
the overloads of urlSelected, since it's only called one place.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::createWindow): Remove userGesture parameter, relying on
the true default in FrameLoadRequest.
(WebCore::FrameLoader::urlSelected): Call setShouldLockHistory and setIsUserGesture
on the FrameLoadRequest, and call load directly; also eliminate the other urlSelected
overload since this was the only place it was called.
(WebCore::FrameLoader::load): Remove userGesture parameter, relying on the true
default in FrameLoadRequest. In the other overload, clean up logic to eliminate the
argsReferrer variable and get rid of the userGesture parameter, using the value from
FrameLoadRequest.
(WebCore::FrameLoader::submitForm): Remove userGesture parameter, relying on the value
in the FrameLoadRequest. This actually changes behavior.
* bindings/js/kjs_html.cpp: (KJS::JSHTMLDocument::putValueProperty): Pass
false for userGesture explicitly instead of relying on default argument.
* page/ContextMenuController.cpp: (WebCore::ContextMenuController::contextMenuItemSelected):
Remove userGesture parameter, relying on the true default in FrameLoadRequest.
2007-04-16 David Kilzer <ddkilzer@webkit.org>
Reviewed by NOBODY (fixed misspelling).
* manual-tests/containing-block-position-chage.html: Removed.
* manual-tests/containing-block-position-change.html: Added.
2007-04-16 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5134759>
GMail Editor: Hang after pasting underlined text multiple times
The moveParagraphs call that ReplaceSelectionCommand
performs must receive only inline content from createMarkup,
or else it will result in another call to moveParagraphs
when it performs the move, resulting in infinite recursion.
* editing/markup.cpp:
(WebCore::startMarkup): We were only converting a block to
an inline if it had an inline style declaration or styles
coming from matched rules. Cleaned up this code a bit by
handling an element's style separately from its other
attributes.
2007-04-16 Darin Adler <darin@apple.com>
- get layout tests going again
* page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry):
Replace assertion with a runtime check. We can consider changing it back to
an assertion some day, but it's not important.
2007-04-16 Darin Adler <darin@apple.com>
Reviewed by John Sullivan.
- fix http://bugs.webkit.org/show_bug.cgi?id=13303
<rdar://problem/5126341> REGRESSION: controls in a background Safari window
maintain active appearance if the address bar has focus (13303)
- fix a related problem where elements could look focused in non-active windows
- simplify secure keyboard entry logic in Frame::setIsActive
* WebCore.exp: Add two new symbols for use by WebKit.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::dispatchFocusEvent): Call setUseSecureKeyboardEntryWhenActive
rather than calling setSecureKeyboardEntry directly -- does nothing if the frame is not active.
(WebCore::HTMLInputElement::dispatchBlurEvent): Ditto.
* page/Frame.cpp:
(WebCore::Frame::setUseSecureKeyboardEntryWhenActive): Added. Calls
setUseSecureKeyboardEntry only if the frame is active, but also stores away the state,
so that the setIsActive function doesn't have to recompute it.
(WebCore::Frame::setIsActive): Rewrote all the comments in the function. Removed the code
to manage control tints, which are not based on the whether the frame is active but rather
on AppKit's concept of whether the window should have "key appearance". Simplified the
logic about when to call setUseSecureKeyboardEntry by using the value of
m_useSecureKeyboardEntryWhenActive.
(WebCore::FramePrivate::FramePrivate): Initialize m_useSecureKeyboardEntryWhenActive.
* page/Frame.h: Made setSecureKeyboardEntry private and renamed it to
setUseSecureKeyboardEntry, removed isSecureKeyboardEntry, and
added a public setUseSecureKeyboardEntryWhenActive.
* page/FramePrivate.h: Added m_useSecureKeyboardEntryWhenActive.
* page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry): Added an assertion,
and removed isSecureKeyboardEntry().
* page/FrameView.h: Added updateControlTints.
* page/FrameView.cpp: (WebCore::FrameView::updateControlTints): Added. Code was moved
here from setIsActive for two reasons: (1) it makes more sense in the view class, and
(2) it needs to be called at the appropriate time for AppKit, not when active changes.
* rendering/RenderTheme.cpp: (WebCore::RenderTheme::isFocused): Added an isActive
check here to match the logic in the implementation of the CSS pseudo-state.
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::updateFocusedState): Use the isFocused function instead of
repeating the logic here. Removed the "need to add a key window test here" comment.
(WebCore::RenderThemeMac::controlSupportsTints): Added a comment about the NSCell
SPI that's related to the _windowChangedKeyState method we now use in WebHTMLView.
2007-04-16 Darin Adler <darin@apple.com>
Reviewed by John Sullivan.
- fix http://bugs.webkit.org/show_bug.cgi?id=13227
StringImpl::isLower incorrectly assumes islower returns 1 (it can return any non-0)
* platform/StringImpl.cpp:
(WebCore::StringImpl::isLower): Based on test application results, changed to use &&
instead of trying to use & to avoid branches. Use U16_NEXT so we can handle characters
outside the BMP. Improved comments.
(WebCore::StringImpl::lower): Improved comments.
(WebCore::equalIgnoringCase): Changed to use && instead of trying to use & to avoid
branches. Improved comments. Added an assertion about the assumption we're
making that characters in the char* are all ASCII.
2007-04-13 David Kilzer <ddkilzer@webkit.org>
Patch and review by hyatt. Testing and landing by ddkilzer.
<rdar://problem/5078866>
tables don't inherit text-align (in strict mode; they're not supposed to in quirks mode)
Test: fast/css/table-text-align-quirk.html
fast/css/table-text-align-strict.html
Previous commit (r20731) removed the wrong property from WebCore/css/html4.css. However,
when the correct property was removed, it caused tables to inherit alignment properties
from tags like <center> and <div align="center">. This is fixed in
WebCore::CSSStyleSelector::adjustRenderStyle() by special-casing tables to reset the
text-align property.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForTextAlign): Renamed KHTML_CENTER, KHTML_LEFT and KHTML_RIGHT to
WEBKIT_CENTER, WEBKIT_LEFT and WEBKIT_RIGHT.
* css/cssparser.cpp:
(WebCore::CSSParser::parseValue): Ditto.
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::adjustRenderStyle): Tables should not support -webkit-center,
-webkit-left or -webkit-right values for text-align, so reset them back to auto.
* css/html4.css: Removed "text-align: -webkit-auto;" property from tables selector. It
was previously added to css/quirks.css in r20731.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::determineHorizontalPosition): Renamed KHTML_* to WEBKIT_*.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::calcHorizontalMargins): Ditto.
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::caretRect): Ditto.
* rendering/RenderStyle.h: Ditto.
(WebCore::):
* rendering/bidi.cpp:
(WebCore::RenderBlock::computeHorizontalPositionsForLine): Ditto.
2007-04-12 Brady Eidson <beidson@apple.com>
Reviewed by Black Sheep
<rdar://problem/4664154> and http://bugs.webkit.org/show_bug.cgi?id=3546
When you click on a link that opens in a new window from within gmail, they first create a new window
with an empty URL, then immediately document.write() into the window to schedule a redirect.
Since the initial page doesn't have a URL associated with it, a history item never gets created. The
reasonable solution? To actually create the history item after the redirect (in updateHistoryForInternalLoad)
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::addHistoryForCurrentLocation): Updates global and B/F history with a new history item
(WebCore::FrameLoader::updateHistoryForStandardLoad): Call addHistoryForCurrentLocation
(WebCore::FrameLoader::updateHistoryForInternalLoad): Call addHistoryForCurrentLocation if there is not already
a current history item
* loader/FrameLoader.h:
2007-04-12 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
This fixes <rdar://problem/5060766> -- Frameset with
an empty frame crashes due to null document. Debug
builds hit the frame->document() assertion in
EventHandler::prepareMouseEvent
This null check seems necessary now, having run through
all the logic on the path to this crash it appears that
we can't avoid this null check.
* page/EventHandler.cpp:
(WebCore::EventHandler::updateDragAndDrop):
2007-04-12 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5131716>
Clicking just before a ToDo doesn't put the caret before the ToDo
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::positionForCoordinates):
Consider clicks inside the blocks padding, instead of
incorrectly sending them to the position before the block.
2007-04-12 John Sullivan <sullivan@apple.com>
Reviewed by Anders
- WebCore part of fix for:
<rdar://problem/5128697> REGRESSION: At least one PDF context menu item isn't appearing on Leopard
* platform/ContextMenuItem.h:
(WebCore::):
add two PDF-related context menu items to enum to keep it in sync with WebKit
* platform/ContextMenu.cpp:
(WebCore::ContextMenu::checkOrEnableIfNeeded):
add the new context menu items to the do-nothing case of a big switch statement
2007-04-12 Simon Hausmann <hausmann@kde.org>
Reviewed by Zack.
Fixed drawing of justified text in the Qt port.
* platform/qt/FontQt.cpp:
(Font::drawGlyphs):
2007-04-11 Oliver Hunt <oliver@apple.com>
Reviewed by Maciej.
Adding RetainPtr to the many global obj-c pointers we use in
C/C++ methods. This is necessary to prevent GC from collecting
globals we want to keep around.
We use RetainPtr in obj-c++ and c++ files, and CFRetain/Release in pure
obj-c.
Also made the Pasteboard::m_pasteboard a RetainPtr although it
shouldn't be necessary as the only NSPasteboard instances that
should ever be inserted are the system clipboard and dragging
pasteboard. Neither of which should ever be collected.
* page/mac/WebCoreFrameBridge.mm:
(_getPreSmartSet):
(_getPostSmartSet):
* platform/Pasteboard.h:
* platform/graphics/mac/ColorMac.mm:
(WebCore::nsColor):
* platform/graphics/mac/GraphicsContextMac.mm:
(WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
* platform/mac/FontDataMac.mm:
(WebCore::webFallbackFontFamily):
* platform/mac/PasteboardMac.mm:
(WebCore::writableTypesForURL):
(WebCore::writableTypesForImage):
(WebCore::Pasteboard::clear):
(WebCore::Pasteboard::writeSelection):
(WebCore::Pasteboard::writeURL):
(WebCore::Pasteboard::writeFileWrapperAsRTFDAttachment):
(WebCore::Pasteboard::writeImage):
(WebCore::Pasteboard::canSmartReplace):
(WebCore::Pasteboard::plainText):
(WebCore::Pasteboard::documentFragment):
2007-04-11 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=11362
Native popup with size="1" wraps options
Test: fast/forms/menulist-option-wrap.html
* css/html4.css: Added white-space declaration for select[size="0"] and
select[size="1"]. Added border-radius declaration for select.
2007-04-11 MorganL <morganl.webkit@yahoo.com>
Reviewed by Maciej.
Add a Frame pointer to ChromeClient methods:
http://bugs.webkit.org/show_bug.cgi?id=13127
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::createWindow):
* page/Chrome.cpp:
(WebCore::Chrome::createWindow):
(WebCore::Chrome::createModalDialog):
* page/Chrome.h:
* page/ChromeClient.h:
* page/ContextMenuController.cpp:
(WebCore::openNewWindow):
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyChromeClient::createWindow):
(WebCore::SVGEmptyChromeClient::createModalDialog):
2007-04-11 Brady Eidson <beidson@apple.com>
Reviewed by Ada
<rdar://problem/5080987> - Crash in DocumentLoader::frameLoader() const
This was free nil checking lost during the ObjC -> C++ conversion
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::checkLoadCompleteForThisFrame): Null check the DocumentLoader
2007-04-11 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/5126166>
Deleting selection starting at before ToDo checkbox to end of line, inserts a BR in the subsequent ToDo
If a selection ends in a table cell, we shouldn't perform
a merge after deleting that selection. We have code in
place to prevent those merges, but it failed here.
It fails because the end of the selection was [tableCell, 0],
(normally not a valid VisiblePosition, but valid here
because the table cell is empty). We prevent the merge
if the node of the position at the end of the selection
has an enclosingTableCell. Even though [tableCell, 0] has
an enclosing table cell, the node tableCell doesn't, so
the check fails.
Fixed this by changing enclosingTableCell to take in
a position, instead of a node. The other enclosing element
getters should be changed in this way as well.
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::initializePositionData):
Call the new enclosingTableCell.
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::shouldMerge): Ditto.
* editing/htmlediting.cpp:
(WebCore::enclosingTableCell): Take in a position instead
of a node.
* editing/htmlediting.h:
2007-04-12 Mark Rowe <mrowe@apple.com>
Qt build fix.
* WebCore.pro:
* editing/qt/EditorQt.cpp:
(WebCore::Editor::markBadGrammar):
* history/qt/CachedPageQt.cpp: Added.
(WebCore::CachedPage::close):
* history/qt/PageCacheQt.cpp: Removed.
2007-04-11 Brady Eidson <beidson@apple.com>
Reviewed by Antti
<rdar://problem/5125648> and http://bugs.webkit.org/show_bug.cgi?id=13326
Crash opening a link in a new window from Gmail
Problem here is that the currentHistoryItem in the new window is null. This *shouldn't* be the case,
and is the cause of a very long standing bug -
http://bugs.webkit.org/show_bug.cgi?id=3546 - Can't go back to first page in new window opened from gmail
For now, adding a null check prevents this crash and restores the original, long standing regression
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::updateHistoryForInternalLoad): NULL check
2007-04-11 Adam Roben <aroben@apple.com>
Reviewed by Anders.
Made image document copying more cross-platform.
All layout tests pass.
* editing/Editor.cpp:
(WebCore::imageNodeFromImageDocument): Added.
(WebCore::Editor::canCopy): Called imageNodeFromImageDocument.
(WebCore::Editor::copy): Ditto.
(WebCore::Editor::copyImage): Updated for changes to Pasteboard.
* platform/Pasteboard.h: Made writeImage more general, which allowed
getting rid of its second incarnation.
* platform/gdk/TemporaryLinkStubs.cpp:
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::writeImage): Collapsed logic from the two
writeImage methods into one.
(Pasteboard::writeImage): Updated for Pasteboard changes.
* platform/qt/PasteboardQt.cpp:
(WebCore::Pasteboard::writeImage): Ditto.
2007-04-11 Darin Adler <darin@apple.com>
* css/CSSValueKeywords.in: Fix a comment.
2007-04-09 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/4932260>
Invalid attributed string for attachment range obtained via AXPreviousWordStartTextMarkerForTextMarker
By default, text iterators don't emit anything for replaced
elements. Boundary finding code works around this but has
bugs: replaced elements act as sentence boundaries and the
above bug, where previousBoundary moves past the start of a
word if there is a replaced element just before it. This
patch fixes these issues by treating replaced elements as
punctuation for boundary finding.
* editing/TextIterator.cpp:
(WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
Set m_pastStartNode, the node after (in a reverse pre-order traversal) the
last one that should be processed.
(WebCore::SimplifiedBackwardsTextIterator::advance):
Stop at m_pastStartNode.
Iterate over nodes in reverse pre-order (TextIterator traverses in
pre-orer). This makes knowing when to emit characters after nodes vs. when
to emit characters before nodes easier.
Remove the special case for entering a new block, emitting characters
after nodes can now be handled generally, in handleNonTextNode(), because
of the way we traverse.
Set m_handledChildren to false every iteration since we now do traverse in
reverse pre-order.
(WebCore::SimplifiedBackwardsTextIterator::handleReplacedElement):
Emit a comma for replaced elements. We only use this kind of iterator
for finding boundaries, so we can do this unconditionally.
(WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode):
Don't use emitNewline, instead specify where the newline should be positioned.
A node is handled before its children, so characters emitted here should
be positioned after the node, not before it.
(WebCore::SimplifiedBackwardsTextIterator::exitNode):
Don't use emitNewline, instead specify where the newline should be positioned.
(WebCore::CharacterIterator::CharacterIterator):
Create a TextIterator that emits content for replaced elements, if requested.
* editing/TextIterator.h:
* editing/visible_units.cpp:
(WebCore::previousBoundary):
Removed replaced element handling code.
If the start of the chunk that contained the boundary was in a non-text
node, then the boundary is not necessarily in that node. Particularly
because it is only the end of the chunk that is guaranteed to be a valid
position in those cases. We must iterate backwards by character from
the end of the chunk to find the boundary.
(WebCore::nextBoundary): Removed replaced element handling code.
2007-04-10 Brady Eidson <beidson@apple.com>
Reviewed by Darin
<rdar://problem/4887095> - PageCache and PageState should be combined
These two objects are a relic of when the PageCache was split between WebCore and WebKit
It just makes good sense to combine them now, and the new object is more appropriately
called "CachedPage"
This patch is vast in scope, but simple in depth - anywhere a PageCache or PageState object
was used has been adjusted to use a CachedPage object instead. The most notable change is
that HistoryItem - which always used to have a PageCache object which may or may not have
had a PageState - now may or may not have a CachedPage. This actually simplifies the
HistoryItem code a bit while making the role of CachedPage much more clear.
* WebCore.exp:
* WebCore.xcodeproj/project.pbxproj:
* history/BackForwardList.cpp:
(WebCore::BackForwardList::addItem):
(WebCore::BackForwardList::setCapacity):
(WebCore::BackForwardList::setPageCacheSize):
(WebCore::BackForwardList::clearPageCache):
(WebCore::BackForwardList::close):
* history/PageCache.cpp: Removed.
* history/PageCache.h: Removed.
* page/PageState.cpp: Removed.
* page/PageState.h: Removed.
* history/CachedPage.cpp: Added.
(WebCore::CachedPage::create):
(WebCore::CachedPage::CachedPage):
(WebCore::CachedPage::~CachedPage):
(WebCore::CachedPage::restore):
(WebCore::CachedPage::clear):
(WebCore::CachedPage::setDocumentLoader):
(WebCore::CachedPage::documentLoader):
(WebCore::CachedPage::setTimeStamp):
(WebCore::CachedPage::setTimeStampToNow):
(WebCore::CachedPage::timeStamp):
* history/CachedPage.h: Added.
(WebCore::CachedPage::document):
(WebCore::CachedPage::mousePressNode):
(WebCore::CachedPage::URL):
* history/HistoryItem.cpp:
(WebCore::HistoryItem::HistoryItem):
(WebCore::HistoryItem::setCachedPage):
(WebCore::HistoryItem::setURL):
(WebCore::HistoryItem::alwaysAttemptToUseCachedPage):
(WebCore::HistoryItem::setAlwaysAttemptToUseCachedPage):
(WebCore::HistoryItem::cachedPage):
(WebCore::cachedPagesPendingRelease):
(WebCore::HistoryItem::releaseCachedPagesOrReschedule):
(WebCore::HistoryItem::releaseAllPendingCachedPages):
(WebCore::HistoryItem::scheduleCachedPageForRelease):
* history/HistoryItem.h:
* history/mac/HistoryItemMac.mm:
* history/HistoryItemTimer.cpp:
(WebCore::HistoryItemTimer::HistoryItemTimer):
(WebCore::HistoryItemTimer::callReleaseCachedPagesOrReschedule):
* history/HistoryItemTimer.h:
* history/mac/PageCacheMac.mm: Removed.
* history/mac/CachedPageMac.mm: Added.
(WebCore::CachedPage::close):
(WebCore::CachedPage::setDocumentView):
(WebCore::CachedPage::documentView):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::loadFromCachedPage):
(WebCore::DocumentLoader::setLoadingFromCachedPage):
(WebCore::DocumentLoader::isLoadingFromCachedPage):
* loader/DocumentLoader.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::provisionalLoadStarted):
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::transitionToCommitted):
(WebCore::FrameLoader::open):
(WebCore::FrameLoader::startLoading):
(WebCore::FrameLoader::receivedMainResourceError):
(WebCore::FrameLoader::opened):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
(WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
(WebCore::FrameLoader::cachePageToHistoryItem):
(WebCore::FrameLoader::createHistoryItem):
(WebCore::FrameLoader::purgePageCache):
(WebCore::FrameLoader::invalidateCurrentItemCachedPage):
(WebCore::FrameLoader::loadItem):
(WebCore::FrameLoader::updateHistoryForStandardLoad):
(WebCore::FrameLoader::updateHistoryForClientRedirect):
(WebCore::FrameLoader::updateHistoryForBackForwardNavigation):
(WebCore::FrameLoader::updateHistoryForReload):
(WebCore::FrameLoader::updateHistoryForInternalLoad):
(WebCore::FrameLoader::updateHistoryForCommit):
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* page/mac/WebCoreFrameBridge.h: Got rid of unused WebCorePageCacheStateKey
* page/mac/WebCoreFrameBridge.mm: Ditto
* platform/graphics/svg/SVGImage.cpp:
* platform/graphics/svg/SVGImageEmptyClients.h: Update to reflect the new names
(WebCore::SVGEmptyFrameLoaderClient::loadProvisionalItemFromCachedPage):
(WebCore::SVGEmptyFrameLoaderClient::invalidateCurrentItemCachedPage):
(WebCore::SVGEmptyFrameLoaderClient::loadedFromCachedPage):
(WebCore::SVGEmptyFrameLoaderClient::clearLoadingFromCachedPage):
(WebCore::SVGEmptyFrameLoaderClient::isLoadingFromCachedPage):
(WebCore::SVGEmptyFrameLoaderClient::setDocumentViewFromCachedPage):
(WebCore::SVGEmptyFrameLoaderClient::saveDocumentViewToCachedPage):
2007-04-10 Antti Koivisto <antti@apple.com>
Reviewed by Hyatt.
Fix <rdar://5057686>
Flex box layout example hangs in WebCore::RenderFlexibleBox::allowedChildFlex
Forcibly distribute remaining pixels if the algorithm is not advancing.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutHorizontalBox):
(WebCore::RenderFlexibleBox::layoutVerticalBox):
2007-04-11 Mark Rowe <mrowe@apple.com>
Build fix.
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject accessibilityDescription]):
2007-04-10 Patti Hoa <patti@apple.com>
Reviewed by Justin Garcia.
<rdar://problem/5122276> Allow focused frame to fire off notification
Improve accessibility support for Mail WebView embedded Notes.
* bridge/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::postNotification):
The focused document with the selection change should fire the selection changed notification, not the top level document
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject accessibilityDescription]):
Allow the name attribute of the html body to be used as the accessibility description
2007-04-09 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
Support for fixing fast/forms/textarea-paste-newline.html.
Changed clients to use new preference specifying whether a Page should
allow pasting through the DOM API, instead of a global flag.
Removed old behavior of always allowing DOM paste in debug builds. In
light of the new preference-based API, that behavior makes no sense anymore.
Instead, developers who want to test paste inside Safari can set the
preference for themselves.
* WebCore.exp:
* editing/CommandByName.cpp: Removed crazy hack to keep an identically
named but invalid copy of the global "pate allowed" flag in this file.
(WebCore::Frame::enabledPaste):
* editing/JSEditor.cpp: Removed "always allow" behavior for debug builds.
(WebCore::JSEditor::queryCommandSupported):
* editing/JSEditor.h:
* page/Settings.cpp:
(WebCore::Settings::setDOMPasteAllowed):
* page/Settings.h:
(WebCore::Settings::isDOMPasteAllowed):
* rendering/RenderTreeAsText.cpp:
(WebCore::externalRepresentation): Removed crazy hack to allow DOM paste
after this function has been called.
2007-04-10 John Sullivan <sullivan@apple.com>
Reviewed by Tim Hatcher
- fixed <rdar://problem/4859132> Grammar must always be checked in entire-sentence chunks,
and shouldn't show markers for current sentence
* editing/Editor.h:
add markBadGrammar, now distinct from markMisspellings
* editing/mac/EditorMac.mm:
(WebCore::Editor::markMisspellingsAfterTypingToPosition):
call markMisspellings on one word, and markBadGrammar on entire sentence
(WebCore::markMisspellingsOrBadGrammar):
new static function, extracted from markMisspellings
(WebCore::Editor::markMisspellings):
now calls extracted function
(WebCore::Editor::markBadGrammar):
new method, calls extracted function
* page/Frame.cpp:
(WebCore::Frame::respondToChangedSelection):
update grammar markers for entire new and old sentences
2007-04-09 Anders Carlsson <andersca@apple.com>
Reviewed by John.
* WebCore.exp:
Add __ZNK7WebCore11FrameLoader10isCompleteEv.
2007-04-09 Brady Eidson <beidson@apple.com>
Reviewed by Darin
Fixes <rdar://4921797> and http://bugs.webkit.org/show_bug.cgi?id=12005
The original regression was to claim that more loads were the result of a "user gesture" than really
were. A lot of the ways a frame load could be kicked off didn't properly set up this flag, and it
wasn't properly propagated and respected where it should've been.
This patch cleans much of that up. One loose end is the "treatAsUserGesture" flag which is a stop
gap measure to keep "slow redirects" working to create a new history item. In the future, we need
to cleanup the meaning and use of "userGesture" and "lockHistory." This includes integrating them
in to FrameLoadRequest and being very clear of what their meaning actually is at different stages of
the Frame load process.
* dom/Document.cpp:
(WebCore::Document::processHttpEquiv): Pass only the delay for the redirect
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::defaultEventHandler): Pass "lockHistory" false, "userGesture" true
* ksvg2/svg/SVGAElement.cpp:
(WebCore::SVGAElement::defaultEventHandler): Pass "lockHistory" false, "userGesture" true
* loader/FrameLoader.cpp:
(WebCore::ScheduledRedirection::ScheduledRedirection): Figure "lockHistory" and "userGesture" from the
delay here, instead of at 3 other different sites that call this method
(WebCore::FrameLoader::changeLocation): Set userGesture correctly
(WebCore::FrameLoader::urlSelected): Propagate userGesture down
(WebCore::FrameLoader::requestFrame):
(WebCore::FrameLoader::receivedFirstData):
(WebCore::FrameLoader::scheduleRedirection): Pass only the delay here
(WebCore::FrameLoader::redirectionTimerFired): Set userGesture correctly
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::updateHistoryForInternalLoad): Insteading of asserting we aren't a redirect,
handle the case where we *are* a redirect by updating the previous history item
* loader/FrameLoader.h:
2007-04-09 Anders Carlsson <andersca@apple.com>
Reviewed by Darin.
<rdar://problem/5120801>
http://bugs.webkit.org/show_bug.cgi?id=13247
Closing a page during slow cloning causes crash in setJSStatusBarText (13247)
* bindings/js/kjs_window.cpp:
(KJS::Window::put):
Return early if m_frame is null. A closed window only has one property, "closed"
so no properties should be settable in that case.
2007-04-09 Andrew Wellington <proton@wiretapped.net>
Reviewed by Justin Garcia.
Fix for http://bugs.webkit.org/show_bug.cgi?id=12959
"REGRESSION: Edit -> Copy not enabled on standalone images"
* dom/Document.h: Add support for determining if a document is an image
(WebCore::Document::isImageDocument):
* editing/Editor.cpp:
(WebCore::Editor::canCopy): Image documents are copyable
(WebCore::Editor::copy): If copying an image document, call appropriate pasteboard methods
* loader/ImageDocument.h:
(WebCore::ImageDocument::isImageDocument): Override to return true for image documents
* platform/Pasteboard.h: Add new writeImage function to pasteboard
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::writeImage): Add writeImage implementation that takes Node and URL
* platform/qt/PasteboardQt.cpp:
(WebCore::Pasteboard::writeImage): Stub for Qt implementation of pasteboard
2007-04-08 Oliver Hunt <oliver@apple.com>
rs=Adam.
Add ASSERT(selectedRange) to previous change
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::writeSelection):
2007-04-08 Oliver Hunt <oliver@apple.com>
rs=Adam.
Fix minor error when writing selection to pasteboard.
This shouldn't have an effect as selectedRange should be the
selected range from source frame, however this is safer.
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::writeSelection):
2007-04-08 David Hyatt <hyatt@apple.com>
Fix mouseover/out failing layout tests.
Reviewed by aroben
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::updateMouseEventTargetNode):
(WebCore::EventHandler::dispatchMouseEvent):
* page/EventHandler.h:
2007-04-08 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
Fix for <rdar://problem/5113621> REGRESSION: Dragging PDF as image does not give any feedback
If we fail when attempting to create a drag image for a dragged
image, we fall back to the appropriate icon.
* page/DragController.cpp:
(WebCore::DragController::doImageDrag):
2007-04-08 Adam Roben <aroben@apple.com>
Reviewed by Oliver.
Bestowed the gift of -webkit-dashboard-region upon all platforms, since
there's nothing Mac-specific about it other than the name. This also
allowed me to get rid of FrameViewMac.mm.
Removed a lot of #if PLATFORM(MAC):
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::cssText):
* css/CSSPrimitiveValue.h:
(WebCore::CSSPrimitiveValue::getDashboardRegionValue):
(WebCore::CSSPrimitiveValue::):
* css/cssparser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseDashboardRegions):
* css/cssparser.h:
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
* dom/Document.cpp:
(WebCore::Document::Document):
* dom/Document.h:
* page/Frame.cpp:
(WebCore::Frame::paint):
* page/Frame.h:
* page/FrameView.cpp:
(WebCore::FrameView::layout):
(WebCore::FrameView::updateDashboardRegions): Moved from FrameViewMac.mm.
* page/FrameView.h:
* page/qt/FrameQt.cpp:
(WebCore::Frame::dashboardRegionsChanged): Stubbed out.
* platform/gdk/FrameGdk.cpp:
(WebCore::Frame::dashboardRegionsChanged): Ditto.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollToOffset):
(WebCore::RenderLayer::setHasHorizontalScrollbar):
(WebCore::RenderLayer::setHasVerticalScrollbar):
(WebCore::RenderLayer::updateScrollInfoAfterLayout):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::setStyle):
* WebCore.xcodeproj/project.pbxproj: Removed FrameViewMac.mm.
* bridge/mac/FrameViewMac.mm: Removed.
2007-04-08 Mark Rowe <mrowe@apple.com>
Qt build fix.
* platform/qt/TemporaryLinkStubs.cpp:
2007-04-06 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
Fixed one more case of <rdar://problem/5112273> REGRESSION(TOT):
Reproducible crash loading an old version of amazon.com as a web archive
* bindings/js/JSXMLHttpRequest.cpp:
(KJS::JSXMLHttpRequestPrototypeFunction::callAsFunction):
2007-04-06 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
Fix MouseEvent so it's possible to distinguish between
a MouseMouseEvent with NoButton down, and a move with
LeftButton down. It would be nice if the DOM allowed
for NoButton to exist, but it doesn't so this is necessary.
* dom/EventTargetNode.cpp:
(WebCore::EventTargetNode::dispatchMouseEvent):
* dom/MouseEvent.cpp:
(WebCore::MouseEvent::MouseEvent):
(WebCore::MouseEvent::initMouseEvent):
* dom/MouseEvent.h:
(WebCore::MouseEvent::noButton):
2007-04-06 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed - gdk build fix.
* platform/gdk/MouseEventGdk.cpp:
2007-04-06 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by darin.
Coverity fix. Coverity says:
"Event var_deref_op: Variable "info_ptr" tracked as NULL was dereferenced."
* platform/image-decoders/png/pngrutil.c:
(png_handle_gAMA):
2007-04-06 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by darin.
Coverity fix. Coverity says:
"Event var_deref_model: Variable "(this)->clientptr" tracked as NULL was passed to a function that dereferences it."
* platform/image-decoders/gif/GIFImageReader.cpp:
(GIFImageReader::read):
2007-04-06 David Hyatt <hyatt@apple.com>
Fix more of the layout test failures caused by fixing the slider layout test failure (sigh). clear()
needs to null out the capturingMouseEventsNode in the case where a mousedown or move while captured
causes a navigation to another page.
* page/EventHandler.cpp:
(WebCore::EventHandler::clear):
(WebCore::EventHandler::handleMouseReleaseEvent):
2007-04-06 David Hyatt <hyatt@apple.com>
Fix failing slider layout test. Don't clear the subframe capture unless we really were capturing on a
subframe.
Reviewed by adele, darin
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseReleaseEvent):
2007-04-06 Beth Dakin <bdakin@apple.com>
Reviewed by Geoff and Darin.
Fix for <rdar://problem/4875433> WebView underlines are too thick
when scaled small
When we have a small scale factor, we should follow the line-
drawing code as if we were printing. Meaning, specifically, that we
should not round to device pixels and we should antialias.
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawLineForText):
2007-04-06 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
Fixed <rdar://problem/5112273> REGRESSION(TOT): Reproducible crash loading
an old version of amazon.com as a web archive
The problem was JavaScript executing inside a frame with a NULL document.
It's probably a bug that the document was NULL, but we don't want a minor
bug to be a crasher, and we don't want the DOM to depend on the implementation
details of the JS bindings, so I added NULL checks.
* bindings/js/kjs_window.cpp: Call FrameLoader::completeURL instead of
Document::completeURL, since FrameLoader::completeURL is safe against a
NULL document.
(KJS::Window::put):
(KJS::WindowFunc::callAsFunction):
(KJS::Location::put):
(KJS::LocationFunc::callAsFunction):
2007-04-06 David Hyatt <hyatt@apple.com>
Fix for bug 13274. Rework mouse events so that subframe capturing works again. Make sure
everything just comes down through the top FrameView even when capturing is in effect. Update
scrollbar handling logic so that scrollbars receive events correctly while capturing is in
effect. Eliminate the notion of widget capture. Fix mouse moves so that they only fire
on the innermost hit frame.
Reviewed by olliej
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseDraggedEvent):
(WebCore::subframeForTargetNode):
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
* page/EventHandler.h:
* platform/PopupMenu.h:
(WebCore::PopupMenu::scrollbarCapturingMouse):
(WebCore::PopupMenu::setScrollbarCapturingMouse):
* platform/ScrollBar.h:
(WebCore::Scrollbar::handleMouseReleaseEvent):
* platform/Widget.h:
(WebCore::Widget::geometryChanged):
2007-04-06 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/5115601>
REGRESSION: Crash deleting a selection that starts in an editable table cell
The selection starts at the start of an editable
root that's embedded in a non-editable ToDo (table).
Removing the selection removes all editable
VisiblePositions from the root. Then, the creation
of mergeDestination fails, and using it causes a crash.
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::mergeParagraphs):
Nil-check mergeDestination to avoid crashing and
also insert a break in that case at m_upstreamStart,
so that we can create a valid mergeDestination and
perform the merge.
2007-04-06 Mitz Pettel <mitz@webkit.org>
Reviewed by Oliver.
Eliminate PlatformMouseEvent::currentEvent.
No test possible (no change to functionality).
* page/EventHandler.cpp:
(WebCore::EventHandler::handleDrag):
* platform/PlatformMouseEvent.h:
* platform/gdk/TemporaryLinkStubs.cpp:
* platform/mac/PlatformMouseEventMac.mm:
(WebCore::PlatformMouseEvent::PlatformMouseEvent):
* platform/qt/PlatformMouseEventQt.cpp:
* platform/win/TemporaryLinkStubs.cpp:
2007-04-05 Oliver Hunt <oliver@apple.com>
Reviewed by Maciej.
Fix for rdar://problem/4849948 -- JSCanvasRenderingContext2D::drawImage
crashes when given invalid arguments.
JSCanvasRenderingContext2D frequently casts from JSValue* to JSObject*
and then checks isObject *after* the cast. JSObject::isObject is unsafe
if applied to a JSImmediate value (null, undefined, etc). This patch
corrects the logic in a number of places by performing the isObject check
before casting to JSObject.
* bindings/js/JSCanvasRenderingContext2DCustom.cpp:
(WebCore::JSCanvasRenderingContext2D::drawImage):
(WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
(WebCore::JSCanvasRenderingContext2D::createPattern):
2007-04-05 Adele Peterson <adele@apple.com>
Reviewed by Oliver.
Fix for <rdar://problem/4965597> REGRESSION: mouseup doesn't fire for slider (causes it to always default to max)
Test: fast/forms/slider-mouse-events.html
* page/EventHandler.cpp: (WebCore::EventHandler::dispatchMouseEvent):
Since the actual target node of the event can't be a shadow node, set the target node to the capturing node before adjusting it.
2007-04-05 Kevin McCullough <kmccullough@apple.com>
Reviewed by Darin.
- Added reportLocalLoadFailed to FrameLoader to send an error to the console when
calls to canLoad fail.
* loader/Cache.cpp:
(WebCore::Cache::requestResource):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadSubframe):
(WebCore::FrameLoader::loadPlugin):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::reportLocalLoadFailed):
* loader/FrameLoader.h:
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::create):
2007-04-05 Adele Peterson <adele@apple.com>
Reviewed by Maciej.
Add text-align: -webkit-auto for form controls. Buttons already override this property to center their text.
* css/html4.css:
2007-04-05 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by rwlbuis.
Coverity fix. Coverity says:
"Event var_deref_model: Variable "page" tracked as NULL was passed to a function that dereferences it."
* platform/Font.cpp:
(WebCore::Font::glyphDataForCharacter):
2007-04-05 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by darin.
Coverity fix. Coverity says:
"Event var_deref_model: Variable "unicode" tracked as NULL was passed to a
function that dereferences it."
* platform/DeprecatedString.cpp:
(WebCore::DeprecatedString::DeprecatedString):
2007-04-05 Adele Peterson <adele@apple.com>
Reviewed by Hyatt.
Fix for <rdar://problem/5113593> REGRESSION: Search fields in RSS pages don't show ibeam cursor
* css/html4.css: Set the cursor values explicitly for input, textarea (to auto), & select (to default).
2007-04-05 David Hyatt <hyatt@apple.com>
Fix for <rdar://problem/5078866> tables should only reset text-align
in quirks mode.
Reviewed by beth
* css/html4.css:
* css/quirks.css:
2007-04-05 Adele Peterson <adele@apple.com>
Fixing typo that's crashing.
* html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::defaultEventHandler):
Use evt instead of null variable k.
2007-04-05 Adele Peterson <adele@apple.com>
Reviewed by Hyatt.
Fix for <rdar://problem/5021500> Cursor should stay as pointer when slider is being dragged
Don't set the selection ibeam cursor when there's a node that's capturing mouse events.
* page/EventHandler.cpp:
(WebCore::selectCursor):
(WebCore::EventHandler::handleMouseMoveEvent):
2007-04-05 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
More clean-up while fixing <rdar://problem/5112273> REGRESSION(TOT):
Reproducible crash loading an old version of amazon.com as a web archive
Layout tests pass.
Removed more superfluous document NULL checks. (Node::document() never
returns NULL, and it asserts as much.)
Merged some duplicate editing code into a static inline function.
* page/mac/WebCoreFrameBridge.mm:
(updateRenderingForBindings): Removed superfluous static_cast.
2007-04-05 Adele Peterson <adele@apple.com>
Reviewed by Darin.
A little cleanup from my last checkin. Always check if an Event is really a MouseEvent or a KeyboardEvent
before casting it.
* html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::defaultEventHandler):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::menuListDefaultEventHandler):
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
* html/HTMLTextFieldInnerElement.cpp:
(WebCore::HTMLSearchFieldResultsButtonElement::defaultEventHandler):
(WebCore::HTMLSearchFieldCancelButtonElement::defaultEventHandler):
* ksvg2/svg/SVGAElement.cpp: (WebCore::SVGAElement::defaultEventHandler):
* page/ContextMenuController.cpp: (WebCore::ContextMenuController::handleContextMenuEvent):
* rendering/RenderFrameSet.cpp: (WebCore::RenderFrameSet::userResize):
* rendering/RenderSlider.cpp: (WebCore::HTMLSliderThumbElement::defaultEventHandler):
2007-04-05 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
Some clean-up while fixing <rdar://problem/5112273> REGRESSION(TOT):
Reproducible crash loading an old version of amazon.com as a web archive
Removed superfluous document NULL checks. (Node::document() never returns
NULL, and it asserts as much.)
Removed duplicate implementation of displayString.
Layout tests pass.
* bindings/objc/DOMInternal.h:
* bindings/objc/DOMInternal.mm:
* html/HTMLGenericFormElement.cpp:
(WebCore::HTMLGenericFormElement::supportsFocus):
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::createNPObject):
* platform/ContextMenu.cpp:
(WebCore::ContextMenu::checkOrEnableIfNeeded):
* rendering/HitTestResult.cpp:
(WebCore::displayString):
* rendering/HitTestResult.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateHoverActiveState):
=== Safari-5522.6 ===
2007-04-05 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
Fix rdar://problem/5030934 -- landscape PDFs embedded as an image are cut off
also fixes scaling of pdf images
PDFDocumentImage was not accounting for page rotation in a number of places
* platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::size):
we need to account for rotation of the pdf image effecting our bounds
(WebCore::PDFDocumentImage::draw):
When compensating for flipped coords we need to use the correct rect for the
coordinate space. We can't pass size() to CGContextDrawPDFDocument as it
returns the rotated bounds now -- this is also save the old
FloatSize -> IntSize -> FloatSize conversions.
2007-04-04 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=13278
REGRESSION: cannot change SELECT option
Test: fast/forms/option-change-single-selected.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::setSelectedIndex): If multiple selection is not allowed,
be sure to deselect the previous option.
2007-04-04 Adele Peterson <adele@apple.com>
Reviewed by Oliver.
Fix for <rdar://5105009> Prepare for fix to send mousedown and mouseup (but not click) events when right-clicking
* page/EventHandler.cpp: Don't ever send click events for right-clicks.
(WebCore::EventHandler::handleMouseDoubleClickEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
Check that the mousedown and mouseup are not with the right button before performing default behavior.
* html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::defaultEventHandler):
* html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::menuListDefaultEventHandler):
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
* html/HTMLTextFieldInnerElement.cpp:
(WebCore::HTMLSearchFieldResultsButtonElement::defaultEventHandler):
(WebCore::HTMLSearchFieldCancelButtonElement::defaultEventHandler):
* ksvg2/svg/SVGAElement.cpp:(WebCore::SVGAElement::defaultEventHandler):
* rendering/RenderFrameSet.cpp: (WebCore::RenderFrameSet::userResize):
* rendering/RenderSlider.cpp: (WebCore::HTMLSliderThumbElement::defaultEventHandler):
2007-04-03 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5026848> Can cut/delete ToDo subunits
We were removing non-editable content during a delete.
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::initializePositionData):
Set m_startRoot and m_endRoot.
(WebCore::DeleteSelectionCommand::removeNode): If a node
is not inside both the start and end roots, remove it only
if it is in editable content.
* editing/DeleteSelectionCommand.h: Added m_startRoot and
m_endRoot, the editable roots that contain the start and end
of the selection, respectively. We consult these every
time we remove a node, and don't want to recompute them
on every call to removeNode().
2007-04-03 David Hyatt <hyatt@apple.com>
Fix for <rdar://problem/5108896>, make sure the assert for setEncodedSize
deals with the error case.
Reviewed by andersca
* loader/CachedResource.cpp:
(WebCore::CachedResource::setEncodedSize):
2007-04-03 Anders Carlsson <andersca@apple.com>
Reviewed by Dave Hyatt.
* loader/ImageDocument.cpp:
Don't call error() in stopParsing.
2007-04-03 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5107422>
TOT REGRESSION: Delete key fails to delete text, and cursor disappears in Mail.app
<rdar://problem/5107413>
TOT REGRESSION: Crash deleting text in email (infinite recursion in shouldInsertNode)
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs):
Back out the call to shouldInsert until we
add WebViewInsertActionMoved, because Mail returns
NO from shouldInsert for WebViewInsertActionPasted
to override our Paste operation.
2007-04-03 Anders Carlsson <andersca@apple.com>
Reviewed by Mitz.
Make window.innerWidth/innerHeight include the size of any present scrollbar to match Firefox.
Make document.body.clientWidth/clientHeight return the width/height of the visible content when in
quirks mode to match WinIE.
* bindings/js/kjs_window.cpp:
(KJS::Window::getValueProperty):
Return the width and height of the scroll view, not the visible width and height.
* dom/Element.cpp:
(WebCore::Element::clientWidth):
(WebCore::Element::clientHeight):
Return the visible size if the element is the body element and we're in quirks mode.
2007-04-03 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Updated fix for <rdar://problem/5107095> REGRESSION: disabled text color calculations are slowing down launchtime measurements
* platform/graphics/Color.cpp: Moved optimization for lightening black and darkening white into the Color class.
(WebCore::Color::light):
(WebCore::Color::dark):
* rendering/RenderTextControl.cpp: (WebCore::disabledTextColor): Skip the difference calculation for black text, which will always be lightened.
2007-04-03 Anders Carlsson <andersca@apple.com>
Reviewed by Tim.
<rdar://problem/4649516>
Turn off slow script dialog or crank up time that makes it come up
* bindings/js/kjs_binding.cpp:
(KJS::ScriptInterpreter::ScriptInterpreter):
Increase the timeout to 10 seconds to match Firefox.
2007-04-03 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13251
editing/style/fontsize-1.html fails intermittently when run multiple times on Intel, generates incorrect DOM
Covered by existing editing tests.
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::getFloatValue): Added ASSERTs that the requested conversion
is from a scalar type to a scalar type. The intermittent failures in the test were
the result of trying to convert an identifier type to a scalar type.
* editing/ApplyStyleCommand.cpp:
(WebCore::StyleChange::checkForLegacyHTMLStyleChange): Added a check that the
font-size property value is an absolute length. If it is not (such as in the case
of relative units or keywords like "x-large"), then no corresponding 'size' attribute
will be generated for legacy HTML.
2007-04-03 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13218
<rdar://problem/5095977>
Reproducible crash after call to window.close()
* manual-tests/stale-currentEvent.html: Added.
* page/EventHandler.cpp:
(WebCore::EventHandler::hoverTimerFired): Instead of faking a mouse event,
just hit-test the last mouse event coordinates and update for hover state
changes. This eliminates the use of currentEvent, which can be a non-mouse
event or even a stale event.
2007-04-02 Adele Peterson <adele@apple.com>
Reviewed by Maciej.
Fix for <rdar://problem/5107095> REGRESSION: disabled text color calculations are slowing down launchtime measurements
Hardcode disabled text colors for the most common cases- black and white.
* rendering/RenderTextControl.cpp: (WebCore::disabledTextColor):
2007-04-02 David Hyatt <hyatt@apple.com>
Fix for <rdar://problem/5105784>, assertion failure in cache. Encoded sizes were being set to
garbage by accident because of a mismatch between derived class and base class constructors. This
patch cleans all of this up and gets rid of expiration date as a concept separate from the response.
Reviewed by anders
* dom/Document.cpp:
(WebCore::Document::processHttpEquiv):
* html/HTMLImageLoader.cpp:
(WebCore::HTMLImageLoader::updateFromElement):
* loader/Cache.cpp:
(WebCore::createResource):
(WebCore::Cache::requestResource):
* loader/Cache.h:
* loader/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
* loader/CachedCSSStyleSheet.h:
* loader/CachedImage.cpp:
(WebCore::CachedImage::CachedImage):
* loader/CachedImage.h:
* loader/CachedResource.cpp:
(WebCore::CachedResource::CachedResource):
(WebCore::CachedResource::finish):
* loader/CachedResource.h:
* loader/CachedScript.cpp:
(WebCore::CachedScript::CachedScript):
* loader/CachedScript.h:
* loader/CachedXBLDocument.cpp:
(WebCore::CachedXBLDocument::CachedXBLDocument):
* loader/CachedXBLDocument.h:
* loader/CachedXSLStyleSheet.cpp:
(WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
* loader/CachedXSLStyleSheet.h:
* loader/DocLoader.cpp:
(WebCore::DocLoader::DocLoader):
(WebCore::DocLoader::requestResource):
* loader/DocLoader.h:
2007-04-03 Antti Koivisto <antti@apple.com>
Reviewed by Hyatt.
Render tree memory savings, part 3
These changes shrink all RenderBlocks by additional 28 bytes. Together with parts 1 and 2
RenderBlock goes from 172 bytes to 128 bytes, a saving of 26%.
- Pack bitfields together in RenderFlow
- Move top/bottom min/max margin values to a struct that is only allocated in case these
variables have non default values. Usually this is <5% of all blocks.
- Move rarely used column variables to hash
* rendering/RenderBlock.cpp:
(WebCore::ColumnInfo::ColumnInfo):
(WebCore::RenderBlock::RenderBlock):
(WebCore::RenderBlock::~RenderBlock):
(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::collapseMargins):
(WebCore::RenderBlock::clearFloatsIfNeeded):
(WebCore::RenderBlock::setCollapsedBottomMargin):
(WebCore::RenderBlock::layoutBlockChildren):
(WebCore::RenderBlock::paintColumns):
(WebCore::RenderBlock::paintObject):
(WebCore::RenderBlock::fillSelectionGaps):
(WebCore::RenderBlock::lowestPosition):
(WebCore::RenderBlock::rightmostPosition):
(WebCore::RenderBlock::leftmostPosition):
(WebCore::RenderBlock::nodeAtPoint):
(WebCore::RenderBlock::hitTestColumns):
(WebCore::RenderBlock::positionForCoordinates):
(WebCore::RenderBlock::availableWidth):
(WebCore::RenderBlock::calcColumnWidth):
(WebCore::RenderBlock::setDesiredColumnCountAndWidth):
(WebCore::RenderBlock::desiredColumnWidth):
(WebCore::RenderBlock::desiredColumnCount):
(WebCore::RenderBlock::columnRects):
(WebCore::RenderBlock::layoutColumns):
(WebCore::RenderBlock::adjustPointToColumnContents):
(WebCore::RenderBlock::adjustRectForColumns):
(WebCore::RenderBlock::setMaxTopMargins):
(WebCore::RenderBlock::setMaxBottomMargins):
* rendering/RenderBlock.h:
(WebCore::RenderBlock::maxTopMargin):
(WebCore::RenderBlock::maxBottomMargin):
(WebCore::RenderBlock::maxTopPosMargin):
(WebCore::RenderBlock::maxTopNegMargin):
(WebCore::RenderBlock::maxBottomPosMargin):
(WebCore::RenderBlock::maxBottomNegMargin):
(WebCore::RenderBlock::initMaxMarginValues):
(WebCore::RenderBlock::MaxMargin::MaxMargin):
(WebCore::RenderBlock::MaxMargin::topPosDefault):
(WebCore::RenderBlock::MaxMargin::topNegDefault):
(WebCore::RenderBlock::MaxMargin::bottomPosDefault):
(WebCore::RenderBlock::MaxMargin::bottomNegDefault):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
* rendering/RenderFlow.h:
(WebCore::RenderFlow::RenderFlow):
(WebCore::RenderFlow::hasColumns):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::RenderInline):
* rendering/RenderInline.h:
2007-04-03 Antti Koivisto <antti@apple.com>
Reviewed by Hyatt.
Fix asserts, these may also be called for rel positioned elements
* rendering/RenderBox.cpp:
(WebCore::RenderBox::setStaticX):
(WebCore::RenderBox::setStaticY):
2007-04-02 David Hyatt <hyatt@apple.com>
Throw in an assert to try to track down a problem where an image is being set to a smaller encoded
size.
* loader/CachedResource.cpp:
(WebCore::CachedResource::setEncodedSize):
2007-04-02 Ada Chan <adachan@apple.com>
Reviewed by Adele.
<rdar://5105331> Missing null check in Editor::execCommand
Added null check.
* editing/Editor.cpp:
(WebCore::Editor::execCommand):
2007-04-02 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5058163>
Hitting return inserts a new line between two To Dos, but caret is position after second ToDo
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply):
Removed refPos, it was unused.
Don't assume that upstream() moves to a different
node. This assumption caused the line break to
be inserted *after* the caret and a bad position
to be set (added a testcase).
Use isStartOfParagraph instead of checking
for the existence of a br because the line might
be broken by a newline character in text that
preserves newlines. Paragraphs that are created
in other ways, like with blocks, are handled
above (added a testcase).
2007-04-02 David Harrison <harrison@apple.com>
Reviewed by Darin.
<rdar://problem/4906488> text attributes are not working for frame based web page
Attribute handling now treats each WebArea as its own world, rather than sometimes
referring back up to the top WebArea. e.g. getting/setting the selection now
operates on the WebArea containing the WebCoreAXObject that is being messaged (self).
The methods that sit above this and are able to go into arbitrary WebAreas
are accessibilityFocusedUIElement and doAXTextMarkerForPosition, allowing VoiceOver
to navigate between frames.
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject topRenderer]):
(-[WebCoreAXObject frameView]):
(-[WebCoreAXObject topFrameView]):
Removed topDocument, renamed topView to topFrameView, added frameView.
(-[WebCoreAXObject accessibilityAttributeValue:]):
AXSelectedTextMarkerRange, AXStartTextMarker, and AXEndTextMarker now use
self's WebArea, rather than the top WebArea.
(-[WebCoreAXObject doAXTextMarkerRangeForLine:]):
Use self's WebArea, rather than the top WebArea.
(-[WebCoreAXObject doAXTextMarkerForPosition:]):
Use renamed methods for accessing top WebArea.
(-[WebCoreAXObject doAXBoundsForTextMarkerRange:]):
Use renamed methods for accessing self's WebArea.
(AXAttributeStringSetColor):
(AXAttributeStringSetNumber):
(AXAttributeStringSetFont):
(AXAttributeStringSetStyle):
(AXAttributeStringSetElement):
(-[WebCoreAXObject rendererForView:]):
Clean up uses of nil and NULL.
(-[WebCoreAXObject accessibilityFocusedUIElement]):
Find the focused node on the whole page. If there is no focused node,
return the WebArea for the focused document.
(-[WebCoreAXObject doSetAXSelectedTextMarkerRange:]):
Use self's WebArea, rather than the top WebArea.
2007-04-02 Antti Koivisto <antti@apple.com>
Fix build. This one was not supposed to be checked in.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
2007-03-30 Antti Koivisto <antti@apple.com>
Reviewed by Hyatt.
Render tree memory savings, part 2
- Move staticX and staticY variables to RenderLayer since they are only
applicable to positioned objects
- Move very rarely used overrideSize variable to hash
These changes shrink all box types by 12 bytes
* rendering/RenderBox.cpp:
(WebCore::RenderBox::RenderBox):
(WebCore::RenderBox::destroy):
(WebCore::RenderBox::overrideSize):
(WebCore::RenderBox::setOverrideSize):
(WebCore::RenderBox::overrideWidth):
(WebCore::RenderBox::overrideHeight):
(WebCore::RenderBox::position):
(WebCore::RenderBox::calcWidth):
(WebCore::RenderBox::calcHeight):
(WebCore::RenderBox::staticX):
(WebCore::RenderBox::staticY):
(WebCore::RenderBox::setStaticX):
(WebCore::RenderBox::setStaticY):
(WebCore::RenderBox::calcAbsoluteHorizontal):
(WebCore::RenderBox::calcAbsoluteVertical):
(WebCore::RenderBox::calcAbsoluteHorizontalReplaced):
(WebCore::RenderBox::calcAbsoluteVerticalReplaced):
* rendering/RenderBox.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
* rendering/RenderLayer.h:
(WebCore::RenderLayer::staticX):
(WebCore::RenderLayer::staticY):
(WebCore::RenderLayer::setStaticX):
(WebCore::RenderLayer::setStaticY):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::RenderObject):
* rendering/RenderObject.h:
(WebCore::):
(WebCore::RenderObject::hasOverrideSize):
(WebCore::RenderObject::setHasOverrideSize):
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::destroy):
2007-03-31 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed - gdk build fix.
* platform/gdk/TemporaryLinkStubs.cpp:
(Font::selectionRectForComplexText):
(Font::drawComplexText):
2007-03-31 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12778
REGRESSION: Nightly won't load Curl plugin for full page use
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument): Re-order cases to give more priority to plugins.
This also fixes Adobe SVG Viewer and any plugins that register XML MIME types.
Added a case for XHTML to avoid enumerating plugins.
2007-03-31 David Hyatt <hyatt@apple.com>
Fix for bug 13234, layout of selected justified text is broken. Rework TextRuns to avoid having
from/to members. Let those be passed in only by the functions that need them (drawing and selection rect).
Reviewed by mitz
fast/text/justified-selection-at-edge.html
* platform/Font.cpp:
(WebCore::WidthIterator::WidthIterator):
(WebCore::WidthIterator::advance):
(WebCore::Font::canUseGlyphCache):
(WebCore::Font::drawSimpleText):
(WebCore::Font::drawText):
(WebCore::Font::floatWidth):
(WebCore::Font::floatWidthForSimpleText):
(WebCore::Font::selectionRectForText):
(WebCore::Font::selectionRectForSimpleText):
(WebCore::Font::offsetForPositionForSimpleText):
* platform/Font.h:
(WebCore::TextRun::m_len):
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawText):
(WebCore::GraphicsContext::drawHighlightForText):
* platform/graphics/GraphicsContext.h:
* platform/mac/FontMac.mm:
(WebCore::addDirectionalOverride):
(WebCore::overrideLayoutOperation):
(WebCore::ATSULayoutParameters::initialize):
(WebCore::Font::selectionRectForComplexText):
(WebCore::Font::drawComplexText):
(WebCore::Font::floatWidthForComplexText):
(WebCore::Font::offsetForPositionForComplexText):
* platform/qt/FontQt.cpp:
(WebCore::Font::drawComplexText):
(WebCore::Font::floatWidthForComplexText):
* platform/qt/TemporaryLinkStubs.cpp:
(Font::selectionRectForComplexText):
* rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::paint):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::selectionRect):
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::paintSelection):
(WebCore::InlineTextBox::paintMarkedTextBackground):
(WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
(WebCore::InlineTextBox::paintTextMatchMarker):
(WebCore::InlineTextBox::offsetForPosition):
(WebCore::InlineTextBox::positionForOffset):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::paint):
(WebCore::RenderListMarker::calcMinMaxWidth):
(WebCore::RenderListMarker::getRelativeMarkerRect):
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::updateOptionsWidth):
* rendering/RenderText.cpp:
(WebCore::RenderText::widthFromCache):
(WebCore::RenderText::width):
2007-03-31 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13243
<rdar://problem/5103226>
REGRESSION (r20506): Repro crash/assert when using scroll wheel on a list box taller than its contents
* platform/ScrollBar.cpp:
(WebCore::Scrollbar::setValue): Cleaned up a little.
(WebCore::Scrollbar::scroll): Changed to apply the minimum and maximum constraints
in the right order, and cleaned up a little.
2007-03-31 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13242
REGRESSION: Repro crash when specifying the content property for an image
Test: fast/images/text-content-crash.html
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::parseMappedAttribute): Added a check that the
renderer is an image.
(WebCore::HTMLImageElement::attach): Ditto.
2007-03-31 Mark Rowe <mrowe@apple.com>
Reviewed by Darin.
A more correct fix for http://bugs.webkit.org/show_bug.cgi?id=13129
Bug 13129: Democracy Player dies in NSException from WebScriptObject on startup
The previous attempt at a fix in r20343 attempted to conditionally expose the 'count'
method. It did not work which resulted in 'count' always being hidden. This change
disables -[WebScriptObject count] completely until it can be determined whether it is
needed and how to support it without breaking third-party applications.
* bindings/objc/WebScriptObject.mm:
(-[WebScriptObject count]):
* bindings/objc/WebScriptObjectPrivate.h:
2007-03-31 Nicholas Shanks <webkit@nickshanks.com>
Reviewed by Adele.
http://bugs.webkit.org/show_bug.cgi?id=13184
HTMLImageElement longdesc should be complete resolved URL
Test: fast/dom/HTMLImageElement/image-longdesc-absolute-url.html
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::longDesc): Return absolute URL.
Behaviour now matches Firefox and Opera.
2007-03-31 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13209
REGRESSION (r18756-18765): Incomplete list marker repaint when resizing list item
Test: fast/repaint/list-marker-2.html
A list marker can increase the horizontal overflow after layoutInlineChildren(),
so made that function return only the vertical bounds of the repaint rect. As the
horizontal bounds, made layoutBlock() just use the overflow bounds after layout.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock):
* rendering/RenderBlock.h:
* rendering/bidi.cpp:
(WebCore::RenderBlock::layoutInlineChildren):
2007-03-31 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- http://bugs.webkit.org/show_bug.cgi?id=13178
Helvetica zero-width space has non-zero width
Test: fast/text/wide-zero-width-space.html
* platform/FontData.cpp:
(WebCore::FontData::FontData): Force the ZERO WIDTH SPACE glyph to have width
0, unless the SPACE character maps to the same glyph.
2007-03-31 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=8016
REPRO: Safari hangs loading 18 MB page (deeply nested DOM tree)
Test: fast/tokenizer/lessthan-terminates-tags-and-attrs.html
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::parseTag): Made "<" terminate tag and attribute
names. This matches Firefox.
2007-03-31 Alexey Proskuryakov <ap@webkit.org>
Debug build fix.
* xml/XPathValue.cpp:
(WebCore::XPath::): Define Value::adopt.
2007-03-30 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=13021
XPath can be very slow
This patch finally makes us faster than Firefox 2.0 on this test case.
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunConcat::evaluate): Use a Vector buffer for faster appending.
(WebCore::XPath::FunId::evaluate): Move the result NodeSet into Value instead of copying it.
(WebCore::XPath::FunLocalName::evaluate): Cosmetic changes.
(WebCore::XPath::FunNamespaceURI::evaluate): Ditto.
(WebCore::XPath::FunName::evaluate): Ditto.
(WebCore::XPath::FunNormalizeSpace::evaluate): Ditto.
* xml/XPathValue.cpp:
(WebCore::XPath::Value::toNodeSet):
(WebCore::XPath::Value::modifiableNodeSet):
(WebCore::XPath::Value::toBoolean):
(WebCore::XPath::Value::toNumber):
(WebCore::XPath::Value::toString):
* xml/XPathValue.h:
(WebCore::XPath::ValueData::ValueData):
(WebCore::XPath::Value::Value):
Made Value copying faster by putting large data members into a separate refcounted ValueData class.
Added provisions for moving a NodeSet in and out of Value without copying.
Made construction safer by moving bool version to a template constructor.
Removed an (almost) unused default constructor.
* xml/XPathPredicate.h: Store a Value for literal string and number expressions to avoid
constructing one each time.
* xml/XPathPath.cpp:
(WebCore::XPath::Filter::evaluate):
(WebCore::XPath::LocationPath::evaluate):
(WebCore::XPath::Path::evaluate):
* xml/XPathPath.h:
* xml/XPathPredicate.cpp:
(WebCore::XPath::NumericOp::evaluate):
(WebCore::XPath::Union::evaluate):
* xml/XPathResult.cpp:
(WebCore::XPathResult::snapshotItem):
* xml/XPathStep.cpp:
(WebCore::XPath::Step::evaluate):
(WebCore::XPath::Step::nodesInAxis):
* xml/XPathStep.h:
Got rid of unnecessary NodeSet copying in many cases.
2007-03-30 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/5076323> Only one To Do can be created by a selection in a message
When Mail's ToDoify operation called moveToEndOfDocument:
with a selection that started just before a ToDo, we'd
move them to the end of the document, not to the end
of the editable root, because we incorrectly checked
for the editability of positions before ToDos. Then Mail
would refuse to create a ToDo because the selection was
outside of the region where they allowed editing.
* editing/SelectionController.cpp:
(WebCore::SelectionController::modifyExtendingRightForward):
Check the position for editability, not the position's node,
since there are editable positions of the form [node, offset]
where node is contenteditable=false.
Re-use pos. Nothing that happens after it's created can invalidate
it or the position and affinity used to create it.
(WebCore::SelectionController::modifyMovingRightForward): Ditto.
(WebCore::SelectionController::modifyExtendingLeftBackward): Ditto.
(WebCore::SelectionController::modifyMovingLeftBackward): Ditto.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintCaret): Ditto.
2007-03-30 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Added DeleteWordBackward and DeleteWordForward to execCommand.
* editing/Editor.cpp:
(WebCore::execDeleteWordBackward):
(WebCore::execDeleteWordForward):
(WebCore::CommandEntry::):
2007-03-30 Simon Hausmann <hausmann@kde.org>
Reviewed by Zack
* WebCore.pro: Fix release Qt builds.
2007-03-30 Antti Koivisto <antti@apple.com>
Reviewed by bdash.
Spotted an int that should be float in previous patch.
* platform/Font.cpp:
(WebCore::WidthIterator::advance):
2007-03-30 Antti Koivisto <antti@apple.com>
Reviewed by Hyatt.
Render tree memory savings, part 1
- Eliminate caching of monospace char width from RenderText. This optimization is not needed
anymore since Font already caches space width (RenderText -4 bytes)
- Eliminate caching of tab width from RenderBlock. Similary this optimization has become
obsolete (RenderBlock -4 bytes)
* platform/Font.cpp:
(WebCore::WidthIterator::advance):
(WebCore::Font::spaceWidth):
* platform/Font.h:
(WebCore::Font::tabWidth):
* platform/TextStyle.h:
(WebCore::TextStyle::TextStyle):
(WebCore::TextStyle::allowTabs):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::selectionRect):
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::paintSelection):
(WebCore::InlineTextBox::paintMarkedTextBackground):
(WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
(WebCore::InlineTextBox::paintTextMatchMarker):
(WebCore::InlineTextBox::offsetForPosition):
(WebCore::InlineTextBox::positionForOffset):
* rendering/RenderBlock.cpp:
(WebCore:::RenderFlow):
(WebCore::RenderBlock::setStyle):
* rendering/RenderBlock.h:
* rendering/RenderObject.cpp:
* rendering/RenderObject.h:
* rendering/RenderText.cpp:
(WebCore::RenderText::RenderText):
(WebCore::RenderText::setStyle):
(WebCore::RenderText::widthFromCache):
(WebCore::RenderText::trimmedMinMaxWidth):
(WebCore::RenderText::calcMinMaxWidthInternal):
(WebCore::RenderText::setTextInternal):
(WebCore::RenderText::width):
* rendering/RenderText.h:
(WebCore::RenderText::allowTabs):
* rendering/bidi.cpp:
2007-03-30 David Hyatt <hyatt@apple.com>
Fix (take 2) for bug 4334, flickering when floating elements gain/lose transparency.
Reviewed by mitz
* rendering/RenderBlock.cpp:
* rendering/RenderBlock.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::setStyle):
2007-03-29 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13166
REGRESSION (2005-10-16 - 2005-10-19): Ampersands showing up in the last column of the Gmail contacts table
Test: fast/tokenizer/write-partial-entity.html
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::parseTag): Reordered to avoid resetting the buffer position
after script execution which can write to the buffer.
2007-03-29 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/5099303> Deleting after a ToDo puts the caret in the wrong position
We were failing to create the correct selection
for DeleteSelectionCommand because the selection extension
operations don't skip over non-editable content for editable
selections.
* editing/SelectionController.cpp:
(WebCore::SelectionController::modifyExtendingRightForward):
When extending an editable selection, don't extend into
non-editable content.
(WebCore::SelectionController::modifyExtendingLeftBackward):
Ditto.
2007-03-29 Patti Hoa <patti@apple.com>
Reviewed by harrison.
<rdar://problem/4918397> Exception raise inspecting note contents in the background
* WebCore.xcodeproj/project.pbxproj:
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject subrole]):
(-[WebCoreAXObject title]):
Check that attachment supports the attribute before requesting it.
2007-03-29 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/5032066> Delete should work between ToDos
Stop selecting the table when the user attempts to delete
the line break just after it, instead, extend the selection
into the last table cell.
Let deletion merge content into table cells (as long as
its not from another table cell).
Start calling shouldInsertNode:replacingDOMRange:givenAction:
when moving content with moveParagraphs, so that Mail can
modify content before it is moved into a ToDo during a delete.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs): Ask the
delegate before performing the move. This will let Mail
prevent styles from entering a ToDo.
Added a FIXME about adding a new WebViewInsertAction
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::initializePositionData):
Allow merging into table cells from content not in a table.
* editing/SelectionController.cpp:
(WebCore::SelectionController::modifyExtendingRightForward):
Don't select the table when extending by character/word from
just before it. This code was here to make it easier to select
tables in order to delete them, but the deletion UI makes it
largely unnecessary.
(WebCore::SelectionController::modifyExtendingLeftBackward):
Ditto.
* editing/TypingCommand.cpp:
(WebCore::isFirstPositionAfterTable): Added.
(WebCore::isLastPositionBeforeTable): Ditto.
(WebCore::TypingCommand::deleteKeyPressed): When pressing
the delete key with a caret at the beginning of a paragraph
just after a table, move the paragraph into the last table
cell.
Do not do this if it would mean moving a block table.
Removed some old irrelevant comments.
* editing/htmlediting.cpp: Removed unused functions.
* editing/htmlediting.h:
2007-03-29 Adam Treat <adam@staikos.net>
Reviewed and committed by George Staikos.
Remove redundant line.
* platform/qt/FontDataQt.cpp:
(WebCore::FontData::platformInit):
2007-03-29 Adam Treat <adam@staikos.net>
Reviewed by David Hyatt, committed by George Staikos.
Test: fast/text/justified-selection.html
Take into account the entire run length to get a proper selection.
* platform/Font.cpp:
(WebCore::WidthIterator::WidthIterator):
2007-03-29 David Hyatt <hyatt@apple.com>
Fix for <rdar://problem/4545060>, technorati and arstechnica fail because of getComputedStyle not
reporting display:none properly when it is set. This is bugzilla bug 13103.
Reviewed by mitz
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2007-03-28 Oliver Hunt <oliver@apple.com>
Reviewed by Hyatt.
Rename DocLoader::setPasteInProgress, etc to more generic
setAllowStaleResources, etc
* editing/Editor.cpp:
(WebCore::Editor::paste):
* loader/DocLoader.cpp:
(WebCore::DocLoader::DocLoader):
(WebCore::DocLoader::checkForReload):
* loader/DocLoader.h:
(WebCore::DocLoader::setAllowStaleResources):
* page/DragController.cpp:
(WebCore::DragController::concludeDrag):
2007-03-28 Oliver Hunt <oliver@apple.com>
Reviewed by Anders and Steve.
Add a flag to DocLoader to prevent it from reloading
when performing a paste or drop operation.
Remove m_cachePolicy from CachedResource as it is never used
Fixes rdar://problem/5044366 : REGRESSION: Repro ASSERT failures
dragging image into GMail message in _web_writeImage and
documentFragmentFromDragData
* editing/Editor.cpp:
(WebCore::Editor::paste):
prevent the docloader from reloading resources on paste
* html/HTMLImageLoader.cpp:
(WebCore::HTMLImageLoader::updateFromElement):
* loader/Cache.cpp:
(WebCore::createResource):
* loader/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
* loader/CachedCSSStyleSheet.h:
* loader/CachedImage.cpp:
(WebCore::CachedImage::CachedImage):
* loader/CachedImage.h:
* loader/CachedResource.cpp:
(WebCore::CachedResource::CachedResource):
* loader/CachedResource.h:
* loader/CachedScript.cpp:
(WebCore::CachedScript::CachedScript):
* loader/CachedScript.h:
* loader/CachedXBLDocument.cpp:
(WebCore::CachedXBLDocument::CachedXBLDocument):
* loader/CachedXBLDocument.h:
* loader/CachedXSLStyleSheet.cpp:
(WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
* loader/CachedXSLStyleSheet.h:
* loader/DocLoader.cpp:
(WebCore::DocLoader::DocLoader):
Tidy up constructor initialise new field
(WebCore::DocLoader::checkForReload):
Prevent reload when pasting
* loader/DocLoader.h:
(WebCore::DocLoader::setPasteInProgress):
new field and setter
* page/DragController.cpp:
(WebCore::DragController::concludeDrag):
prevent the docloader from reloading resources on drop
2007-03-27 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed - fix typo in gdk build.
* platform/gdk/ScrollViewGdk.cpp:
(WebCore::ScrollView::contentsToWindow):
2007-03-28 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin.
- fixed <rdar://problem/4820817> Autoscroll is broken in Mail.app (message jumps around when trying to select text)
Handle scrolling external scrollviews around the webview during
autoscroll or when scrolling into view.
This should also restore performance on BenchJS test 6 lost due to Tim's partial fix.
* page/FrameView.cpp:
(WebCore::FrameView::scrollRectIntoViewRecursively):
* page/FrameView.h:
* platform/ScrollView.h:
* platform/gdk/ScrollViewGdk.cpp:
(WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
(WebCore::ScrollView::scrollRectIntoViewRecursively):
* platform/mac/ScrollViewMac.mm:
(WebCore::ScrollView::visibleContentRect):
(WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
(WebCore::ScrollView::scrollRectIntoViewRecursively):
(WebCore::ScrollView::updateContents):
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
(WebCore::ScrollView::scrollRectIntoViewRecursively):
* platform/win/ScrollViewWin.cpp:
(WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
* platform/win/TemporaryLinkStubs.cpp:
(WebCore::ScrollView::scrollRectIntoViewRecursively):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible):
2007-03-28 Jungshik Shin <jungshik.shin@gmail.com>
Reviewed and landed by Darin
Get rid of some misuses of |islower| and |tolower| for non-ASCII characters.
http://bugs.webkit.org/show_bug.cgi?id=13138
* platform/StringImpl.cpp:
(WebCore::StringImpl::isLower):
(WebCore::StringImpl::lower):
(WebCore::StringImpl::equalIgnoringCase):
2007-03-28 Antti Koivisto <antti@apple.com>
Reviewed by Hyatt.
Fix <rdar://problem/5092653>
REGRESSION: Image decoding making scrolling slow
If decoder gave back a null frame (which I think happens regularly if you don't have full frame
data yet for image that does not decode incrementally) m_decodedSize was incremented anyway. This
led to massive growth in calculated image size and eventually made cache prune constantly.
No test, I don't know how to make one for this.
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::cacheFrame):
2007-03-28 Adele Peterson <adele@apple.com>
Reviewed by Kevin M.
WebCore part of fix for <rdar://problem/5095515> VitalSource Bookshelf should not pass return statements into stringByEvaluatingJavaScriptFromString
* page/mac/WebCoreFrameBridge.mm: (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
Convert return value to a string. This matches the behavior in Safari 2.0.
2007-03-28 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=13190
XPath incorrectly handles namespaces on attributes
* xml/XPathStep.cpp:
(WebCore::XPath::Step::nodesInAxis): Added a special case for faster attribute lookup; gives a slight but
measurable performance improvement for bug 13021.
(WebCore::XPath::Step::nodeMatches): Fixed NameTest for attribute nodes.
* xml/XPathStep.h:
(WebCore::XPath::Step::NodeTest::NodeTest):
(WebCore::XPath::Step::NodeTest::namespaceURI):
(WebCore::XPath::Step::nodeTest):
(WebCore::XPath::Step::setNodeTest):
Move m_namespaceURI to NodeTest, where it belongs. Removed unused m_nodeTestData (oops!).
* xml/XPathGrammar.y:
* xml/XPathPath.cpp:
(WebCore::XPath::LocationPath::optimizeStepPair):
Accounted for the above change.
2007-03-28 Oliver Hunt <oliver@apple.com>
rs=Hyatt.
Rollout local changes :-/
* loader/Cache.cpp:
(WebCore::Cache::pruneAllResources):
(WebCore::Cache::remove):
2007-03-28 Oliver Hunt <oliver@apple.com>
Reviewed by Hyatt.
Roll out r20511 due to incredible badness
* loader/Cache.cpp:
(WebCore::Cache::pruneAllResources):
(WebCore::Cache::remove):
2007-03-27 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
Don't enforce text-selection drag delay when we are
going to drag an image anyway.
Fixes rdar://problem/4668935
* page/EventHandler.cpp:
(WebCore::EventHandler::handleDrag):
2007-03-27 Justin Garcia <justin.garcia@apple.com>
Build fix
* editing/markup.cpp:
(WebCore::startMarkup):
2007-03-27 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5091898> REGRESSION: GMail Editor: A line of underlined text copied with Select All pastes with wrong font family
createMarkup skipped elements if they were blocks
when called from moveParagraphs (because that function
must receive only inline content). This patch adds
code to inline these blocks instead of skipping them
so that we don't lose any of the style that they
contribute to the copied markup.
* editing/markup.cpp:
(WebCore::startMarkup): Add an inlineBlocks option.
Make sure to overwrite display:block coming from
a style sheet or the inline style declaration.
(WebCore::createMarkup): Don't refuse to include a
specialCommonAncestor that's a block if we were asked
to include only inline content, since we can now inline
block elements in startMarkup.
2007-03-27 Adele Peterson <adele@apple.com>
Reviewed by Hyatt.
Fix for <rdar://problem/5026141> REGRESSION: Aperture Viewer Flashes when switching from Index Page to Detail page in Web Gallery
This disables the paint that occurs after WebCore finishes loading the document. We should reenable this when we
move the dispatchDidFinishLoad delegate callback to happen around the same time as the JS onload call. See <rdar://problem/5092361>.
* dom/Document.cpp: (WebCore::Document::implicitClose):
2007-03-26 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5065910> REGRESSION: In Mail and GMail, Can't apply color to pasted line of text
<rdar://problem/5084241> After deleting a paragraph of colored text, can't change text color
<rdar://problem/5065605> REGRESSION: Text copied with Select All + Copy loses color on Paste
<rdar://problem/4916887> GMAIL: Can't apply color to text once it becomes indented
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::copyInheritableProperties):
If a node's text fill color is invalid, then its children use
their font-color as their text fill color (they don't inherit
it). Likewise for stroke color.
2007-03-27 Anders Carlsson <acarlsson@apple.com>
* platform/ScrollBar.h:
Use wtf/MathExtras.h instead of math.h
2007-03-27 Zack Rusin <zrusin@trolltech.com>
Fix the compile - when using math.h functions
actually include the header with them.
* platform/ScrollBar.h:
2007-03-27 Oliver Hunt <oliver@apple.com>
Reviewed by Maciej.
The WebArchiver needs all the subresources of a document to be accessible
through the DocLoader, so we can't remove a CachedResource simultaneously
from the global Cache and all DocLoaders, just because it needs to be
reloaded in one.
Fixes rdar://problem/5044366
* loader/Cache.cpp:
(WebCore::Cache::remove):
Don't evict the resource from all DocLoaders
* manual-tests/test-iframes-loading-the-same-resource.html: Added.
Alas it wasn't possible to make a nice layout test, even this manual test
is not entirely deterministic
2007-03-27 Mark Rowe <mrowe@apple.com>
Build fix.
* platform/GlyphBuffer.h:
(WebCore::GlyphBuffer::clear):
2007-03-27 Dave Hyatt <hyatt@apple.com>
Add support for glyph offsets to the GlyphBuffer.
Reviewed by olliej
* platform/Font.cpp:
(WebCore::Font::drawGlyphBuffer):
* platform/GlyphBuffer.h:
(WebCore::GlyphBuffer::clear):
(WebCore::GlyphBuffer::swap):
(WebCore::GlyphBuffer::offsetAt):
(WebCore::GlyphBuffer::add):
2007-03-27 Antti Koivisto <antti@apple.com>
Keep buildbot happy.
* platform/mac/PlatformScrollBarMac.mm:
(WebCore::PlatformScrollbar::scrollbarHit):
2007-03-26 Antti Koivisto <antti@apple.com>
Reviewed by Darin.
On Mac, support fine grained wheel events generated by trackpad and Mighty Mouse.
http://bugs.webkit.org/show_bug.cgi?id=13134
<rdar://problem/5076249?
* WebCore.exp:
Export _wkGetWheelEventDeltas
* page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEvent):
Remove (0, 0) scroll event hack, it is not needed anymore.
Do per-pixel scrolling for fine grained events.
* platform/PlatformWheelEvent.h:
(WebCore::PlatformWheelEvent::isContinuous):
Add new m_isContinuous boolean to indicate fine grained wheel events.
* platform/ScrollBar.cpp:
(WebCore::Scrollbar::Scrollbar):
(WebCore::Scrollbar::setValue):
(WebCore::Scrollbar::setSteps):
(WebCore::Scrollbar::scroll):
* platform/ScrollBar.h:
(WebCore::Scrollbar::value):
Use float to represent current position to support finer grained scrolling.
Add ScrollByPixel, remove ScrollByWheel (which was same as ScrollByLine anyway)
* platform/ScrollTypes.h:
(WebCore::):
* platform/gdk/WheelEventGdk.cpp:
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
Initalize m_isContinuous
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
Add wkGetWheelEventDeltas for getting fine grained wheel events
* platform/mac/WheelEventMac.mm:
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
Get the wheel deltas using new wkGetWheelEventDeltas interface
* platform/qt/WheelEventQt.cpp:
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
Initalize m_isContinuous
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::calcHeight):
Pass item height to scrollbar
2007-03-26 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
Fixed <rdar://problem/5088234> REGRESSION: Crash occurs at WebCore::Node::
createRendererIfNeeded() when changing map views with MS Virtual Earth
(http://www.ziprealty.com/)
The cause of the crash was the insertion of a <script> element whose
script removed it from the document. The <script> element would then be
garbage when the insertion routine went on to attach() it.
The solution here is to check that an element is still your child before
trying to attach() it. This matches the style of checks we do elsewhere
in the node insertion and removal code.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::insertBefore):
(WebCore::ContainerNode::replaceChild):
(WebCore::ContainerNode::appendChild):
2007-03-26 David Carson <dacarson@gmail.com>
Reviewed by Darin, landed by Anders.
Manual test case for: REGRESSION (r19559): Java applet crash
http://bugs.webkit.org/show_bug.cgi?id=13142
<rdar://problem/5080340>
* manual-tests/liveconnect-applet-get-boolean.html: Added.
* manual-tests/resources/CheckerApplet.class: Added.
* manual-tests/resources/CheckerApplet.java: Added.
2007-03-26 Mitz Pettel <mitz@webkit.org>
Reviewed and landed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13194
<rdar://problem/5087738>
REGRESSION: Selection rects are wrong for images in search results from images.google.com
Test: fast/replaced/selection-rect-in-table-cell.html
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::selectionRect):
2007-03-26 Geoffrey Garen <ggaren@apple.com>
Removed now-stale #includes of <assert.h>.
* WebCorePrefix.h:
* config.h:
* css/CSSGrammar.y:
* platform/Arena.cpp:
* platform/KURL.cpp:
* platform/SegmentedString.h:
* rendering/DataRef.h:
* rendering/RenderArena.cpp:
2007-03-26 Geoffrey Garen <ggaren@apple.com>
Reviewed by Kevin McCulough.
Global replace of "assert(" with "ASSERT(" to assist debugging. Removed
one instance of commented-out code containing "assert(" instead of replacing it.
2007-03-25 Antti Koivisto <antti@apple.com>
Reviewed by Adam.
Fix <rdar://problem/5049842>
Gmail Editor: Dragging message text in the message body results in a crash at WebCore::Frame::eventHandler()
Null check frame in m_dragTarget, it might be gone already.
* page/EventHandler.cpp:
(WebCore::EventHandler::updateDragAndDrop):
(WebCore::EventHandler::cancelDragAndDrop):
(WebCore::EventHandler::performDragAndDrop):
2007-03-25 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
A partial fix for http://bugs.webkit.org/show_bug.cgi?id=13021
XPath can be very slow
* xml/XPathExpression.cpp:
(WebCore::XPathExpression::evaluate): Reset a reference to the context node, as this may prevent the whole document
from being destroyed in time.
* dom/Attr.cpp:
(WebCore::Attr::createTextChild): Instead of calling appendChild(), just do the few operations it really needs to perform.
* dom/ContainerNode.h:
(WebCore::ContainerNode::fastSetFirstChild):
(WebCore::ContainerNode::fastSetLastChild):
Added operations that let Attr hack internal ContainerNode data (evil, but fast!).
* xml/XPathStep.cpp:
(WebCore::XPath::Step::evaluate):
(WebCore::XPath::Step::nodesInAxis):
(WebCore::XPath::Step::nodeMatches):
* xml/XPathStep.h:
Merged node testing into axis enumeration. This saves a lot of Vector resizing and passing, and is necessary for future
optimizations (sometimes, we can just pick the single result node instead of enumerating and filtering the whole axis).
2007-03-24 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13156
REGRESSION (r19621): Pasting breakable content where wrapped line is too long to fit in a textarea fails to draw a horizontal scrollbar
Test: fast/text/midword-break-after-breakable-char.html
Breaking in the middle of the word
is allowed only if no breaking opportunity between words has occurred yet. The
first position on the line should not be considered "between words" even if
it is a breaking opportunity.
* rendering/bidi.cpp:
(WebCore::RenderBlock::findNextLineBreak): Changed according to the above. Also
cleaned up a couple of lines.
2007-03-24 David Hyatt <hyatt@apple.com>
Fix for bugzilla bug 13187, place a hard limit on the amount of decoded data that WebCore will keep
around even on live pages (pages being displayed in tabs/windows or in the back/forward cache).
Images will decode to paint and once the decoded data exceeds the cache size, the decoded data will be
tossed.
Refine the flushing algorithm to apply the two-pass decode/evict model to each LRU-SP queue individually, rather
than to all the lists at once. This allows the cache to evict large encoded resources before flushing small
or frequently accessed decoded onces.
Added information on live/decoded data to the cache statistics.
Reviewed by darin
* loader/Cache.cpp:
(WebCore::Cache::Cache):
(WebCore::Cache::pruneLiveResources):
(WebCore::Cache::pruneAllResources):
(WebCore::Cache::setMaximumSize):
(WebCore::Cache::remove):
(WebCore::Cache::lruListFor):
(WebCore::Cache::removeFromLRUList):
(WebCore::Cache::insertInLRUList):
(WebCore::Cache::liveLRUListFor):
(WebCore::Cache::removeFromLiveResourcesList):
(WebCore::Cache::insertInLiveResourcesList):
(WebCore::Cache::addToLiveResourcesSize):
(WebCore::Cache::removeFromLiveResourcesSize):
(WebCore::Cache::adjustSize):
(WebCore::Cache::getStatistics):
* loader/Cache.h:
(WebCore::Cache::TypeStatistic::TypeStatistic):
* loader/CachedImage.cpp:
(WebCore::CachedImage::decodedSizeWillChange):
(WebCore::CachedImage::decodedSizeChanged):
* loader/CachedImage.h:
* loader/CachedResource.cpp:
(WebCore::CachedResource::CachedResource):
(WebCore::CachedResource::ref):
(WebCore::CachedResource::deref):
(WebCore::CachedResource::setEncodedSize):
(WebCore::CachedResource::liveResourceAccessed):
* loader/CachedResource.h:
(WebCore::CachedResource::liveAccessCount):
(WebCore::CachedResource::resetLiveAccessCount):
(WebCore::CachedResource::increaseLiveAccessCount):
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::destroyDecodedData):
(WebCore::BitmapImage::cacheFrame):
* platform/graphics/ImageObserver.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintBackgroundExtended):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::paint):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::paint):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::paintBorderImage):
2007-03-24 Darin Adler <darin@apple.com>
Reviewed by Mitz.
- fix http://bugs.webkit.org/show_bug.cgi?id=13123
CSS selectors that use :lang, :not, and namespaces do not serialize correctly
Test: fast/css/css-selector-text.html
* css/CSSSelector.cpp: (WebCore::CSSSelector::selectorText): Add the namespace
prefix for tag or attribute names, the sub-selector for :not, and the argument
for :lang.
2007-03-24 Brady Eidson <beidson@apple.com>
Reviewed by Adam
<rdar://problem/5086210> - Move RetainPtr to WTF
* ForwardingHeaders/wtf/RetainPtr.h: Added.
* WebCore.xcodeproj/project.pbxproj: Removed WebCore/RetainPtr.h
* history/HistoryItem.h: Changed #include to <wtf/RetainPtr.h>
* history/PageCache.h: Ditto
* page/mac/WebCoreFrameBridge.mm: Ditto
* platform/ContextMenu.h: Ditto
* platform/ContextMenuItem.h: Ditto
* platform/DragImage.h: Ditto
* platform/FileChooser.h: Ditto
* platform/PlatformKeyboardEvent.h: Ditto
* platform/PopupMenu.h: Ditto
* platform/SharedBuffer.h: Ditto
* platform/cf/RetainPtr.h: Removed.
* platform/graphics/Icon.h: Changed #include
* platform/mac/ClipboardMac.h: Ditto
* platform/mac/PasteboardMac.mm: Ditto
* platform/mac/WidgetMac.mm: Ditto
* platform/network/AuthenticationChallenge.h: Ditto
* platform/network/ResourceError.h: Ditto
* platform/network/ResourceHandle.h: Ditto
* platform/network/ResourceRequest.h: Ditto
* platform/network/ResourceResponse.h: Ditto
* rendering/RenderThemeMac.mm: Ditto
2007-03-24 Mitz Pettel <mitz@webkit.org>
Fix for <rdar://problem/5086797>, layoutPending is now reporting incorrect results, which will lead
to all sorts of layout issues. This is in bugzilla as 13179.
Reviewed by hyatt
- fix http://bugs.webkit.org/show_bug.cgi?id=13179
REGRESSION (r20410): In debug builds, loading a certain page is suspended until redisplay is forced
Moved the root->needsLayout() check from layoutPending() to needsLayout()
to restore the behavior before r20324.
* page/FrameView.cpp:
(WebCore::FrameView::layoutPending):
(WebCore::FrameView::needsLayout):
2007-03-24 Mitz Pettel <mitz@webkit.org>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=13180
<rdar://problem/5084478>
Another debug build crash from ASSERTION FAILED: !needsLayout()
No test possible because updateRendering() is always called after script
execution.
* page/FrameView.cpp:
(WebCore::FrameView::layout): Get the layout root after calling recalcStyle()
since a style recalc may result in needing to do start layout at the root.
2007-03-24 Nikolas Zimmermann <zimmermann@kde.org>
Not reviewed. Build fix.
Fix FloatRect vs. IntRect confusion.
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::nodeAtPoint):
2007-03-25 Mark Rowe <mrowe@apple.com>
Fix incorrect radar number.
* platform/network/mac/ResourceHandleMac.mm:
(-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
2007-03-23 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Oliver.
Fix all known RenderSVGImage problems.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12126 (RenderSVGImage seems to suffer from integer overflow)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12442 (raster images disappearing during script execution (SVG))
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12572 (WebKit does not properly invalidate image region after image load)
Added test: svg/custom/scrolling-embedded-svg-file-image-repaint-problem.html
In RenderSVGImage::paint, do not call shouldPaint() as this will never work properly for SVG renderers, as shouldPaint
doesn't take into account any special SVG transformation (localTransform/absoluteTransform). Just remove the call.
Fix hit detection on RenderSVGImage - it didn't work properly at all. No idea why I didn't notice before.
Thanks Andreas Neumann once again for writing excellent bug reports and pointing me to them :-)
The carto.net navigation tools work as expected now, and also the "dock like" image effect example.
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::paint):
(WebCore::RenderSVGImage::nodeAtPoint):
2007-03-24 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- http://bugs.webkit.org/show_bug.cgi?id=13177
Suppress control characters in the ATSUI code path
* platform/mac/FontMac.mm:
(WebCore::overrideLayoutOperation):
(WebCore::ATSULayoutParameters::initialize):
2007-03-24 David Hyatt <hyatt@apple.com>
Fix for <rdar://problem/5086400>, images scrolled offscreen continue to animate. Safari 2 would
halt animations when images were no longer visible.
Reviewed by mjs, olliej
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::advanceAnimation):
2007-03-24 David Hyatt <hyatt@apple.com>
Fix for <rdar://problem/508328>, sluggish text entry in search field. Make sure
our size actually changed before we decide to do a full repaint because of background/border
complexities.
Reviewed by aroben
* rendering/RenderObject.cpp:
(WebCore::RenderObject::repaintAfterLayoutIfNeeded):
2007-03-23 Dave Hyatt <hyatt@apple.com>
Fix for <rdar://problem/5048219>, spurious glyphs in gmail. This is bugzilla bug 13136, which
will remain open to cover patching the complex text path.
Reviewed by aroben
* platform/Font.cpp:
(WebCore::Font::glyphDataForCharacter):
* platform/Font.h:
(WebCore::Font::treatAsZeroWidthSpace):
* platform/GlyphPageTreeNode.cpp:
(WebCore::GlyphPageTreeNode::initializePage):
2007-03-23 Mitz Pettel <mitz@webkit.org>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=13153
REGRESSION: Visual highlighting of pre-populated blank line in textarea is broken
- fix a bug where selecting across a soft line break did not highlight to
the end of the first line if it contained skipped whitespace
Test: fast/text/selection-hard-linebreak.html
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::selectionState): Changed to treat a selection that ends on the
end of a hard line break as if it ends after the line break. Fixed the case of a selection
that starts and ends in the same text object as the box but does not intersect it
to return SelectionNone instead of selectionBoth.
2007-03-23 Mitz Pettel <mitz@webkit.org>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=13124
REGRESSION: Reproducible crash in Widget::getView
Test: fast/frames/hover-timer-crash.html
* page/Frame.cpp:
(WebCore::Frame::setView): Added a call to EventHandler::clear().
2007-03-23 Justin Garcia <justin.garcia@apple.com>
Reviewed by adele
<rdar://problem/5078739>
Crash in in ReplaceSelectionCommand if the fragment contains only a style span
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::doApply): Check
for an empty fragment after removing a redundant
style span instead of before.
2007-03-23 David Hyatt <hyatt@apple.com>
<rdar://problem/5085063>
Fix non-looping animation on cuteoverload.com. Just always flush
decoded data for large animated images to avoid our cache getting
out of sync with the image source.
Reviewed by ggaren
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::advanceAnimation):
2007-03-23 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Fix for <rdar://problem/5061024> REGRESSION: Returning false from onkeypress event on Input is ignored when key is Tab
http://bugs.webkit.org/show_bug.cgi?id= 13020
No known way to add a layout test for this. We would need a way to know exactly how the event was consumed.
* page/EventHandler.cpp: (WebCore::EventHandler::defaultKeyboardEventHandler):
If the keypress event has its default behavior prevented, then we should consider the keydown event handled.
2007-03-23 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5080333>
REGRESSION: Selection changes when changing the alignment of an image
Regression occurred when we started using moveParagraphs
to move content in applyBlockStyle. moveParagraphs
moves by copying, deleting and reinserting content, and
so must be accompanied by selection preservation code.
That code uses rangeFromLocationAndLength and rangeLength,
which use TextIterators, which don't emit anything for images
and other replaced elements, causing this bug.
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyBlockStyle): Ask rangeLength
and rangeFromLocationAndLength to request that their
TextIterators emit spaces for replaced elements.
Use rangeCompliantEquivalent()s when creating a Range from
VisiblePositions, since some VisiblePositions have illegal
deepEquivalent()s.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs): Ditto.
* editing/TextIterator.cpp:
(WebCore::TextIterator::TextIterator):
(WebCore::TextIterator::handleReplacedElement): Emit
a space if requested.
(WebCore::TextIterator::representNodeOffsetZero): Emit
ranges before m_node, not around m_lastTextNode. These
ranges should represent the part of the document associated
with the emitted character.
(WebCore::TextIterator::rangeLength): Take in the new bool.
(WebCore::TextIterator::rangeFromLocationAndLength): Ditto.
Also, don't loop an extra time after finding the end of the
range when we're looking for zero length ranges. This appeared
to be a workaround for the bugs fixed in representNodeOffsetZero
in this patch.
* editing/TextIterator.h:
2007-03-24 Mark Rowe <mrowe@apple.com>
Rubber-stamped by Darin.
* Configurations/WebCore.xcconfig: Remove unnecessary INFOPLIST_PREPROCESS.
2007-03-23 Darin Adler <darin@apple.com>
* html/HTMLBodyElement.cpp: Fix comment typo.
2007-03-23 Adam Treat <adam@staikos.net>
Reviewed and committed by George.
Patch from Adam Treat to make the Qt build work without SVG and XSLT.
XMLNames is required in any case.
* WebCore.pro:
2007-03-23 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- <rdar://problem/5074439> handle margins on frame and iframe elements
without involving FrameView, FrameLoader, etc.
* html/HTMLBodyElement.cpp: (WebCore::HTMLBodyElement::insertedIntoDocument):
Grab the margin from the frame directly here. There was no real benefit
to doing this via FrameView. Later we can delete quite a bit of unneeded code
here and in WebKit that exists only to set up the margin values in FrameView,
which are now unused.
2007-03-23 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Fix for <rdar://problem/5080428> REGRESSION: getting value for hidden input element fails after the fix for Bug 11866
http://bugs.webkit.org/show_bug.cgi?id=13121
Rolled out the change for 11866 that made hidden input elements store the value separately from the value attribute.
Added an m_originalValue field that gets set when the element is done being parsed (in closeRenderer). In reset,
use the m_originalValue for hidden input elements.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::closeRenderer):
(WebCore::HTMLInputElement::reset):
(WebCore::HTMLInputElement::setValue):
(WebCore::HTMLInputElement::storesValueSeparateFromAttribute):
* html/HTMLInputElement.h:
2007-03-23 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13157
<rdar://problem/5083995>
List markers positioned incorrectly and don't repaint properly on Oxford homepage
Test: fast/lists/marker-image-error.html
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::imageChanged): Mark ourselves for relayout if
the image failed to load, since that means we will use a bullet instead.
2007-03-23 Zack Rusin <zrusin@trolltech.com>
Fix the compile.
* platform/graphics/qt/ImageSourceQt.cpp:
2007-03-22 Dave Hyatt <hyatt@apple.com>
Fix for <rdar://problem/5083072>.
* page/Frame.cpp:
(WebCore::Frame::setPrinting):
(WebCore::Frame::forceLayoutWithPageWidthRange):
* page/Frame.h:
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge forceLayoutWithMinimumPageWidth:maximumPageWidth:adjustingViewSize:]):
2007-03-22 Anders Carlsson <acarlsson@apple.com>
Reviewed by Ada.
<rdar://problem/5074974>
CrashTracer: [USER] repro crash in Safari at com.apple.WebCore: WebCore::FrameLoader::activeDocumentLoader const + 6
* loader/mac/NetscapePlugInStreamLoaderMac.mm:
(WebCore::NetscapePlugInStreamLoader::didReceiveResponse):
Don't use ResourceResponse:isHTTP here since that only looks at the protocol instead of if the response came from a
HTTP server (and not a web archive).
2007-03-22 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed - gdk build fix.
* platform/graphics/cairo/ImageSourceCairo.cpp:
2007-03-22 Dave Hyatt <hyatt@apple.com>
Fix for <rdar://problem/5083473>. Make sure wheeling still forwards to the frame view even
when no node is hit. Technically not ever hitting a node is a regression from the RenderView
size changes (making it be the size of the initial containing block according to CSS2.1), but
we should still handle this case gracefully in case it comes up again.
Reviewed by olliej
* page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEvent):
2007-03-22 Justin Garcia <justin.garcia@apple.com>
Reviewed by kevin
<rdar://problem/5081257>
REGRESSION: New Mail signatures start out empty
* editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::canonicalPosition): Allow
descent from positions inside the document into an
editable body.
2007-03-22 Brady Eidson <beidson@apple.com>
Reviewed by Adele and John
<rdar://5043528> - Prepare for new API
* platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::clearAuthentication): Clear CF type
2007-03-22 Beth Dakin <bdakin@apple.com>
Patch by Hyatt, reviewed and committed by me.
Does not reproduce consistently, so a layout test does not seem
possible.
Fix for <rdar://problem/5082421> Constantly hitting ASSERT(!
needsLayout()) in RenderView::paint()
* page/FrameView.cpp:
(WebCore::FrameView::layoutPending): It is not enough to ask if the
layout timer is active. There may be times that we don't have a
body yet so we cannot schedule layout yet, but the root still needs
layout.
2007-03-22 John Sullivan <sullivan@apple.com>
Reviewed by Darin
Followup for recent fix to 5079700, found by assertion added to Safari.
* page/mac/FrameMac.mm:
(WebCore::Frame::searchForLabelsBeforeElement):
Fixed another place in this method where an empty NSString was being returned instead of nil.
Cleaned up the style a little too.
2007-03-22 David Hyatt <hyatt@apple.com>
Remove unnecessary destroyFrameAtIndex call. Now that we throw away
the image source, it is no longer needed.
Reviewed by beth
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::destroyDecodedData):
2007-03-22 David Harrison <harrison@apple.com>
Reviewed by Geoff, Darin.
<rdar://problem/5077892> In RapidWeaver 3.5.1, a crash occurs when attempting to load Safari Bookmarks in iMedia Browser
* platform/mac/ThreadCheck.mm:
(WebCore::_WebCoreThreadViolationCheck):
Change default on Tiger to NSLog rather than raise an exception.
2007-03-22 Darin Adler <darin@apple.com>
Reviewed by Brady.
- use binary_search instead of hash table; slightly better performance and
less memory use
* platform/network/ResourceHandle.cpp: (WebCore::ResourceHandle::portAllowed):
Use binary_search.
2007-03-22 Darin Adler <darin@apple.com>
Reviewed by Adele.
- fix <rdar://problem/5074630> detachChildren call should move from WebKit to WebCore
* loader/FrameLoader.cpp: (WebCore::FrameLoader::setDocumentLoader):
Add a call to detachChildren() after the call to prepareForDataSourceReplacement().
There was no reason for this crucial loading step to be left to the client.
2007-03-22 David Hyatt <hyatt@apple.com>
Minor refactoring and cleanup of the bridge calls that want to control layout settings on the RenderView.
Have the bridge talk through the FrameView instead of just asking for the RenderView directly.
Add an assert to help catch situations where the RenderView needs layout at paint time, since this is a known
catastrophic scenario that will (much of the time) result in a crash in RenderTableSection::paint.
Reviewed by aroben
* page/FrameView.cpp:
(WebCore::FrameView::adjustViewSize):
(WebCore::FrameView::needsLayout):
(WebCore::FrameView::setNeedsLayout):
* page/FrameView.h:
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge needsLayout]):
(-[WebCoreFrameBridge setNeedsLayout]):
* rendering/RenderView.cpp:
(WebCore::RenderView::paint):
2007-03-21 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
Re-worked the fix in r20375. 'M' and 'm' are not the only commands that
accept "extra" coordinates -- virtually all commands accept them.
* ksvg2/svg/SVGParserUtilities.cpp:
(WebCore::SVGPathParser::parseSVG):
2007-03-21 David Harrison <harrison@apple.com>
Reviewed by hyatt.
<rdar://problem/5072460> CrashTracer: [USER] 1 crashes in Xcode at com.apple.ImageIO.framework: getBandProcPNG + 168
An NSData object was being alloc/init'd, then returned callers who cast the pointer as a
CFDataRef, including calling CFRelease on it. The problem is that under garbage collection, the NS
retain count is ignored (it's always 0), but the CFRetain and CFRelease are not ignored. This
caused the object to be over-released. The solution that works in both GC and non-GC is to "transfer"
the initial NS retain count to the CF retain count, using HardRetainWithNSRelease.
The creator of the NSData was SharedBuffer::createNSData. The callers were PDFDocumentImage::dataChanged()
and ImageSource::setData(). This particular crash involved the ImageSource::setData() case.
* platform/SharedBuffer.h:
Declare createCFData().
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::ImageSource::setData):
Call createCFData instead of createNSData.
* platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::dataChanged):
Call createCFData instead of createNSData.
* platform/mac/SharedBufferMac.mm:
(WebCore::SharedBuffer::createCFData):
Implement createCFData(). Use HardRetainWithNSRelease for gc safety.
2007-03-21 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13145
Regression: Scrollbar not resizing after display none
Test: fast/dynamic/view-overflow.html
* rendering/RenderView.cpp:
(WebCore::RenderView::layout): Reset overflowHeight() and overflowWidth()
before calling docHeight() and docWidth(), since the former act as a lower
bound for the latter.
2007-03-21 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
A little cleanup based work I've been doing on the SVG parsers.
* ksvg2/svg/SVGParserUtilities.h:
(WebCore::skipString):
* ksvg2/svg/SVGPreserveAspectRatio.cpp: Moved checkString into
SVGParserUtilities.h, so it could be with all its friends. Renamed
"checkString" to "skipString" to match the rest of the code and to be
clear about which functions move the buffer pointer.
(WebCore::SVGPreserveAspectRatio::parsePreserveAspectRatio):
* ksvg2/svg/SVGTransformable.cpp:
(WebCore::SVGTransformable::parseTransformAttribute): Changed gotos into
returns. Removed unnecessary magic number.
2007-03-21 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
Fixed <rdar://problem/5078471> SVG rgb color parser runs past end of
buffer when running fuzzing test
* ksvg2/svg/SVGColor.cpp:
(WebCore::parseNumberOrPercent): Check for past the end condition.
(WebCore::SVGColor::colorFromRGBColorString): Reversed "read past end
of buffer, then check if you're past the end" logic.
2007-03-21 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
Fixed <rdar://problem/5079410> SVG path parser hangs, exhausts memory when
running fuzzer test
* ksvg2/svg/SVGParserUtilities.cpp:
(WebCore::SVGPathParser::parseSVG): Don't assume that extra digits are
always preceded by an 'M' or an 'm'.
2007-03-21 John Sullivan <sullivan@apple.com>
Reviewed by Adam
- fixed <rdar://problem/5079700> REGRESSION (r19702): Name/password aren't autofilled
or saved for .Mac homepage login
* page/mac/FrameMac.mm:
(WebCore::Frame::searchForLabelsBeforeElement):
don't count empty strings as valid results
2007-03-21 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
* editing/markup.cpp:
(WebCore::styleFromMatchedRulesAndInlineDecl):
Release the RefPtr to avoid increasing/decreasing
the refcount unnecessarily.
(WebCore::propertyMissingOrEqualToNone): Added and used
instead of converting values to strings.
(WebCore::elementHasTextDecorationProperty):
(WebCore::createMarkup):
2007-03-21 Justin Garcia <justin.garcia@apple.com>
Reviewed by oliver
<rdar://problem/5075944>
REGRESSION: Partially selected underlined content pastes as plain text
We stopped adding markup for all the ancestors
of lastClosed up to the commonAncestorBlock
because it was adding a lot of unnecessary markup.
This caused us to lose underlining when copying a
partially selected underlined element (even though
we put all styles that the copied markup inherits
into a style span, because the text-decoration
isn't inheritable).
* editing/markup.cpp:
(WebCore::styleFromMatchedRulesAndInlineDecl): Moved
code here.
(WebCore::elementHasTextDecorationProperty): Added.
(WebCore::createMarkup): If the copied markup has a
text-decoration because some common ancestor has
a text-decoration property set, include that ancestor
and all its descendants in the copied markup.
2007-03-21 Oliver Hunt <oliver@apple.com>
Reviewed by Antti.
Update a few SVG attribute parsers to be more defensive against
reading beyond the end of input.
Fixes rdar://problem/5077218 -- SVG transform parser runs past
end of buffer when running fuzzing test
* ksvg2/svg/SVGParserUtilities.cpp:
(WebCore::SVGPathParser::parseSVG):
* ksvg2/svg/SVGParserUtilities.h:
(WebCore::skipOptionalSpacesOrDelimiter):
* ksvg2/svg/SVGTransformable.cpp:
(WebCore::parseTransformParamList):
(WebCore::SVGTransformable::parseTransformAttribute):
2007-03-21 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Mitz.
http://bugs.webkit.org/show_bug.cgi?id=13140
Crash after loading SVG fragment with XMLHttpRequest (Yosemite Map Geology Layer)
Test: svg/carto.net/frameless-svg-parse-error.html
* ksvg2/misc/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::reportError): Added a null check.
(WebCore::SVGDocumentExtensions::reportWarning): Ditto.
2007-03-21 Beth Dakin <bdakin@apple.com>
Reviewed by Geoff.
Fix for <rdar://problem/5072678> Crash in
RenderLayer::scrollRectToVisible with MallocScribble enabled
I tried to fix this earlier today but my fix caused a regression
scrolling through RSS pages. It turns out that sometimes scroll
events need to propagate immediately, and sometimes they must be
delayed or they risk deleting objects that are expected to be
around after the event has propagated. Mitz's original fix made
sheduleEvent() only delay events that happen during layout. This
fix marks two other places in addition to layout where events also
need to be delayed. These two places are places that were marked
with FIXMEs that Mitz removed in his original patch. (There was a
third FIXME in RenderLayer::updateScrollInfoAfterLayout() but that
case is only called through layout and is covered by Mitz's
original patch.)
* page/FrameView.cpp:
(WebCore::FrameView::~FrameView): Added assertion.
(WebCore::FrameView::layout): Call new functions to increment and
decrement the queued events count.
(WebCore::FrameView::pauseScheduledEvents):
(WebCore::FrameView::resumeScheduledEvents): Decrement queued
events count and dispatch events if the count has zeroed.
* page/FrameView.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::Marquee::start):
2007-03-21 Mitz Pettel <mitz@webkit.org>
Reviewed by John Sullivan.
- fix http://bugs.webkit.org/show_bug.cgi?id=13130
REGRESSION: Sometimes a frame resizer keeps following the mouse after mouseup
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::userResize): Reordered the code to allow resizing
to be terminated by a mouseup event regardless of whether the frameset needs
layout.
2007-03-20 Anders Carlsson <acarlsson@apple.com>
Reviewed by Oliver.
<rdar://problem/5077252>
In NetNewsWire 2.1.1 and 3.0d62, a crash occurs after triple-clicking a link on the page
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::load):
Move the m_inStopAllLoaders check to the load function that's common for loading a request or substitute data.
2007-03-20 Brady Eidson <beidson@apple.com>
Reviewed by Anders.
<rdar://problem/5073391> and http://bugs.webkit.org/show_bug.cgi?id=13137
Crash in IconDatabase when private browsing is enabled.
The problem was caused by http://trac.webkit.org/projects/webkit/changeset/20182
which changed many uses of char[] and Vector<char> to SharedBuffer. The patch
tended to literally replace a Vector<char> with RefPtr<SharedBuffers> but forgot
to enforce the concept that Vector<char>'s always exist, whereas RefPtr<SharedBuffers>
can be null. This led to derefs.
I took the opportunity to rework the iconDB functions to live in a SharedBuffer
world, as that didn't exist when they were originally written - now they just return
SharedBuffers instead of taking a Vector<char>& as a parameter
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::imageDataForIconURL): Return a SharedBuffer
(WebCore::IconDatabase::iconForPageURL): Null check the SharedBuffer before asking
it if it's empty
(WebCore::IconDatabase::imageDataForIconURLQuery): Return a new SharedBuffer
* loader/icon/IconDatabase.h: Return SharedBuffer's instead of taking Vector<char>&'s
2007-03-20 Adam Roben <aroben@apple.com>
Rubberstamped by Adele.
Roll out r20348 because it was causing crashes.
* page/FrameView.cpp:
(WebCore::FrameViewPrivate::FrameViewPrivate):
(WebCore::FrameView::layout):
(WebCore::FrameView::scheduleEvent):
2007-03-20 Timothy Hatcher <timothy@apple.com>
Reviewed by Kevin Decker.
Rolling out part of r19828 that caused a scrolling regression in Mail.
<rdar://problem/4820817> Message jumps around when trying to select text
* platform/mac/ScrollViewMac.mm:
(WebCore::ScrollView::visibleContentRect):
(WebCore::ScrollView::updateContents):
2007-03-20 Brady Eidson <beidson@apple.com>
Reviewed by John
<rdar://5071341> - Crash in IconLoader::finishLoading()
Though the reproducibility of the crash is still elusive, there's been a crasher likely uncovered
Hyatt's recent caching changings to the IconLoader. This crash tends to hit on sites without favicons,
that serve up complex 404 pages, often when the load is cancelled or redirected. Occasionally, it *seems*
the IconLoader is getting failed/cancelled twice.
This patch adds some assertions and a "fail gracefully in a release build" check that will have to
serve us until we know more about the cause.
* loader/icon/IconLoader.cpp:
(WebCore::IconLoader::didFail): Add an assertion to catch this case
(WebCore::IconLoader::finishLoading): Add an assertion to catch the case, and fail
gracefully in debug builds. Also add an efficiency check to not commit to the DB if there is no
IconURL
2007-03-20 Antti Koivisto <antti@apple.com>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=10747
REGRESSION: Using two fingers on a trackpad to scroll inside a text area makes the whole page move
<rdar://problem/5045710>
Eat smooth scroll events in WebCore if pointer is over scrollable area. Not
really a good fix, smooth scrolling should be supported properly. It should do for now.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEvent):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::isScrollable):
* rendering/RenderListBox.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::isScrollable):
* rendering/RenderObject.h:
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::isScrollable):
* rendering/RenderTextControl.h:
2007-03-20 Beth Dakin <bdakin@apple.com>
Reviewed by Geoff.
Covered by existing test case.
Fix for <rdar://problem/5072678> Crash in
RenderLayer::scrollRectToVisible with MallocScribble enabled
This removes some code that was added with http://bugs.webkit.org/
show_bug.cgi?id=8360. This code was not needed to fix that bug, but
the idea behind it was that there are times when it is safe for
scheduleEvent() to propagate the event immediately. The
MallocScribble crash revealed that this assumption was a bit too
broad; the cause of the crash was that we were propagating events
immediately when it was not safe. Mitz and I discussed this online
and we agree that the safest solution is to revert to the old
behavior here, and always delay the propagation of the event.
* page/FrameView.cpp:
(WebCore::FrameViewPrivate::FrameViewPrivate):
(WebCore::FrameView::layout):
(WebCore::FrameView::scheduleEvent):
2007-03-20 Brady Eidson <beidson@apple.com>
Reviewed by John Sullivan
Add some very helpful logging to the IconLoader's SubresourceLoaderClient impl.
* loader/icon/IconLoader.cpp:
(WebCore::IconLoader::didReceiveResponse):
(WebCore::IconLoader::didReceiveData):
(WebCore::IconLoader::didFail):
(WebCore::IconLoader::didFinishLoading):
2007-03-20 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5071074>
REGRESSION: Links are pasted as plain text at certain positions
moveParagraphs calls createMarkup without annotation, which leaves
out anchor elements that aren't fully selected.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs): We don't want
createMarkup to do full annotation here. Doing so could include
special ancestor blocks, which would prevent the copied content
from appearing in the destination paragraph when it's re-inserted.
Annotation would also inline styles from style sheets, which is
unnecessary because the content is being moved to the same
document it's being moved from.
Added a new bool to createMarkup that when true allows markup for
special ancestors as long as they are inline when annotation is off.
* editing/markup.cpp:
(WebCore::createMarkup): Don't set specialCommonAncestor if annotation
is off, unless it's inline and we've been told it's ok to include such
elements.
* editing/markup.h:
2007-03-20 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12497
Implement XPath result ordering.
XPath::NodeVector typedef is replaced with a real XPath::NodeSet class that knows how
to sort itself, and can remember whether it has been already sorted.
* CMakeLists.txt:
* WebCore.pro:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
Added XPathNodeSet files.
* xml/XPathExpression.cpp: Fixed includes.
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunId::evaluate): Mark the resulting node-set as unsorted.
(WebCore::XPath::FunLocalName::evaluate): Replacing NodeVector with NodeSet.
(WebCore::XPath::FunNamespaceURI::evaluate): Ditto.
(WebCore::XPath::FunName::evaluate): Ditto.
(WebCore::XPath::FunCount::evaluate): Ditto.
(WebCore::XPath::FunSum::evaluate): Ditto.
* xml/XPathNodeSet.cpp: Added.
(WebCore::XPath::parentWithDepth):
(WebCore::XPath::sortBlock):
(WebCore::XPath::NodeSet::sort): Sort the node-set in document order.
(WebCore::XPath::NodeSet::reverse): Reverse the order (useful for making axes such as
parent or ancestor sorted).
(WebCore::XPath::NodeSet::firstNode): Returns the first node in document order; currently
implemented via fully sorting the node-set, but this can obviously be optimized.
(WebCore::XPath::NodeSet::anyNode): Added for symmetry with firstNode().
* xml/XPathNodeSet.h: Added.
(WebCore::XPath::NodeSet::NodeSet):
(WebCore::XPath::NodeSet::operator=):
(WebCore::XPath::NodeSet::size):
(WebCore::XPath::NodeSet::isEmpty):
(WebCore::XPath::NodeSet::operator[]):
(WebCore::XPath::NodeSet::reserveCapacity):
(WebCore::XPath::NodeSet::clear):
(WebCore::XPath::NodeSet::swap):
(WebCore::XPath::NodeSet::append):
(WebCore::XPath::NodeSet::markSorted):
(WebCore::XPath::NodeSet::isSorted):
Most of these methods just call Vector counterparts.
* xml/XPathParser.cpp: Updated the copyright notice.
* xml/XPathPath.cpp:
(WebCore::XPath::Filter::evaluate): Replacing NodeVector with NodeSet.
(WebCore::XPath::Path::evaluate): Ditto.
(WebCore::XPath::LocationPath::evaluate): Replacing NodeVector with NodeSet. This function
always marks the result as unsorted, because it is hard to tell whether a step breaks node order.
Identifying and implementing special cases when it is not necessary to do so is an important
future optimization.
* xml/XPathPath.h: Replacing NodeVector with NodeSet.
* xml/XPathPredicate.cpp:
(WebCore::XPath::EqTestOp::compare): Replacing NodeVector with NodeSet.
(WebCore::XPath::Union::evaluate): Replacing NodeVector with NodeSet. Currently, Union just
marks the result as unordered; we can consider using merge sort to avoid this.
* xml/XPathResult.cpp:
(WebCore::XPathResult::XPathResult): Replacing NodeVector with NodeSet.
(WebCore::XPathResult::singleNodeValue): Ditto.
(WebCore::XPathResult::snapshotLength): Ditto.
(WebCore::XPathResult::iterateNext): Ditto.
(WebCore::XPathResult::snapshotItem): Ditto.
(WebCore::XPathResult::convertTo): Ditto. Sort the result when requested to.
* xml/XPathResult.h: Replacing NodeVector with NodeSet.
* xml/XPathStep.cpp:
(WebCore::XPath::Step::evaluate): If the input is not sorted, mark the output as such, too.
(WebCore::XPath::Step::nodesInAxis): Fixed a number of bugs when enumerating with an
attribute context node.
(WebCore::XPath::Step::nodeTestMatches): Replacing NodeVector with NodeSet.
* xml/XPathStep.h: Ditto.
* xml/XPathUtil.cpp:
(WebCore::XPath::isValidContextNode): XPath data model doesn't put attribute data into child
nodes, so passing such node as a context could cause problems.
* xml/XPathUtil.h: Removed NodeVector typedef.
* xml/XPathValue.cpp:
(WebCore::XPath::Value::Value):
(WebCore::XPath::Value::toNodeSet):
(WebCore::XPath::Value::toBoolean):
(WebCore::XPath::Value::toNumber):
(WebCore::XPath::Value::toString):
* xml/XPathValue.h:
(WebCore::XPath::Value::):
(WebCore::XPath::Value::isNodeSet):
Replacing NodeVector with NodeSet.
2007-03-21 Mark Rowe <mrowe@apple.com>
Build fix.
* bindings/objc/WebScriptObject.mm:
(-[WebScriptObject methodForSelector:]):
(-[WebScriptObject respondsToSelector:]):
2007-03-21 Mark Rowe <mrowe@apple.com>
Reviewed by Tim Hatcher.
Fix for http://bugs.webkit.org/show_bug.cgi?id=13129.
Bug 13129: Democracy Player dies in NSException from WebScriptObject on startup.
Some cross-language scripting bridges use the presence of -(int)count to determine
whether to treat objects as sequence-like. All WebScriptObject's exposed this method
which lead to non-collection WebScriptObject's being mishandled by PyObjC. We now
expose -count only when the object we wrap looks like a collection from a JavaScript
point of view (eg, it has a length property).
* bindings/objc/WebScriptObject.mm:
(-[WebScriptObject _shouldRespondToCount]):
(-[WebScriptObject methodForSelector:]):
(-[WebScriptObject respondsToSelector:]):
(-[WebScriptObject _count]):
* bindings/objc/WebScriptObjectPrivate.h:
2007-03-20 Darin Adler <darin@apple.com>
* page/EventHandler.cpp: (WebCore::EventHandler::handleMouseMoveEvent):
Fix obvious typo in the change from last night -- forgot to assign to the variable.
2007-03-20 Dave Hyatt <hyatt@apple.com>
Refactor fonts a bit for portability.
Reviewed by aroben
* platform/Font.cpp:
(WebCore::Font::drawSimpleText):
(WebCore::Font::drawGlyphBuffer):
(WebCore::Font::floatWidthForSimpleText):
* platform/Font.h:
* platform/FontData.h:
(WebCore::FontData::isSystemFont):
(WebCore::FontData::scriptCache):
* platform/GlyphBuffer.h:
(WebCore::GlyphBuffer::add):
2007-03-20 Anders Carlsson <acarlsson@apple.com>
Reviewed by Adam.
Stub out a couple of CFNetwork backend functions.
* platform/network/ResourceHandle.h:
2007-03-19 Oliver Hunt <oliver@apple.com>
Reviewed by Ada.
Protect against possibility of JS detaching a frame (and losing its view)
midway through a mouse move.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseMoveEvent):
2007-03-19 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=13107
XPath should raise an exception when trying to parse an unknown function
Test: fast/xpath/invalid-functions.html
* xml/XPathFunctions.cpp:
(WebCore::XPath::createFunction): Return 0 if the function couldn't be created.
* xml/XPathGrammar.y: Handle nulls returned from createFunction().
2007-03-19 Adele Peterson <adele@apple.com>
Reviewed by Beth.
Fix for http://bugs.webkit.org/show_bug.cgi?id=13087
<rdar://problem/5064316> REGRESSION: Allow setting the checked attribute in js and in markup for unnamed radio buttons (dominos.com)
Test: fast/forms/radio_checked_name.html
We were matching a WinIE quirk that does not allow a user to check and uncheck an unnamed radio button. But they still
allow the checked attribute to be set in html, and changed in javascript. So this change matches that behavior.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseMappedAttribute): We no longer need a special call to setChecked when parsing the name
attribute, since we setChecked will now work with unnamed radio buttons.
(WebCore::HTMLInputElement::preDispatchEventHandler): Added comment.
(WebCore::HTMLInputElement::setChecked): Don't check for the unnamed radio button case here.
(WebCore::HTMLInputElement::postDispatchEventHandler): Don't call setChecked for unnamed radio buttons.
(WebCore::HTMLInputElement::defaultEventHandler): ditto.
2007-03-19 Adam Roben <aroben@apple.com>
Rubberstamped by Oliver.
* bridge/JavaScriptStatistics.cpp: Added missing header for
correctness.
2007-03-19 Andrew Wellington <proton@wiretapped.net>
Reviewed by Maciej.
Really set Xcode editor to use 4 space indentation (http://webkit.org/coding/coding-style.html)
* WebCore.xcodeproj/project.pbxproj:
2007-03-19 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5071074>
REGRESSION: Links that aren't fully selected copy and paste as only text
We stopped adding markup for all commonAncestorBlocks
and the ancestors of lastClosed up to them because it
was adding a lot of unnecessary markup.
* editing/markup.cpp:
(WebCore::createMarkup): Also include markup for nodes
up to an enclosing anchor. Cleaned up the code for
including special common ancestors a bit.
2007-03-19 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Lars Knoll.
Fix crash when opening a SVG document which contains SVG elements, but no <svg> root element.
Moving the mouse was crashing WebKit. Fixes svg/hixie/dynamic/006.xml.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::updateHitTestResult):
2007-03-19 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13117
REGRESSION (r14658): Flickering text fields when updating via javascript
* page/Frame.cpp:
(WebCore::Frame::forceLayout): Added a flag to allow partial relayout.
* page/Frame.h:
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge forceLayoutAdjustingViewSize:]): Allow partial relayout
if not adjusting view size.
(-[WebCoreFrameBridge needsLayout]): Changed to check for pending subtree
layout instead of just whether the root needs layout.
2007-03-18 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Maciej.
Make JS function calls on POD-types (ie. SVGLength) take effect.
Calling ie. newValueInSpecifiedUnits on SVGLength works as expected.
This worked fine before we switched to SVGLength POD type, so this
can be considered as P1 regression fix.
Partly fix svg/hixie/dynamic/005-broken.svg. We match Opera now though
it's not yet completly fixed. Setting baseVal attribute on SVGAnimatedString
doesn't work as expected - needs a seperated fix.
* bindings/scripts/CodeGeneratorJS.pm:
2007-03-19 Adele Peterson <adele@apple.com>
Reviewed by Adam.
Adding comments and a little cleanup from my last checkin.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::setSelectedIndex): Removed commented out assert. Added comment about how we use onChange.
(WebCore::HTMLSelectElement::selectAll): Added comment about how we use saveLastSelection and onChange.
(WebCore::HTMLSelectElement::dispatchFocusEvent): ditto.
(WebCore::HTMLSelectElement::dispatchBlurEvent): ditto.
(WebCore::HTMLSelectElement::menuListDefaultEventHandler): ditto.
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler): ditto.
(WebCore::HTMLSelectElement::menuListOnChange): Added assert that usesMenuList() is true.
(WebCore::HTMLSelectElement::listBoxOnChange): Added assert that usesMenuList() is false.
(WebCore::HTMLSelectElement::saveLastSelection): Added early return for menu lists.
2007-03-19 Mitz Pettel <mitz@webkit.org>
Reviewed by Tim Hatcher.
- fix http://bugs.webkit.org/show_bug.cgi?id=13091
REGRESSION (r20075): Wrong text style and pixel break in Apple Store Locator HUD
Test: fast/innerHTML/additional-inline-style.html
* editing/markup.cpp:
(WebCore::startMarkup): Changed to add inline style based on CSS rules only
in AnnotateForInterchange mode.
2007-03-19 Zack Rusin <zrusin@trolltech.com>
Compile fix.
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::update):
2007-03-19 Adam Roben <aroben@apple.com>
Reviewed by Hyatt and Maciej.
Renamed WebCoreJavaScript to JavaScriptStatistics and made it C++ as
part of <rdar://problem/5071653>.
All layout tests pass.
* WebCore.exp: Updated.
* WebCore.xcodeproj/project.pbxproj: Updated.
* bridge/JavaScriptStatistics.cpp: Moved from
bridge/mac/WebCoreJavaScript.mm, and converted to C++.
(WebCore::collect):
(WebCore::JavaScriptStatistics::objectCount):
(WebCore::JavaScriptStatistics::interpreterCount):
(WebCore::JavaScriptStatistics::protectedObjectCount):
(WebCore::JavaScriptStatistics::rootObjectTypeCounts):
(WebCore::JavaScriptStatistics::garbageCollect):
(WebCore::JavaScriptStatistics::garbageCollectOnAlternateThread):
(WebCore::JavaScriptStatistics::shouldPrintExceptions):
(WebCore::JavaScriptStatistics::setShouldPrintExceptions):
* bridge/JavaScriptStatistics.h: Added.
* bridge/mac/WebCoreJavaScript.h: Removed.
* bridge/mac/WebCoreJavaScript.mm: Removed.
2007-03-18 Maciej Stachowiak <mjs@apple.com>
Reviewed by Mark.
- avoid static construction (and global variable access) in a smarter, more portable way,
to later enable MUTLI_THREAD mode to work on other platforms and compilers.
* bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
* bindings/js/JSHTMLInputElementBase.cpp:
(WebCore::JSHTMLInputElementBaseFunction::JSHTMLInputElementBaseFunction):
* bindings/js/JSHTMLOptionElementConstructor.cpp:
(WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
* bindings/js/JSXMLHttpRequest.cpp:
(KJS::JSXMLHttpRequestConstructorImp::JSXMLHttpRequestConstructorImp):
* bindings/js/JSXSLTProcessor.cpp:
(KJS::XSLTProcessorConstructorImp::XSLTProcessorConstructorImp):
* bindings/js/kjs_dom.cpp:
(KJS::DOMNamedNodeMap::getOwnPropertySlot):
(KJS::DOMNamedNodesCollection::getOwnPropertySlot):
* bindings/js/kjs_events.cpp:
(KJS::JSAbstractEventListener::handleEvent):
* bindings/js/kjs_html.cpp:
(KJS::HTMLElementFunction::HTMLElementFunction):
(KJS::JSHTMLCollection::getOwnPropertySlot):
* bindings/js/kjs_window.cpp:
(KJS::ScheduledAction::execute):
* bindings/objc/WebScriptObject.mm:
* bindings/scripts/CodeGeneratorJS.pm:
2007-03-18 Andrew Wellington <proton@wiretapped.net>
Reviewed by Mark Rowe
Set Xcode editor to use 4 space indentation (http://webkit.org/coding/coding-style.html)
* WebCore.xcodeproj/project.pbxproj:
2007-03-18 David Hyatt <hyatt@apple.com>
Fix for REGRESSION bug 13108, frame borders being painted when they shouldn't be. Rework both frame borders
and resizing to be more like other browsers.
Reviewed by ggaren
fast/frames/no-frame-borders.html
* html/HTMLFrameElement.cpp:
(WebCore::HTMLFrameElement::HTMLFrameElement):
(WebCore::HTMLFrameElement::attach):
(WebCore::HTMLFrameElement::parseMappedAttribute):
* html/HTMLFrameElement.h:
(WebCore::HTMLFrameElement::hasFrameBorder):
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::HTMLFrameElementBase):
(WebCore::HTMLFrameElementBase::parseMappedAttribute):
* html/HTMLFrameElementBase.h:
* html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::attach):
* html/HTMLFrameSetElement.h:
(WebCore::HTMLFrameSetElement::hasFrameBorder):
* html/HTMLIFrameElement.cpp:
(WebCore::HTMLIFrameElement::HTMLIFrameElement):
* rendering/RenderFrame.cpp:
(WebCore::RenderFrame::edgeInfo):
* rendering/RenderFrame.h:
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::paint):
(WebCore::RenderFrameSet::GridAxis::resize):
(WebCore::RenderFrameSet::fillFromEdgeInfo):
(WebCore::RenderFrameSet::computeEdgeInfo):
(WebCore::RenderFrameSet::edgeInfo):
(WebCore::RenderFrameSet::layout):
(WebCore::RenderFrameSet::startResizing):
(WebCore::RenderFrameSet::continueResizing):
(WebCore::RenderFrameSet::canResizeRow):
(WebCore::RenderFrameSet::canResizeColumn):
(WebCore::RenderFrameSet::splitPosition):
(WebCore::RenderFrameSet::hitTestSplit):
(WebCore::RenderFrameSet::dump):
* rendering/RenderFrameSet.h:
(WebCore::):
(WebCore::FrameEdgeInfo::FrameEdgeInfo):
(WebCore::FrameEdgeInfo::preventResize):
(WebCore::FrameEdgeInfo::allowBorder):
(WebCore::FrameEdgeInfo::setPreventResize):
(WebCore::FrameEdgeInfo::setAllowBorder):
2007-03-19 Mark Rowe <mrowe@apple.com>
Rubber-stamped by Brady.
Update references to bugzilla.opendarwin.org with bugs.webkit.org.
* ChangeLog:
* WebCore.vcproj/WebCore/build-generated-files.sh:
* manual-tests/ATSU-bad-layout.html:
* manual-tests/accidental-strict-mode.html:
* manual-tests/applet-param-no-name.html:
* manual-tests/bidi-parens.html:
* manual-tests/bugzilla-3855.html:
* manual-tests/bugzilla-4840.html:
* manual-tests/bugzilla-6821.html:
* manual-tests/containing-block-position-chage.html:
* manual-tests/contenteditable-link.html:
* manual-tests/css3-cursor-fallback-quirks.html:
* manual-tests/css3-cursor-fallback-strict.html:
* manual-tests/custom-cursors.html:
* manual-tests/dictionary-scrolled-iframe.html:
* manual-tests/dom-manipulation-on-resize.html:
* manual-tests/drag-image-to-address-bar.html:
* manual-tests/empty-link-target.html:
* manual-tests/empty-title-popup.html:
* manual-tests/first-line-style-crash.html:
* manual-tests/invalid-mouse-event.html:
* manual-tests/left-overflow-repaint.html:
* manual-tests/linkjump-3.html:
* manual-tests/log-keypress-events.html:
* manual-tests/named-window-blank-target.html:
* manual-tests/plain-text-paste.html:
* manual-tests/plugin-controller-datasource.html:
* manual-tests/pre-tab-selection-rect.html:
* manual-tests/redirection-target.html:
* manual-tests/redraw-page-cache-visited-links.html:
* manual-tests/reset-initiatedDrag.html:
* manual-tests/resources/named-window-blank-target-step2.html:
* manual-tests/resources/named-window-blank-target-step3.html:
* manual-tests/resources/named-window-blank-target-step4.html:
* manual-tests/resources/redraw-page-cache-visited-links-2.html:
* manual-tests/scrollbar-hittest.html:
* manual-tests/scrollbar-hittest2.html:
* manual-tests/subview-click-assertion.html:
* manual-tests/tabbing-input-google.html:
* manual-tests/text-field-autoscroll.html:
* manual-tests/textarea-after-stylesheet-link.html:
* manual-tests/textarea-focus.html:
* manual-tests/whitespace-pre-affinity.html:
2007-03-18 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed - gdk build fix.
* platform/gdk/ScrollViewGdk.cpp:
(WebCore::ScrollView::update): add a stub
2007-03-18 Brady Eidson <beidson@apple.com>
Reviewed by Hyatt
http://bugs.webkit.org/show_bug.cgi?id=13111
When stopped a load before it completes, partial images become the
broken image icon
* loader/loader.cpp:
(WebCore::Loader::didFail): Split off into a method that knows the
difference between failed and cancelled. If a load is cancelled,
don't call error() on the object - only remove it from the cache
(WebCore::Loader::cancelRequests): Call didFail(loader, true)
* loader/loader.h: Added didFail(SubresourceLoader*, bool cancelled)
2007-03-18 Mitz Pettel <mitz@webkit.org>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=13101
REGRESSION (NativeTextField): Specifying word-wrap:break-word makes text field wrap
Test: fast/forms/input-text-word-wrap.html
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::createInnerTextStyle): Force the inner block to
'word-wrap:normal'.
2007-03-18 Dan Waylonis <waylonis@mac.com>
Reviewed by Tim Hatcher.
Fix http://bugs.webkit.org/show_bug.cgi?id=13005
Bug 13005: WebScriptObject +throwException needs NULL check.
Add checking for NULL interpreter before throwing exception.
* bindings/objc/WebScriptObject.mm:
(+[WebScriptObject throwException:]):
2007-03-18 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Fixed http://bugs.webkit.org/show_bug.cgi?id=13106
REGRESSION: Incomplete document.all implementation breaks abtelectronics.com
(Style Change Through JavaScript Blanks Content)
When indexing into collections, treat the empty string as an invalid argument,
instead of the number 0.
* bindings/js/kjs_html.cpp:
(KJS::JSHTMLCollection::getOwnPropertySlot):
(KJS::JSHTMLCollection::callAsFunction):
(KJS::JSHTMLCollectionPrototypeFunction::callAsFunction):
2007-03-18 David Hyatt <hyatt@apple.com>
Use fillRect instead of drawLine, since drawLine has some odd behavior (it's only used for borders).
Reviewed by aroben
* platform/graphics/IntRect.h:
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::paintColumnBorder):
(WebCore::RenderFrameSet::paintRowBorder):
2007-03-18 David Hyatt <hyatt@apple.com>
Change the frameborder color to be light gray for framesets.
Reviewed by aroben
* rendering/RenderFrameSet.cpp:
(WebCore::borderFillColor):
(WebCore::RenderFrameSet::paintColumnBorder):
(WebCore::RenderFrameSet::paintRowBorder):
2007-03-18 David Hyatt <hyatt@apple.com>
Make iframes work properly with frameborder="0".
Reviewed by aroben
* html/HTMLIFrameElement.cpp:
(WebCore::HTMLIFrameElement::mapToEntry):
(WebCore::HTMLIFrameElement::parseMappedAttribute):
2007-03-18 David Hyatt <hyatt@apple.com>
Add a 2px border by default to <iframe>s for compatibility with other browsers.
Reviewed by aroben
* css/html4.css:
2007-03-18 David Hyatt <hyatt@apple.com>
Move frame borders out of WebKit and into WebCore.
Reviewed by aroben, olliej
* bridge/mac/FrameViewMac.mm:
* css/html4.css:
* html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::HTMLFrameSetElement):
(WebCore::HTMLFrameSetElement::mapToEntry):
(WebCore::HTMLFrameSetElement::parseMappedAttribute):
(WebCore::HTMLFrameSetElement::attach):
* html/HTMLFrameSetElement.h:
(WebCore::HTMLFrameSetElement::hasBorderColor):
* page/FrameView.cpp:
(WebCore::FrameViewPrivate::FrameViewPrivate):
* page/FrameView.h:
* page/mac/WebCoreFrameBridge.h:
* platform/graphics/IntRect.h:
(WebCore::IntRect::topLeft):
(WebCore::IntRect::topRight):
(WebCore::IntRect::bottomLeft):
(WebCore::IntRect::bottomRight):
* rendering/RenderFrame.cpp:
(WebCore::RenderFrame::viewCleared):
* rendering/RenderFrameSet.cpp:
(WebCore::borderStartEdgeColor):
(WebCore::borderEndEdgeColor):
(WebCore::RenderFrameSet::paintColumnBorder):
(WebCore::RenderFrameSet::paintRowBorder):
(WebCore::RenderFrameSet::paint):
* rendering/RenderFrameSet.h:
* rendering/RenderPartObject.cpp:
(WebCore::RenderPartObject::viewCleared):
* rendering/RenderView.cpp:
(WebCore::RenderView::repaintViewRectangle):
2007-03-17 David Hyatt <hyatt@apple.com>
Make onload do an explicit paint when a top-level document is ready (to ensure that a first paint always
happens before any timers set by the onload can fire).
Reviewed by aroben
* dom/Document.cpp:
(WebCore::Document::implicitClose):
* platform/ScrollView.h:
* platform/mac/ScrollViewMac.mm:
(WebCore::ScrollView::update):
2007-03-17 Dave Hyatt <hyatt@apple.com>
Prevent starvation of user input and painting when processing timers.
If we are already in the processing of a custom timer message, don't allow that
processing to do another PostMessage. Force SetTimer to be used instead.
Reviewed by ggaren
* platform/win/SharedTimerWin.cpp:
(WebCore::TimerWindowWndProc):
(WebCore::setSharedTimerFireTime):
2007-03-17 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
Fixed <rdar://problem/5070967> REGRESSION (r20211): Repro crash when
closing View Source window
I award myself 0 points, and may God have mercy on my soul.
* bindings/js/kjs_proxy.cpp:
(WebCore::KJSProxy::~KJSProxy):
2007-03-17 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed - gdk build fix.
* platform/gdk/TemporaryLinkStubs.cpp:
(Pasteboard::writeURL):
2007-03-17 David Hyatt <hyatt@apple.com>
Fix tiny PLT regression. Don't examine the border/background data for RenderImage when images change
unless we actually have a border/background.
Reviewed by Brady
* rendering/RenderImage.cpp:
(WebCore::RenderImage::imageChanged):
2007-03-17 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Sam Weinig.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=13046 (CSS styles on hover and focus are broken for <use>)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12838 (SVG <use> CSS styles broken)
Added test: svg/custom/use-css-events.svg
In general this fixes the peepo.co.uk website.
Forgot to pass the actual StyleChange to the recalcStyle() function,
when calling it on the shadow tree root element.
* ksvg2/svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::recalcStyle):
2007-03-17 Timothy Hatcher <timothy@apple.com>
Reviewed by Mark Rowe.
Made Version.xcconfig smarter when building for different configurations.
Now uses the 522+ OpenSource version for Debug and Release, while using the
full 522.4 version for Production builds. The system prefix is also computed
based on the current system, so 4522.4 on Tiger and 5522.4 on Leopard.
* Configurations/Version.xcconfig:
* Configurations/WebCore.xcconfig:
2007-03-17 Antti Koivisto <antti@apple.com>
Reviewed by Adele.
Fix http://bugs.webkit.org/show_bug.cgi?id=12595
REGRESSION: Can't add item to cart at lnt.com (JS type error)
<rdar://problem/4722863>
Emulate Firefox behavior where form elements accessed by a name
can be accessed with that name later even if the name changes or
even if element is removed from the document.
This is loosely based on Darin's earlier patch for the same problem but
is much less expansive. It takes somewhat different approach to more closely
mimic Firefox behavior. Includes expanded test case.
* bindings/js/JSHTMLFormElementCustom.cpp:
(WebCore::JSHTMLFormElement::canGetItemsForName):
Use new the HTMLFormElement::getNamedElements() method
(WebCore::JSHTMLFormElement::nameGetter):
Use new the HTMLFormElement::getNamedElements() method
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::HTMLFormElement):
(WebCore::HTMLFormElement::~HTMLFormElement):
(WebCore::HTMLFormElement::elementForAlias):
(WebCore::HTMLFormElement::addElementAlias):
Maintain a map of known element aliases
(WebCore::HTMLFormElement::getNamedElements):
Get a list of elements matching the name, based both their
current names and known aliases (earlier names).
Keep the alias list in sync.
* html/HTMLFormElement.h:
2007-03-17 Adele Peterson <adele@apple.com>
Reviewed by Hyatt.
Fix for <rdar://problem/4990050> REGRESSION: onchange gets fired when clicking on a programmatically selected element in a listbox
http://bugs.webkit.org/show_bug.cgi?id=12725
Test: updated fast/forms/listbox-onchange.html
Added HTMLSelectElement::saveLastSelection that is called before changing a selection that could result
in onChange being called. m_lastOnChangeIndex and m_lastOnChangeSelection no longer have to be up-to date all the time,
they just have to be up-to-date before we execute an action that may trigger onChange.
* html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::setSelectedState): Added.
The HTMLSelectElement will only set an option's selected state with this method. This ensures
that notifyOptionSelected won't get called when the call originates from the select element.
* html/HTMLOptionElement.h:
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::deselectItems): Calls setSelectedState.
(WebCore::HTMLSelectElement::setSelectedIndex): ditto. Don't update the last selection variables here. Scroll to the new selection.
The scrolling call used to only be in notifyOptionSelected. There's no reason we shouldn't scroll when the selection is set through
the HTMLSelectElement.
(WebCore::HTMLSelectElement::setValue): Call setSelectedIndex to update all options selected state.
(WebCore::HTMLSelectElement::restoreState): Call setSelectedState.
(WebCore::HTMLSelectElement::selectAll): Call saveLastSelection before making the selection, and calling onChange.
(WebCore::HTMLSelectElement::recalcListItems): Call setSelectedState. Don't need to save selection here anymore,
since it will get saved before we call onChange.
(WebCore::HTMLSelectElement::reset): ditto.
(WebCore::HTMLSelectElement::dispatchFocusEvent): Added. Call saveLastSelection for menu lists, since onChange can be fired
on blur.
(WebCore::HTMLSelectElement::dispatchBlurEvent): Call menuListOnChange.
(WebCore::HTMLSelectElement::menuListDefaultEventHandler): Call saveLastSelection before showing the popup window.
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler): Call saveLastSelection during mousedown (to prepare for an
onchange during mouseup, or after autoscroll).
(WebCore::HTMLSelectElement::updateListBoxSelection): Call setSelectedState.
(WebCore::HTMLSelectElement::menuListOnChange): Added. Compares the m_lastOnChangeIndex to the selectedIndex().
(WebCore::HTMLSelectElement::listBoxOnChange): Move the m_lastOnChangeSelection creation to saveLastSelection.
(WebCore::HTMLSelectElement::saveLastSelection): Added. Sets m_lastOnChangeIndex or m_lastOnChangeSelection.
* html/HTMLSelectElement.h:
* platform/PopupMenu.h:
2007-03-16 Oliver Hunt <oliver@apple.com>
Reviewed by Hyatt.
The old canSaveAsWebArchive call was necessary as stand alone
images used to be rendered by ImageDocument.
Fixes rdar://problem/5061252
* dom/Clipboard.cpp:
* dom/Clipboard.h:
(WebCore::Clipboard::setDragHasStarted):
* page/DragClient.h:
(WebCore::DragClient::declareAndWriteDragImage):
* platform/mac/ClipboardMac.mm:
(WebCore::ClipboardMac::declareAndWriteDragImage):
2007-03-16 Anders Carlsson <acarlsson@apple.com>
Reviewed by Maciej.
<rdar://problem/4869095>
default content type changed for XMLHttpRequest POSTs changed (breaks Flickrator 0.1 widget)
* xml/xmlhttprequest.cpp:
(WebCore::XMLHttpRequest::send):
2007-03-16 Brady Eidson <beidson@apple.com>
Rubberstamped by Tim Hatcher
Update the hash table header for Window object properties
* bindings/js/kjs_window.cpp:
2007-03-16 Brady Eidson <beidson@apple.com>
Reviewed by Anders
<rdar://problem/5061826> and
http://bugs.webkit.org/show_bug.cgi?id=12863
Implement window.stop()
* bindings/js/kjs_window.cpp:
(KJS::WindowFunc::callAsFunction): Add case Window::Stop
* bindings/js/kjs_window.h:
(KJS::Window::): Add "Stop"
2007-03-16 Geoffrey Garen <ggaren@apple.com>
Reviewed by Brady Eidson.
Fixed dir creation to account for already existing dirs and missing leading
dirs in path.
* loader/icon/IconDatabase.cpp:
(WebCore::makeAllDirectories):
2007-03-16 David Hyatt <hyatt@apple.com>
Fix for 13084, assertion failure in the Cache. Convert the client list
to a HashCountedSet so that multiple refs and derefs are allowed.
Fix RenderImage so that if it has the same image used as a background/border
and as the foreground that it will repaint properly (can be tested using
border-image and a foreground image).
Optimize list marker so that it doesn't waste time in the base class method,
since list markers don't support background or border images.
Reviewed by andersca
* ChangeLog:
* loader/CachedResource.cpp:
(WebCore::CachedResource::ref):
* loader/CachedResource.h:
* loader/CachedResourceClientWalker.cpp:
(WebCore::CachedResourceClientWalker::CachedResourceClientWalker):
* loader/CachedResourceClientWalker.h:
* rendering/RenderImage.cpp:
(WebCore::RenderImage::imageChanged):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::imageChanged):
2007-03-16 Geoffrey Garen <ggaren@apple.com>
Reviewed by Anders Carlsson.
Fixed <rdar://problem/5065399> REGRESSION: leaks in Frame::bindingRootObject
seen on buildbot
The problem was that we were initializing the same WebScriptObject twice.
This caused it to leak its original set of ivars.
I think some refactoring could prevent this situation from arising in the
first place, but I'm just adding a check at the call site for now, to do
the simplest thing.
* bindings/objc/WebScriptObject.mm:
(-[WebScriptObject _setImp:originRootObject:rootObject:]): Added ASSERTs
against multiple calls.
* bindings/objc/WebScriptObjectPrivate.h: Renamed _initializeWithObjectImp
to setImp because "init" vs "initialize" was a too subtle indication that
one was a Cocoa initializer and one was not.
2007-03-16 Lars Knoll <lars@trolltech.com>
don't use #import in .cpp files.
* editing/qt/EditorQt.cpp:
2007-03-16 Lars Knoll <lars@trolltech.com>
Fix the Qt build once again.
* platform/qt/PasteboardQt.cpp:
(WebCore::Pasteboard::Pasteboard):
(WebCore::Pasteboard::writeSelection):
(WebCore::Pasteboard::plainText):
(WebCore::Pasteboard::documentFragment):
(WebCore::Pasteboard::writeURL):
(WebCore::Pasteboard::writeImage):
(WebCore::Pasteboard::clear):
2007-03-15 Shrikant Gangoda <shrikant.gangoda@celunite.com>
Gdk build fix.
* loader/gdk/FrameLoaderClientGdk.cpp:
(WebCore::FrameLoaderClientGdk::blockedError):
* loader/gdk/FrameLoaderClientGdk.h:
2007-03-15 Beth Dakin <bdakin@apple.com>
Reviewed by Geoff.
Fix for http://bugs.webkit.org/show_bug.cgi?id=13088 REGRESSION
(r19761-19779): Copy image no longer includes image address
(rdar://5067927)
writeURL() does not need an isImage parameter. Now that it accepts
the types as a parameter, we can just declare the appropriate image
types within writeImage and send them to writeURL(). Also,
declaring the types twice is what broke this.
* platform/Pasteboard.h:
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::writeURL):
(WebCore::Pasteboard::writeImage):
2007-03-15 Adele Peterson <adele@apple.com>
Reviewed by Kevin Decker.
Fix for <rdar://problem/4926179> Text in menulist control should never update if menu is open
* rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::updateFromElement):
Only setTextFromOption if the menu isn't visible.
2007-03-15 Brady Eidson <beidson@apple.com>
Reviewed by Oliver
A few platform specific tweaks
* platform/cf/RetainPtr.h:
(WebCore::RetainPtr::releaseRef): Fixed releaseRef to work with CF
* platform/network/ResourceHandle.h: Added a "releaseRef" style call
2007-03-15 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff and Steve.
* config.h: Remove unneeded hack.
2007-03-15 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/5062376>
REGRESSION: In Mail and Gmail, can't change alignment to text after it has been applied
Bring back the remove step in applyBlockStyle. It's
necessary because addBlockStyleIfNeeded assumes that
the properties it adds aren't already on the block that
it adds them to.
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyBlockStyle):
Bring back the remove step (added a testcase).
Don't do the add step if m_removeOnly is true (no testcase
because there aren't any clients using removeOnly functionality
to remove styles yet, only styled elemets).
Moved the code for creating new blocks up one level
to this function so that we can pass blocks to removeCSSStyle.
When converting VisiblePositions to indices and vice versa,
use the highest node in the shadow tree if we're in one as
the scope (working on a testcase).
(WebCore::ApplyStyleCommand::addBlockStyle): Moved code to
applyBlockStyle.
* editing/ApplyStyleCommand.h:
2007-03-15 Brady Eidson <beidson@apple.com>
Reviewed by Maciej
<rdar://problem/4429701>
Implements a port blocking black list that matches Firefox's
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::blockedError): Call through to the client for blockedError
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h: Get the "port blocked" error for the current platform
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::wasBlocked): ResourceHandleClient method to pass on the didFail(error)
(WebCore::ResourceLoader::blockedError): Following the pattern of "CancelledError()", get the
error to fail with for the didFail() call
* loader/ResourceLoader.h:
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::blockedError): Added stub
* platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::create): If the port is blocked, create the handle but schedule it for
deferred failure on a timer
(WebCore::ResourceHandle::scheduleBlockedFailure): Do the timer scheduling
(WebCore::ResourceHandle::fireBlockedFailure): Fire the timer here
(WebCore::ResourceHandle::portAllowed): Implements checking of Mozilla's
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::wasBlocked): Virtual for clients to get the "blocked" message
2007-03-15 Beth Dakin <bdakin@apple.com>
Reviewed by Hyatt.
Fix for <rdar://problem/5065396> REGRESSION: leaks in
RenderBlock::layoutInlineChildren seen on buildbot
This leak appeared after http://trac.webkit.org/projects/webkit/
changeset/20188. This change shifted line boxes around in
removeChild(). But since removeChild() calls
setNeedsLayoutAndMinMaxRecalc(), all of the line boxes will be
removed once we actually lay out anyway. So this patch fixes the
leak by deleting the line boxes instead of shifting them around.
* editing/IndentOutdentCommand.cpp:
(WebCore::IndentOutdentCommand::outdentParagraph): Call into
updateLayout(). This fixes an assertion I got in editing/
execCommand/4976800.html This is very similar to the line box fix I
made recently (http://trac.webkit.org/projects/webkit/changeset/
20177). We need to update layout before relying on VisiblePositions
after removing a node.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::deleteLinesForBlock): New helper function
since this functionality is needed in three places now.
(WebCore::RenderBlock::makeChildrenNonInline): Call into new
deleteLinesForBlock().
(WebCore::RenderBlock::removeChild): Same.
* rendering/RenderBlock.h:
2007-03-15 Timothy Hatcher <timothy@apple.com>
Reviewed by John.
* Factored out most of our common build settings into .xcconfig files. Anything that was common in
each build configuration was factored out into the shared .xcconfig file.
* Adds a Version.xcconfig file to define the current framework version, to be used in other places.
* Use the new $(BUNDLE_VERSION) (defined in Version.xcconfig) in the preprocessed Info.plist.
* Use the versions defined in Version.xcconfig to set $(DYLIB_CURRENT_VERSION).
* Configurations/Base.xcconfig: Added.
* Configurations/DebugRelease.xcconfig: Added.
* Configurations/Version.xcconfig: Added.
* Configurations/WebCore.xcconfig: Added.
* Info.plist:
* WebCore.xcodeproj/project.pbxproj:
2007-03-15 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed - gdk build fixes.
* platform/gdk/EditorClientGdk.cpp:
(WebCore::EditorClientGdk::handleKeypress):
* platform/graphics/cairo/ImageSourceCairo.cpp:
(WebCore::ImageSource::setData):
* platform/graphics/gdk/ImageGdk.cpp:
(WebCore::Image::loadPlatformResource):
2007-03-14 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
~2x speed up of 5k rich text paste:
http://shakespeare.mit.edu/hamlet/full.html
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::doApply): Remove the top
level style span if it's unnecessary before inserting
into the document, it's faster than doing it after.
* editing/ReplaceSelectionCommand.h: Exposed
ReplacementFragment::removeNodePreservingChildren so that
the style span can be removed using non-undoable removes,
like the rest of the removes done on the ReplacementFragment.
* editing/markup.cpp:
(WebCore::createMarkup): Make the style span the top level
element, otherwise it's useless. This also facilitates the
optimization mentioned above.
When including markup for a fully selected root, include markup
for all the nodes beneath that fully selected root, to preserve
the structure and appearance of the copied markup. Did this
by merging with the code for adding markup for descendants of
special commonAncestorBlocks.
2007-03-15 Beth Dakin <bdakin@apple.com>
Rubber-stamped by Adele.
Rolling out http://trac.webkit.org/projects/webkit/changeset/20148
(which is a fix for http://bugs.webkit.org/show_bug.cgi?id=12595
and rdar://4722863) because it causes a horrible memory-trasher.
* bindings/js/JSHTMLFormElementCustom.cpp:
(WebCore::JSHTMLFormElement::canGetItemsForName):
(WebCore::JSHTMLFormElement::nameGetter):
* bindings/js/kjs_dom.cpp:
(KJS::):
(KJS::DOMNamedNodesCollection::DOMNamedNodesCollection):
(KJS::DOMNamedNodesCollection::lengthGetter):
(KJS::DOMNamedNodesCollection::indexGetter):
(KJS::DOMNamedNodesCollection::getOwnPropertySlot):
* bindings/js/kjs_dom.h:
(KJS::DOMNamedNodesCollection::classInfo):
* bindings/js/kjs_html.cpp:
(KJS::JSHTMLCollection::getNamedItems):
* dom/ChildNodeList.cpp:
(WebCore::ChildNodeList::ChildNodeList):
(WebCore::ChildNodeList::length):
(WebCore::ChildNodeList::item):
(WebCore::ChildNodeList::nodeMatches):
* dom/ChildNodeList.h:
* dom/NameNodeList.cpp:
(WebCore::NameNodeList::NameNodeList):
(WebCore::NameNodeList::item):
(WebCore::NameNodeList::nodeMatches):
* dom/NameNodeList.h:
(WebCore::NameNodeList::rootNodeAttributeChanged):
* dom/Node.cpp:
(WebCore::TagNodeList::TagNodeList):
(WebCore::TagNodeList::nodeMatches):
(WebCore::Node::registerNodeList):
(WebCore::Node::unregisterNodeList):
* dom/Node.h:
* dom/NodeList.cpp:
(WebCore::NodeList::NodeList):
(WebCore::NodeList::~NodeList):
(WebCore::NodeList::recursiveLength):
(WebCore::NodeList::itemForwardsFromCurrent):
(WebCore::NodeList::itemBackwardsFromCurrent):
(WebCore::NodeList::recursiveItem):
(WebCore::NodeList::itemWithName):
(WebCore::NodeList::rootNodeChildrenChanged):
* dom/NodeList.h:
(WebCore::NodeList::rootNodeAttributeChanged):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::HTMLFormElement):
(WebCore::HTMLFormElement::~HTMLFormElement):
(WebCore::HTMLFormElement::formData):
(WebCore::HTMLFormElement::parseMappedAttribute):
(WebCore::HTMLFormElement::removeFormElement):
* html/HTMLFormElement.h:
* html/HTMLGenericFormElement.cpp:
(WebCore::HTMLGenericFormElement::parseMappedAttribute):
(WebCore::HTMLGenericFormElement::insertedIntoTree):
* html/HTMLGenericFormElement.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseMappedAttribute):
2007-03-15 Geoffrey Garen <ggaren@apple.com>
Added an assert to help catch a bug. Hopefully someone will hit it!
* bindings/js/kjs_proxy.cpp:
(WebCore::KJSProxy::~KJSProxy):
2007-03-14 Oliver Hunt <oliver@apple.com>
Reviewed by Adele.
Fix for rdar://problem/5061737.
This was a regression from the original Objective-C -> C++ conversion
for the drag logic. We don't need to call Range::startNode as we just
need the document that contains the range.
* page/DragController.cpp:
(WebCore::documentFragmentFromDragData):
2007-03-14 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- http://bugs.webkit.org/show_bug.cgi?id=13071
REGRESSION: Plain text files no longer wrap lines longer than the width of the browser window
Test: fast/loader/text-document-wrapping.html
* loader/TextDocument.cpp:
(WebCore::TextTokenizer::write): Specified word-wrap:break-word for the <pre> element.
2007-03-14 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13072
REGRESSION (r15617): white-space: pre-wrap breaks off the last character of a wide word
Test: fast/text/whitespace/pre-wrap-last-char.html
* rendering/bidi.cpp:
(WebCore::RenderBlock::findNextLineBreak): Undid the change from r15617.
2007-03-14 David Hyatt <hyatt@apple.com>
Add asserts to help catch double refs and double derefs of CachedResources.
Reviewed by mjs
* loader/CachedResource.cpp:
(WebCore::CachedResource::ref):
(WebCore::CachedResource::deref):
2007-03-14 Alice Liu <alice.liu@apple.com>
Rubber-stamped by Hyatt.
Adding null check to prevent the crash that happens on 2nd run of iBench HTML load test
* loader/icon/IconDataCache.cpp:
(WebCore::IconDataCache::writeToDatabase):
=== Safari-5522.4 ===
2007-03-14 Adele Peterson <adele@apple.com>
Reviewed by Adam.
Fix for <rdar://problem/5062898> REGRESSION: autocomplete window in text fields doesn't come up
When we moved the initialization of a bunch of variables in the HTMLFormElement constructor, m_autocomplete accidently got initialized to false.
* html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::HTMLFormElement):
2007-03-14 Steve Falkenburg <sfalken@apple.com>
Reviewed by Adam.
Added missing null check in case this is called on a subframe
that hasn't started loading.
* page/Frame.cpp:
(WebCore::Frame::setMarkedTextMatchesAreHighlighted): Check for a null document.
2007-03-14 Antti Koivisto <antti@apple.com>
Reviewed by Geoff.
Fix http://bugs.webkit.org/show_bug.cgi?id=13060
REGRESSION: Repro ASSERT failure in Cache::adjustSize running layout tests
<rdar://5060208>
Script evaluation may have dereffed the CachedScript object already, causing double deref and
eventually m_liveResourcesSize underflow.
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::notifyFinished):
2007-03-14 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Added InsertTab, InsertBacktab, InsertLineBreak, and InsertNewline to the editing command table.
Added Event parameter to execCommand, and to all of the enabled and exec functions. Right now,
the event is only used by the newly added commands. But in the future, many (and possibly all) of
these editing commands will need to consider the event so they are applied to the correct selection.
* WebCore.exp:
* editing/Editor.cpp:
(WebCore::execCopy):
(WebCore::execCut):
(WebCore::execDelete):
(WebCore::execBackwardDelete):
(WebCore::execForwardDelete):
(WebCore::execMoveBackward):
(WebCore::execMoveBackwardAndModifySelection):
(WebCore::execMoveUpByPageAndModifyCaret):
(WebCore::execMoveDown):
(WebCore::execMoveDownAndModifySelection):
(WebCore::execMoveForward):
(WebCore::execMoveForwardAndModifySelection):
(WebCore::execMoveDownByPageAndModifyCaret):
(WebCore::execMoveLeft):
(WebCore::execMoveLeftAndModifySelection):
(WebCore::execMoveRight):
(WebCore::execMoveRightAndModifySelection):
(WebCore::execMoveToBeginningOfDocument):
(WebCore::execMoveToBeginningOfDocumentAndModifySelection):
(WebCore::execMoveToBeginningOfSentence):
(WebCore::execMoveToBeginningOfSentenceAndModifySelection):
(WebCore::execMoveToBeginningOfLine):
(WebCore::execMoveToBeginningOfLineAndModifySelection):
(WebCore::execMoveToBeginningOfParagraph):
(WebCore::execMoveToBeginningOfParagraphAndModifySelection):
(WebCore::execMoveToEndOfDocument):
(WebCore::execMoveToEndOfDocumentAndModifySelection):
(WebCore::execMoveToEndOfSentence):
(WebCore::execMoveToEndOfSentenceAndModifySelection):
(WebCore::execMoveToEndOfLine):
(WebCore::execMoveToEndOfLineAndModifySelection):
(WebCore::execMoveToEndOfParagraph):
(WebCore::execMoveToEndOfParagraphAndModifySelection):
(WebCore::execMoveParagraphBackwardAndModifySelection):
(WebCore::execMoveParagraphForwardAndModifySelection):
(WebCore::execMoveUp):
(WebCore::execMoveUpAndModifySelection):
(WebCore::execMoveWordBackward):
(WebCore::execMoveWordBackwardAndModifySelection):
(WebCore::execMoveWordForward):
(WebCore::execMoveWordForwardAndModifySelection):
(WebCore::execMoveWordLeft):
(WebCore::execMoveWordLeftAndModifySelection):
(WebCore::execMoveWordRight):
(WebCore::execMoveWordRightAndModifySelection):
(WebCore::execPaste):
(WebCore::execSelectAll):
(WebCore::execToggleBold):
(WebCore::execToggleItalic):
(WebCore::execRedo):
(WebCore::execUndo):
(WebCore::execInsertTab):
(WebCore::execInsertBacktab):
(WebCore::execInsertNewline):
(WebCore::execInsertLineBreak):
(WebCore::enabled):
(WebCore::canPaste):
(WebCore::hasEditableSelection):
(WebCore::hasEditableRangeSelection):
(WebCore::hasRangeSelection):
(WebCore::hasRichlyEditableSelection):
(WebCore::canRedo):
(WebCore::canUndo):
(WebCore::CommandEntry::):
(WebCore::Editor::toggleBold):
(WebCore::Editor::execCommand): Added optional event parameter.
(WebCore::Editor::insertText): Added. Calls handleTextInputEvent.
(WebCore::Editor::insertTextWithoutSendingTextEvent): Renamed from insertText.
Performs the actual insertion without dispatching any event.
* editing/Editor.h:
* page/EventHandler.cpp: (WebCore::EventHandler::defaultTextInputEventHandler):
Call insertTextWithoutSendingTextEvent.
2007-03-14 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
~3x speedup pasting 5k lines of rich text:
http://shakespeare.mit.edu/hamlet/full.html
~2x speedup pasting 10k lines of plain text
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::computedStyle): Added for convenience.
* css/CSSComputedStyleDeclaration.h:
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::removeRedundantStyles):
The code that pushed down the top level style span had
a bug in it that made it do unnecessary work. Instead of
fixing the bug I removed the code because it was used to
help see more redundancies in second level style spans, but
createMarkup now *only* creates a top level style span.
Only remove redundant styles from style spans and only remove
unstyled elements if they are style spans. FF doesn't
remove redundant styles from elements, or remove redundant
font tags on copy/paste. We could offer this functionality
through a separate "cleanup" command.
* editing/markup.cpp:
(WebCore::createMarkup): Only add markup for ancestors of
lastClosed if we're including markup for acommonAncestorBlock
(we do this for commonAncestorBlocks like tables and lists),
otherwise it's unnecessary/redundant.
2007-03-14 Anders Carlsson <acarlsson@apple.com>
Reviewed by Ada.
Make sure to call ResourceLoader::didReceiveData to ensure that there's a shared buffer with the resource
data, since SubresourceLoaderClients now make use of that buffer.
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didReceiveData):
2007-03-14 Administrator <acarlsson@apple.com>
Get the size from the shared buffer.
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::ImageSource::setData):
* platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::dataChanged):
2007-03-14 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt, thumbs up by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12782
Reproducible crash in BidiContext::deref
Test: fast/dynamic/anonymous-block-orphaned-lines.html
* rendering/InlineBox.cpp:
(WebCore::InlineBox::root): Added an assertion that we return a root inline box.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::removeChild): Added code to adopt the line boxes of
anonymous blocks being destroyed instead of leaving them orphaned, which
is what caused this crash. The boxes will be deleted on the next layout, but
this ensures consistency in the mean time.
2007-03-14 Lars Knoll <lars@trolltech.com>
Reviewed by Antti.
Fix the Qt build.
Add a getter to SharedBuffer that returns a reference to the internal
Vector to avoid an extra copy of the data.
* platform/SharedBuffer.h:
(WebCore::SharedBuffer::buffer):
* platform/graphics/qt/ImageQt.cpp:
(WebCore::Image::loadPlatformResource):
* platform/graphics/qt/ImageSourceQt.cpp:
(WebCore::detectImageFormat):
(WebCore::createDecoder):
(WebCore::ImageSource::setData):
2007-03-14 Antti Koivisto <antti@apple.com>
Reviewed by Mitz.
Fix <rdar://problem/5058774>
REGRESSION: In Mail, caret appears oversized when typing in a To Do note
Horizontal and vertical were switched. Was regression from
http://trac.webkit.org/projects/webkit/changeset/20103
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::addHighlightOverflow):
2007-03-14 David Hyatt <hyatt@apple.com>
Tweak the data() functions of stylesheets and scripts to be internally consistent.
* loader/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::data):
* loader/CachedScript.cpp:
(WebCore::CachedScript::data):
* loader/CachedXSLStyleSheet.cpp:
(WebCore::CachedXSLStyleSheet::data):
2007-03-14 David Hyatt <hyatt@apple.com>
Fix Radar 5050688.
For large animated GIFs, destroy and recreate the source for every animation frame. This keeps
the memory consumption down while giant images are animating.
Reviewed by andersca
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::BitmapImage):
(WebCore::BitmapImage::destroyDecodedData):
(WebCore::BitmapImage::dataChanged):
(WebCore::BitmapImage::advanceAnimation):
* platform/graphics/BitmapImage.h:
2007-03-14 David Hyatt <hyatt@apple.com>
Make sure to use CFDataCreateWithBytesNoCopy where we can.
Reviewed by andersca
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::ImageSource::setData):
* platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::dataChanged):
2007-03-13 David Hyatt <hyatt@apple.com>
Fix for bugzilla bug 13050 and also radar p1 5050645.
This patch reworks resource loading to avoid having redundant buffers in the icon database and in cached
images in the WebCore cache. It also avoids overcopying in top-level image documents and in the icon
database.
There is now only one SharedBuffer for a resource and everybody observes that buffer now instead of ever
making their own. Even ImageIO uses the SharedBuffer while decoding.
The page in 13050 dropped from 145mb down to 45mb of memory use with this change for a stunning savings
of 100mb.
Reviewed by olliej, mjs
* WebCore.exp:
* loader/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::data):
* loader/CachedCSSStyleSheet.h:
* loader/CachedImage.cpp:
(WebCore::CachedImage::data):
* loader/CachedImage.h:
* loader/CachedResource.cpp:
(WebCore::CachedResource::CachedResource):
(WebCore::CachedResource::~CachedResource):
* loader/CachedResource.h:
(WebCore::CachedResource::data):
* loader/CachedScript.cpp:
(WebCore::CachedScript::data):
* loader/CachedScript.h:
* loader/CachedXSLStyleSheet.cpp:
(WebCore::CachedXSLStyleSheet::data):
* loader/CachedXSLStyleSheet.h:
* loader/DocLoader.cpp:
(WebCore::DocLoader::checkCacheObjectStatus):
* loader/ImageDocument.cpp:
(WebCore::ImageTokenizer::writeRawData):
(WebCore::ImageTokenizer::finish):
* loader/icon/IconDataCache.cpp:
(WebCore::IconDataCache::setImageData):
(WebCore::IconDataCache::writeToDatabase):
* loader/icon/IconDataCache.h:
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::imageDataForIconURL):
(WebCore::IconDatabase::iconForPageURL):
(WebCore::IconDatabase::setIconDataForIconURL):
(WebCore::IconDatabase::setHaveNoIconForIconURL):
(WebCore::IconDatabase::imageDataForIconURLQuery):
* loader/icon/IconDatabase.h:
* loader/icon/IconLoader.cpp:
(WebCore::IconLoader::startLoading):
(WebCore::IconLoader::didReceiveResponse):
(WebCore::IconLoader::didReceiveData):
(WebCore::IconLoader::didFail):
(WebCore::IconLoader::finishLoading):
(WebCore::IconLoader::clearLoadingState):
* loader/icon/IconLoader.h:
* loader/icon/SQLStatement.cpp:
(WebCore::SQLStatement::getColumnBlobAsVector):
(WebCore::SQLStatement::isExpired):
* loader/icon/SQLStatement.h:
* loader/loader.cpp:
(WebCore::Loader::didFinishLoading):
(WebCore::Loader::didReceiveData):
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge getData:andResponse:forURL:]):
(-[WebCoreFrameBridge getAllResourceDatas:andResponses:]):
* platform/SharedBuffer.h:
(WebCore::SharedBuffer::isEmpty):
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::destroyDecodedData):
(WebCore::BitmapImage::dataChanged):
* platform/graphics/BitmapImage.h:
* platform/graphics/Image.cpp:
(WebCore::Image::setData):
* platform/graphics/Image.h:
(WebCore::Image::dataChanged):
(WebCore::Image::data):
* platform/graphics/ImageSource.h:
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::ImageSource::setData):
* platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::dataChanged):
* platform/graphics/cg/PDFDocumentImage.h:
* platform/graphics/mac/ImageMac.mm:
(WebCore::Image::loadPlatformResource):
* platform/graphics/svg/SVGImage.cpp:
(WebCore::SVGImage::setData):
* platform/mac/PasteboardMac.mm:
(WebCore::fileWrapperForImage):
2007-03-13 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5046875>
Gmail Editor: Applying alignment to selected text in message also applies alignment to signature
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::doApply): Don't call applyBlockStyle unless
there is a block style to apply.
(WebCore::ApplyStyleCommand::applyBlockStyle): Don't do the remove step.
It was unnecessary and removed properties from blocks that could contain
content outside the range being operated on (added a testcase).
(WebCore::ApplyStyleCommand::addBlockStyleIfNeeded): Used an early return
instead of if-nesting.
* editing/ApplyStyleCommand.h:
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
Return the new block, if one was created. Use moveParagraphs to move
paragraphs into the new block, instead of moving nodes. The old code moved
too much (added a testcase).
* editing/CompositeEditCommand.h:
2007-03-13 Oliver Hunt <oliver@apple.com>
Reviewed by Brady.
To fix <rdar://problem/5044366> we now pass a NSString
representation of the URL extracted with _web_originalDataAsString
instead of relying on [NSURL absoluteString] in the bridge
* page/mac/WebCoreFrameBridge.h:
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge getData:andResponse:forURL:]):
2007-03-13 Brady Eidson <beidson@apple.com>
Reviewed by Anders
<rdar://problem/5048818> - REGRESSION: Incompletely loaded resources being saved to the object cache
Due to a subtle change in loader behavior back in 10904, we would stop all loaders before calling
didFail() on them in the Cache loader. As a result, we basically cleared all of the Subresource Loaders
out of the Cache loader before more properly failing them as errored out. The result? Partially loaded
resources being cached.
Since Loader::didFail() both calls error() on the object *and* removes the loader, the solution is to call
didFail() for all cancelled loaders instead of *only* removing them from the set of active loaders.
In addition, pages that didn't completely load were being saved to the back/forward cache. To fix that,
I added a null check on the DocumentLoader's error to see if the page ended in an error, or did indeed
completely load.
Note that the layout test for this - if possible - will require other enhancements including possibly adding
support for window.stop(). That task is documented in <rdar://problem/5061826>
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::provisionalLoadStarted): Fixed a few bugs relating to my original BFCache rewrite to
more perfectly restore the original behavior - including only caching HTML documents via the
m_client->canCachePage() call
(WebCore::FrameLoader::canCachePage): Don't make the call to m_client->canCachePage() as that serves a different
purpose
- Check the mainDocumentError to see if the load ended in error as a further criteria in determining the
cachability of a page
* loader/loader.cpp:
(WebCore::Loader::cancelRequests): Call didFail(cancelledError()) instead of just removing the loaders from the
loaders-in-progress set. This adds the effect of properly cleaning up the cached object.
2007-03-13 Beth Dakin <bdakin@apple.com>
Rendering part reviewed by Hyatt. Editing part consulted with and
rubber stamped by Justin and Harrison.
Fix for <rdar://problem/5025925> A hang occurs in Safari when
attempting to print page at http://www.pcadvisor.co.uk
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::makeChildrenNonInline):
RenderBlock::makeChildrenNonInline() takes a block's inline
children and turns them into block children. If the children had
line boxes, those boxes were being leaked. In the layout test I
added with the change (and at pcadvisor.co.uk during printing)
children were being made non-inline, and then they were being made
inline again. This meant that some of the children ended up
pointing to totally stale line boxes that are normally just leaked.
This caused an infinite loop in RenderFlow::destroy(). This patch
simply deletes everyone's line boxes in
RenderBlock::makeChildrenNonInline()
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply): The other part
of this fix is that I added a call to updateLayout in
InsertParagraphSeparatorCommand::doApply(). One layout test
(editing/spelling/spelling.html) was changed by my patch to
RenderBlock. doApply() inserts a node into the render tree. In at
least one case in spelling.html, that caused some line boxes to be
deleted. Back in doApply() this meant that the RenderTree was out-
of-date, and we mistakenly thought we were at the end of the
paragraph. This caused us to insert a RenderBR() at the end of the
tree instead of an empty RenderText(). No one seems to know exactly
why we insert either, or if the change is necessarily a problem. It
is clear, though, that the RenderTree in doApply() is out-of-date
after inserting the node and deleting some line boxes, so it seems
prudent to call into updateLayout().
2007-03-13 Adam Roben <aroben@apple.com>
Reviewed by Anders.
* platform/FontData.h: Added m_isSystemFont parameter to match NSFont.
2007-03-13 Beth Dakin <bdakin@apple.com>
Reviewed by Maciej.
Export DocumentLoader::setFrame(). Part of fix for <rdar://
problem/4277074> 8F32: Help Viewer crashed on clicking link -
KHTMLView::viewportMouseReleaseEvent (12647)
* WebCore.exp:
2007-03-13 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=12794
<rdar://problem/5028154> REGRESSION: TripTik planner at aaa.com never
finishes loading due to unclosed canvas tag (12794)
Change <canvas> elements so that their contents are parsed normally,
but not rendered. This change fixes the bug, because normal parsing
rules close the <canvas> element in that case. The special parser
stuff was just getting in the way.
Also do some basic cleanup to the HTML parser. This was motivated by
an earlier version of this patch that made even more changes to the
parser, but the cleanup is still worth landing.
Test: fast/canvas/canvas-hides-fallback.html
Test: fast/canvas/script-inside-canvas-fallback.html
Test: fast/canvas/unclosed-canvas-1.html
Test: fast/canvas/unclosed-canvas-2.html
Test: fast/canvas/unclosed-canvas-3.html
Test: fast/canvas/unclosed-canvas-4.html
* html/HTMLCanvasElement.h: Added a data member to keep track of whether the
renderer is a RenderHTMLCanvas or not.
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::createRenderer): If JavaScript is enabled, create
a RenderHTMLCanvas. If it's not, let the default code create the default type
of renderer, which will result in fallback content being visible. The
RenderHTMLCanvas class already hides all of its children. Set the m_rendererIsCanvas
boolean accordingly. Since the actual storage for the canvas is allocated lazily
when you actually get a drawing context, we don't need to do anything special
to prevent it when JavaScript is disabled; the relevant functions won't be called.
(WebCore::HTMLCanvasElement::reset): Protect the code that manipulates the
RenderHTMLCanvas with a check of m_rendererIsCanvas. This is the only code inside
the DOM element that relies on the renderer type.
* html/HTMLParser.h: Removed unneeded includes. Marked HTMLParser as
Noncopyable. Changed the Document parameter to the constructor to instead
be HTMLDocument. Renamed discard_until to m_skipModeTag for clarity.
Removed unused noSpaces function and unneeded public doc() function.
Moved data members all down to the end so you can see them together in order.
Renamed map to m_currentMapElement and isindex to m_isindexElement.
Removed unused end and headLoaded data members. Renamed m_fragment to
m_isParsingFragment to make it clearer that it's a boolean, not a fragment.
* html/HTMLParser.cpp:
(WebCore::HTMLParser::HTMLParser): Changed to use member construction
syntax instead of calling reset(). This is especially helpful in the
fragment case, where calling reset() later on is illegal, so not using
it in the constructor lets us assert.
(WebCore::HTMLParser::~HTMLParser): Did an explicit deref instead of
calling setCurrent for its side effect.
(WebCore::HTMLParser::reset): Updated for member name changes and removal
and to use document instead of doc().
(WebCore::HTMLParser::setCurrent): Use document instead of doc().
(WebCore::HTMLParser::setSkipMode): Added. No longer inline. Now sets the
m_inCanvasBeforeFirstOpenTag data member to false.
(WebCore::HTMLParser::parseToken): Tightened up the skip mode logic at the
top of the function, and added a FIXME about the strange case there where
we don't skip yet stay in skip mode. Updated for renaming and doc().
(WebCore::HTMLParser::insertNode): Updated for renaming and doc().
(WebCore::HTMLParser::handleError): Ditto.
(WebCore::HTMLParser::framesetCreateErrorCheck): Ditto.
(WebCore::HTMLParser::isindexCreateErrorCheck): Changed to use RefPtr.
(WebCore::HTMLParser::noscriptCreateErrorCheck): Updated for renaming and doc().
(WebCore::HTMLParser::mapCreateErrorCheck): Ditto.
(WebCore::HTMLParser::getNode): Removed the special case for canvas here.
Canvas fallback is now handled in the DOM, not the parser. Updated for
renaming and doc().
(WebCore::HTMLParser::allowNestedRedundantTag): Changed a #define into a C++
constant.
(WebCore::HTMLParser::processCloseTag): Updated for renaming and doc().
(WebCore::HTMLParser::isInline): Ditto.
(WebCore::HTMLParser::tagIsOnStack): Added. Used by new canvas logic.
(WebCore::HTMLParser::popBlock): Updated for renaming and doc(). Also renamed
the local variable Elem to elem.
(WebCore::HTMLParser::createHead): Ditto.
(WebCore::HTMLParser::handleIsindex): Changed to use RefPtr.
(WebCore::HTMLParser::startBody): Updated for renaming and doc().
(WebCore::HTMLParser::finished): Ditto.
2007-03-13 David Hyatt <hyatt@apple.com>
Two more cleanup fixes to the cache. Don't call destroyDecodedData in the BitmapImage destructor, since
clearing the image source and calling setData on it again causes it to do an extra copy of the encoded
data. Since we're about to be destroyed this is just wasteful.
When the cache prunes, don't allow it to destroy the decoded data of an image that is still actively loading,
since we've established that ImageIO can actually crash if you yank the rug out from under it like that.
Reviewed by ggaren
* loader/Cache.cpp:
(WebCore::Cache::prune):
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::~BitmapImage):
2007-03-13 Anders Carlsson <acarlsson@apple.com>
Try fixing the Qt build.
* editing/Editor.h:
(WebCore::Editor::setStartNewKillRingSequence):
2007-03-13 David Harrison <harrison@apple.com>
Reviewed by Justin.
<rdar://problem/5031181> cntl-k at end of paragraph adds nothing to the kill ring
<rdar://problem/5031189> REGRESSION: cntl-y yanks only the most recently killed content
For rdar://5031181, properly extend the selection before the killring handling, and
make sure plainText of that selection returns a linefeed.
For rdar://5031189, restore Editor::deleteRange() code that continued current killring,
even though the range deletion implicitly stopped it via changing the selection.
A byproduct of this change is the elimination of RUNDFINDER vs CONTENT TextIterator. The
only difference between the two was whether to emit a newline when the range started
with a blockflow element. No callers actually need that any more.
Tests added:
* editing/pasteboard/emacs-ctrl-k-y-001-expected.checksum: Added.
* editing/pasteboard/emacs-ctrl-k-y-001-expected.png: Added.
* editing/pasteboard/emacs-ctrl-k-y-001-expected.txt: Added.
* editing/pasteboard/emacs-ctrl-k-y-001.html: Added.
* editing/Editor.cpp:
(WebCore::Editor::deleteRange):
Clear the "start new kill ring sequence" setting, because it was set to true
when the selection was updated by deleting the range.
(WebCore::Editor::deleteWithDirection):
If extending the selection to the end of paragraph resulted in a caret selection,
extend by character, to handle the case when the selection started as a caret at
the end of paragraph.
* editing/TextIterator.cpp:
(WebCore::TextIterator::TextIterator):
Initialize new member variables for tracking handling of the beginning of the range.
(WebCore::TextIterator::advance):
Call representNodeOffsetZero on the m_endContainer.
Move visibility checks into handleTextNode and handleReplacedElement.
(WebCore::TextIterator::handleTextNode):
(WebCore::TextIterator::handleTextBox):
Call emitText.
(WebCore::TextIterator::handleReplacedElement):
Moved visibility check into here.
(WebCore::shouldEmitNewlinesBeforeAndAfterNode):
(WebCore::TextIterator::shouldRepresentNodeOffsetZero):
(WebCore::TextIterator::representNodeOffsetZero):
New. Emits proper sequence when encountering offset 0 of a node, including the
m_endContainer. Started with code from handleNonTextNode.
(WebCore::TextIterator::handleNonTextNode):
Call representNodeOffsetZero.
(WebCore::TextIterator::exitNode):
Similar to shouldRepresentNodeOffsetZero, do not emit the newline if the node
was collapsed, and before any other emitted content.
(WebCore::TextIterator::emitCharacter):
(WebCore::TextIterator::emitText):
New. Consolidates code used by handleText and handleTextBox.
(WebCore::CharacterIterator::CharacterIterator):
Removed RUNFINDER.
(WebCore::WordAwareIterator::WordAwareIterator):
Removed RUNFINDER.
(WebCore::WordAwareIterator::advance):
Formatting.
(WebCore::TextIterator::rangeLength):
Formatting.
* editing/TextIterator.h:
Added member variables for tracking handling of the beginning of the range.
Eliminated concept of RUNDFINDER vs CONTENT TextIterator.
* editing/visible_units.cpp:
(WebCore::nextBoundary):
Eliminated concept of RUNDFINDER vs CONTENT TextIterator.
2007-03-13 David Hyatt <hyatt@apple.com>
Clean up the null image case in CachedImage::data to make sure the size totals will stay accurate.
I'm not convinced this case can even be hit, but I'm cleaning it up just in case.
* loader/CachedImage.cpp:
(WebCore::CachedImage::data):
2007-03-13 David Hyatt <hyatt@apple.com>
Reorder the call to allReferencesRemoved, since otherwise the live object size will become
incorrect.
* loader/CachedResource.cpp:
(WebCore::CachedResource::deref):
2007-03-13 Antti Koivisto <antti@apple.com>
Reviewed by Darin.
Fix http://bugs.webkit.org/show_bug.cgi?id=11083
REGRESSION: Typing tab key fails to insert a tab character in Google Docs editable area
<rdar://problem/4757650>
Allow inserting tabs in designMode. Backtab behaves like before (matches FF).
* page/EventHandler.cpp:
(WebCore::EventHandler::defaultTabEventHandler):
2007-03-13 David Hyatt <hyatt@apple.com>
Fix two counting errors in the decoded size of objects in the WebCore cache. We need to explicitly
destroy decoded data when clearing out a partially loaded image that had an error, since the destructor
(although it does destroy the data) disconnects the observer so that the notification doesn't happen.
Some CachedImages aren't in the cache (like image documents). When the decoded size of such an image
changes we should not notify the cache, since - newsflash - we aren't actually in it.
Reviewed by ggaren
* loader/CachedImage.cpp:
(WebCore::CachedImage::clear):
(WebCore::CachedImage::decodedSizeChanged):
2007-03-13 Darin Adler <darin@apple.com>
Reviewed by Tim Hatcher and John Sullivan.
- fix <rdar://problem/4915303> CrashTracer: 36 crashes in Safari at
com.apple.AppKit: -[NSView getRectsBeingDrawn:count:] + 502
* page/mac/FrameMac.mm: (WebCore::Frame::imageFromRect):
This was calling drawRect: directly, but NSView's getRectsBeingDrawn:count:
method was never really safe to call unless it was AppKit that called your
drawRect: method. Changed it to call drawSingleRect: instead. A little ugly,
but seems to work and will almost certainly fix the bug.
2007-03-13 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Maciej.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12974
Call forgetGenericContext in JSSVGPathSeg destructor, otherwhise
we'll hit an ASSERT in a debug build, when running svg/custom/js-update-path-changes.svg
a few dozen times in a single WebKit instance. The ASSERT is good and just warns that
there was already a generic context pointer registered, and the new "to be registered"
object already exists, but pointing to a different object. That's because garbage collection
calls the JSSVGPathSeg destructor, but that didn't cleanup the generic context map.
Only JSSVGPathSeg is hit by this problem, as it's the only non SVGAnimated* type
using the generic context system while using a custom JSSVGPathSegList implementation.
Also cleanup JSSVGPathSegListCustom code to call the static forgetGenericContext
method instead of doing the same using custom code.
* bindings/js/JSSVGPathSegListCustom.cpp:
(WebCore::removeFromPathSegContextMap):
(WebCore::JSSVGPathSegList::clear):
(WebCore::JSSVGPathSegList::removeItem):
* bindings/scripts/CodeGeneratorJS.pm:
2007-03-13 Darin Adler <darin@apple.com>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=12595
<rdar://problem/4722863> REGRESSION: Can't add item to cart at lnt.com
(JS type error) (12595)
Test: fast/forms/old-names.html
* bindings/js/JSHTMLFormElementCustom.cpp:
(WebCore::JSHTMLFormElement::canGetItemsForName): If the form collection has
nothing for a given name, try the form's oldNamedElement function.
(WebCore::JSHTMLFormElement::nameGetter): Ditto.
* bindings/js/kjs_dom.h: Removed the DOMNamedNodesCollection. Instead we will use
a class derived from NodeList.
* bindings/js/kjs_dom.cpp: Ditto.
* bindings/js/kjs_html.cpp:
(KJS::VectorNodeList::VectorNodeList): Added. Constructor for a new class derived
from NodeList to be used for the named items result from a collection -- uses a
vector of node pointers.
(KJS::VectorNodeList::length): Added.
(KJS::VectorNodeList::item): Added.
(KJS::JSHTMLCollection::getNamedItems): Use VectorNodeList and the existing wrapper
for NodeList rather than a custom JavaScript class, DOMNamedNodesCollection.
* dom/ChildNodeList.h:
* dom/ChildNodeList.cpp:
(WebCore::ChildNodeList::ChildNodeList): Updated to derive from TreeNodeList,
since NodeList is now a simpler class.
(WebCore::ChildNodeList::elementMatches): Updated for name and parameter change.
* dom/NameNodeList.h:
* dom/NameNodeList.cpp:
(WebCore::NameNodeList::NameNodeList): Updated to derive from TreeNodeList,
since NodeList is now a simpler class.
(WebCore::NameNodeList::rootNodeAttributeChanged): Updated for name and
parameter change.
* dom/Node.h: Change register/unregister functions to take TreeNodeList.
* dom/Node.cpp:
(WebCore::TagNodeList::TagNodeList): Updated to derive from TreeNodeList,
since NodeList is now a simpler abstract class.
(WebCore::TagNodeList::elementMatches): Updated for name and parameter change.
(WebCore::Node::registerNodeList): Changed type from NodeList to TreeNodeList.
(WebCore::Node::unregisterNodeList): Ditto.
* dom/NodeList.h: Broke NodeList into a simpler base class and a derived class
with the machinery for iterating a tree, called TreeNodeList.
* dom/NodeList.cpp:
(WebCore::NodeList::~NodeList): Added.
(WebCore::NodeList::itemWithName): Factored out of the old itemWithName.
(WebCore::TreeNodeList::TreeNodeList): Renamed from NodeList.
(WebCore::TreeNodeList::~TreeNodeList): Ditto.
(WebCore::TreeNodeList::recursiveLength): Ditto.
(WebCore::TreeNodeList::itemForwardsFromCurrent): Ditto.
(WebCore::TreeNodeList::itemBackwardsFromCurrent): Ditto.
(WebCore::TreeNodeList::recursiveItem): Ditto.
(WebCore::TreeNodeList::itemWithName): Factored half of this into this function,
the other half in NodeList::itemWithName.
(WebCore::TreeNodeList::rootNodeAttributeChanged): Added. No longer inline.
(WebCore::TreeNodeList::rootNodeChildrenChanged): Renamed from NodeList.
* html/HTMLFormElement.h: Added formElementNameChanged and oldNamedElement
fucntions, and a map called m_oldNames. Also removed m_boundary, which I
thought I had already done.
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::HTMLFormElement): Initialize m_oldNames to 0.
Switched the rest of the members to initialization syntax.
(WebCore::HTMLFormElement::~HTMLFormElement): Delete m_oldNames.
(WebCore::HTMLFormElement::formElementNameChanged): Added. Stores a reference
to one element under each of its old names.
(WebCore::HTMLFormElement::oldNamedElement): Added. Returns the old element
that once had a given name.
* html/HTMLGenericFormElement.h:
* html/HTMLGenericFormElement.cpp:
(WebCore::HTMLGenericFormElement::parseMappedAttribute): When the name
attribute changes, tell the form about the old name.
(WebCore::HTMLGenericFormElement::insertedIntoTree): When telling a form
about an element, also store away the old name so that we can use it
when the name changes later.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseMappedAttribute): Added a call to the
base class in the nameAttr case, so the code in HTMLGenericFormElement
above will get called in the input element case.
2007-03-13 Antti Koivisto <antti@apple.com>
Reviewed by Alexey.
Alexey spotted a DOS by using string of 64k unbreakable character in
fix for http://bugs.webkit.org/show_bug.cgi?id=12833
* dom/Text.cpp:
(WebCore::Text::createWithLengthLimit):
2007-03-13 Lars Knoll <lars@trolltech.com>
Fix the Qt build
* WebCore.pro:
2007-03-13 Rob Buis <buis@kde.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12576
WebKit does not support xlink:show attributes
Make an exception for non-empty targets, these should be opened
in a new window, unless the value is _self.
* ksvg2/svg/SVGAElement.cpp:
(WebCore::SVGAElement::defaultEventHandler):
2007-03-13 David Hyatt <hyatt@apple.com>
- fix cache issues seen in http://bugs.webkit.org/show_bug.cgi?id=13050
6 objects and ~200MB leaked after opening then closing tab
<rdar://problem/5058714>
Double the encoded size of images for now. We do this to account for a bug in ImageIO where they hold
a separate copy of image data. See <rdar://problem/5050645>.
Reviewed by aroben.
* loader/CachedImage.cpp:
(WebCore::CachedImage::data):
2007-03-12 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed - gdk build fix.
* platform/gdk/TemporaryLinkStubs.cpp:
(SearchPopupMenu::enabled): add missing stub.
2007-03-12 David Kilzer <ddkilzer@kilzer.net>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13045
REGRESSION: Blackboard CourseWare Error with Nightlies after Mar 8
* html/HTMLFormElement.cpp:
(WebCore::getUniqueBoundaryString): Speculative fix: remove dashes from
the boundary prefix that appear after non-dash characters.
2007-03-12 Mitz Pettel <mitz@webkit.org>
Reviewed by Anders.
- fix http://bugs.webkit.org/show_bug.cgi?id=13015
REGRESSION (r17233-r17241): Repro crash when leaving a page whose unload handler submits a form
Test: fast/loader/onunload-form-submit-crash-2.html
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::finishedLoading): Added null check.
2007-03-12 Anders Carlsson <acarlsson@apple.com>
Reviewed by Darin.
<rdar://problem/4900071>
http://bugs.webkit.org/show_bug.cgi?id=6454
ASSERTION: Navigating 'back' in frameset: !_private->previousItem (6454)
Change back the behavior of checkLoadComplete to traverse the entire frame tree instead of
just the parent frames of the current frame. This is needed in order to reset the previous history item
for all frames when doing a frame navigation. (This was changed in revision 11819)
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::recursiveCheckLoadComplete):
(WebCore::FrameLoader::checkLoadComplete):
* loader/FrameLoader.h:
2007-03-12 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5056619>
REGRESSION: Gmail Editor: Dragging text into Reply (textarea) field results in a crash at WebCore::InsertNodeBeforeCommand::doApply()
* editing/SelectionController.cpp:
(WebCore::removingNodeRemovesPosition): Added.
(WebCore::SelectionController::nodeWillBeRemoved): Clear the
selection if it's inside a shadow tree.
* page/DragController.cpp:
(WebCore::setSelectionToDragCaret): Return false to signal to
clients that a drop shouldn't be performed if the second attempt
to set a selection ends up in non-editable content.
2007-03-12 Darin Adler <darin@apple.com>
Reviewed by Tim Hatcher.
- fixed JavaScript wrapper classes to be correct for a variety of cases
that a new test uncovered: was broken for at least 5 classes
- fixed Objective-C wrapper classes to be correct for a variety of cases
that a test case uncovered: was broken for ast least 50 classes
- added missing DOM API for creating OverflowEvent and WheelEvent instances
Test: fast/dom/wrapper-classes.html
* DerivedSources.make: Added missing bindings: HTMLCanvasElement for ObjC,
CDATASection, Comment, and EntityReference for JavaScript.
* WebCore.xcodeproj/project.pbxproj: Added those new generated files.
* bindings/js/JSHTMLElementWrapperFactory.cpp:
(WebCore::createJSHTMLWrapper): Corrected the wrapper classes for <keygen>,
which needs an HTMLSelectElement wrapper, and <xmp>, which needs an
HTMLPreElement wrapper.
* bindings/objc/DOMInternal.h: Updated for new naming scheme.
Also moved createDOMWrapper from the KJS namespace to the WebCore namespace.
* bindings/objc/DOMUtility.mm:
(KJS::createDOMWrapper): Broke the core function into a separate one, and
left it in the KJS namespace because Objective-C++ rules make it impossible
for it to work in the WebCore namespace. Used a macro-based implementation
to cut down on repeated code, and added missing cases for Counter,
HTMLOptionsCollection, Range, XPathExpression, XPathResult, Event, RGBColor,
Rect, Window, DOMImplementation, NodeIterator, TreeWalker, and HTMLCollection.
(WebCore::createDOMWrapper): The other half of the function.
* bindings/objc/DOM.mm:
(WebCore::createElementClassMap): Corrected the wrapper classes for
<canvas>, which needs a DOMHTMLCanvasElement wrapper, <del>, which needs
a DOMHTMLModElement wrapper, <embed>, which needs a DOMHTMLEmbedElement
wrapper, <ins>, which needs a DOMHTMLModElement wrapper, <th>, which needs
a DOMHTMLTableCellElement wrapper, and <xmp>, which needs an
DOMHTMLPreElement wrapper.
(+[DOMNode _wrapNode:]): Updated for new naming scheme.
(+[DOMNode _wrapEventTarget:]): Ditto.
(+[DOMNodeFilter _wrapNodeFilter:]): Ditto.
(ObjCNodeFilterCondition::acceptNode): Ditto.
(-[DOMDocument createNodeIterator:whatToShow:filter:expandEntityReferences:]): Ditto.
(-[DOMDocument createTreeWalker:whatToShow:filter:expandEntityReferences:]): Ditto.
(WebCore::ObjCEventListener::handleEvent): Ditto.
* dom/Document.cpp: (WebCore::Document::createEvent):
Added cases for OverflowEvent and WheelEvent.
* dom/OverflowEvent.h: Added empty constructor and initOverflowEvent.
* dom/OverflowEvent.cpp:
(WebCore::OverflowEvent::OverflowEvent): Added.
(WebCore::OverflowEvent::initOverflowEvent): Added.
* dom/OverflowEvent.idl: Added initOverflowEvent.
* bindings/objc/PublicDOMInterfaces.h: Added initOverflowEvent.
* bindings/objc/DOMCSS.mm:
(+[DOMStyleSheet _wrapStyleSheet:]): Updated for new naming scheme.
(+[DOMCSSRule _wrapCSSRule:]): Corrected wrapper for CSSUnknownRule.
(+[DOMCSSValue _wrapCSSValue:]): Updated for new naming scheme.
* bindings/js/kjs_css.h:
(KJS::DOMRGBColor::impl): Added. Used when making an ObjC wrapper.
(KJS::DOMRect::impl): Ditto.
* bindings/js/kjs_dom.cpp: (KJS::toJS): Corrected the wrapper classes for
CDATASection, Comment, and EntityReference.
* bindings/js/kjs_html.cpp: Corrected the class name for HTMLElement
(was "DOMHTMLElement") and HTMLCollection (was "Collection").
* bindings/objc/DOMImplementationFront.h:
* bindings/objc/DOMImplementationFront.cpp:
(WebCore::implementationFront): Added new overload that returns a front given
a JavaScript wrapper. Needed by the code that makes the Objective-C wrapper.
* bindings/objc/WebScriptObject.mm:
(+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
Updated since createDOMWrapper is now in the WebCore namespace.
* bindings/scripts/CodeGeneratorObjC.pm: Update the naming scheme for the
wrapper creation functions to use _wrapElement: rather then _elementWith:
style. Removed now-unneeded special cases for things that needed to stay
upper-case, since we don't have to do the whole lcfirst thing.
* html/HTMLCanvasElement.idl: Added #if so we can successfully generate the
Objective-C wrapper for this class, even though we can't yet handle the
DOMObject return type.
* html/HTMLOptionsCollection.idl: Added GenerateNativeConverter so we get
an appropriate toJS function.
* bindings/objc/DOMEvents.mm:
(+[DOMEvent _wrapEvent:]):
* bindings/objc/DOMHTML.mm:
(-[DOMHTMLDocument createDocumentFragmentWithMarkupString:baseURL:]):
(-[DOMHTMLDocument createDocumentFragmentWithText:]):
* bindings/objc/DOMObject.mm:
(-[DOMObject sheet]):
* bindings/objc/DOMRGBColor.mm:
(-[DOMRGBColor red]):
(-[DOMRGBColor green]):
(-[DOMRGBColor blue]):
(-[DOMRGBColor alpha]):
(+[DOMRGBColor _wrapRGBColor:]):
* bindings/objc/DOMSVGPathSegInternal.mm:
(+[DOMSVGPathSeg _wrapSVGPathSeg:]):
* bindings/objc/DOMXPath.mm:
(+[DOMNativeXPathNSResolver _wrapXPathNSResolver:]):
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge nodesFromList:]):
(-[WebCoreFrameBridge elementWithName:inForm:]):
(-[WebCoreFrameBridge formForElement:]):
(-[WebCoreFrameBridge currentForm]):
(-[WebCoreFrameBridge controlsInForm:]):
(-[WebCoreFrameBridge rangeByAlteringCurrentSelection:SelectionController::direction:SelectionController::granularity:]):
(-[WebCoreFrameBridge convertNSRangeToDOMRange:]):
(-[WebCoreFrameBridge markDOMRange]):
(-[WebCoreFrameBridge markedTextDOMRange]):
(-[WebCoreFrameBridge smartDeleteRangeForProposedRange:]):
(-[WebCoreFrameBridge documentFragmentWithMarkupString:baseURLString:]):
(-[WebCoreFrameBridge documentFragmentWithText:inContext:]):
(-[WebCoreFrameBridge documentFragmentWithNodesAsParagraphs:]):
(-[WebCoreFrameBridge replaceSelectionWithNode:selectReplacement:smartReplace:matchStyle:]):
(-[WebCoreFrameBridge replaceSelectionWithText:selectReplacement:smartReplace:]):
(-[WebCoreFrameBridge increaseSelectionListLevel]):
(-[WebCoreFrameBridge increaseSelectionListLevelOrdered]):
(-[WebCoreFrameBridge increaseSelectionListLevelUnordered]):
(-[WebCoreFrameBridge dragCaretDOMRange]):
(-[WebCoreFrameBridge editableDOMRangeForPoint:]):
(-[WebCoreFrameBridge characterRangeAtPoint:]):
(-[WebCoreFrameBridge typingStyle]):
(-[WebCoreFrameBridge rangeOfCharactersAroundCaret]):
* platform/mac/ClipboardMac.mm:
(WebCore::ClipboardMac::declareAndWriteDragImage):
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::writeSelection):
Updated for new naming scheme.
2007-03-12 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin.
<rdar://problem/4990691> REGRESSION: Selecting text in Adium's Messages field causes horizontal shift
Corrected the recursive point conversion and scrolling done in scrollPointRecursively to use the
document view of each NSClipView.
* platform/mac/ScrollViewMac.mm:
(WebCore::ScrollView::scrollPointRecursively): Call convertPoint:fromView: on the document views,
not the clip views as we encounter them. Then call constrainScrollPoint: on the converted point to
constrain to the document view bounds. And finally call scrollPoint: on the document view, not the clip view.
2007-03-12 Antti Koivisto <antti@apple.com>
Reviewed by Alexey.
Fix http://bugs.webkit.org/show_bug.cgi?id=12833
REGRESSION: Selecting text in 6.6MB txt file is sluggish as of the Feb 19th nightly
<rdar://problem/5028159>
Divide large text blocks (>64kB) over multiple text nodes. This limits linebox searches to
a manageable subset.
* dom/Text.cpp:
(WebCore::Text::createWithLengthLimit):
* dom/Text.h:
* html/HTMLParser.cpp:
(WebCore::HTMLParser::parseToken):
* loader/TextDocument.cpp:
(WebCore::TextTokenizer::write):
2007-03-12 David Hyatt <hyatt@apple.com>
Fix a regression in printing. Printer fonts need to be part of the
font cache key, since printer fonts have different glyph widths.
(Integer antialiasing is used for screen fonts but not for printer fonts.)
Reviewed by aroben
* platform/FontCache.cpp:
(WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
(WebCore::FontPlatformDataCacheKey::operator==):
(WebCore::computeHash):
(WebCore::FontCache::getCachedFontPlatformData):
2007-03-12 Lars Knoll <lars@trolltech.com>
add missing symbol to fix the Qt build again.
* platform/qt/SearchPopupMenuQt.cpp:
(WebCore::SearchPopupMenu::enabled):
2007-03-12 Adele Peterson <adele@apple.com>
Reviewed by Oliver.
Adding the ability to enable or disable a SearchPopupMenu.
* platform/SearchPopupMenu.h:
* platform/mac/SearchPopupMenuMac.mm: (WebCore::SearchPopupMenu::enabled):
* rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::showPopup):
2007-03-12 Rob Buis <buis@kde.org>
Reviewed by Nikolas Zimmermann.
http://bugs.webkit.org/show_bug.cgi?id=12500
SVG fails to correctly handle all link style selectors
http://bugs.webkit.org/show_bug.cgi?id=12567
<text> elements ignore <a> children
Allow <a> inside svg text and handle xlink:show.
* ksvg2/svg/SVGAElement.cpp:
(WebCore::SVGAElement::createRenderer):
(WebCore::SVGAElement::defaultEventHandler):
(WebCore::SVGAElement::childShouldCreateRenderer):
* ksvg2/svg/SVGAElement.h:
* ksvg2/svg/SVGElement.h:
(WebCore::SVGElement::isTextContent):
* ksvg2/svg/SVGTextContentElement.h:
(WebCore::SVGTextContentElement::isTextContent):
* ksvg2/svg/SVGTextElement.cpp:
(WebCore::SVGTextElement::childShouldCreateRenderer):
* rendering/SVGInlineFlowBox.cpp:
(WebCore::translateBox):
(WebCore::placePositionedBoxesHorizontally):
(WebCore::placeBoxesVerticallyWithAbsBaseline):
2007-03-12 Adele Peterson <adele@apple.com>
Reviewed by Oliver.
Add a missing parameter to the constructor.
* platform/PlatformKeyboardEvent.h:
* platform/win/KeyEventWin.cpp: (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2007-03-12 Lars Knoll <lars@trolltech.com>
Fix the Qt build. I still get crashes though :/
* platform/graphics/qt/ImageDecoderQt.cpp:
(WebCore::ImageDecoderQt::clearFrame):
* platform/graphics/qt/ImageDecoderQt.h:
* platform/graphics/qt/ImageSourceQt.cpp:
(WebCore::ImageSource::setData):
(WebCore::ImageSource::frameIsCompleteAtIndex):
(WebCore::ImageSource::clear):
(WebCore::ImageSource::destroyFrameAtIndex):
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::ClipboardQt):
* platform/qt/ClipboardQt.h:
* platform/qt/DragDataQt.cpp:
(WebCore::DragData::createClipboard):
2007-03-11 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed - gdk build fixes.
* platform/gdk/EditorClientGdk.cpp:
(WebCore::EditorClientGdk::respondToChangedSelection): add stub
* platform/gdk/EditorClientGdk.h:
* platform/gdk/FrameGdk.cpp:
* platform/gdk/TemporaryLinkStubs.cpp:
(Editor::markMisspellings): add stub
2007-03-11 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Adele.
http://bugs.webkit.org/show_bug.cgi?id=12560
W3C XPath test Text_Nodes.svg fails
* xml/XPathStep.cpp:
(WebCore::XPath::Step::nodeTestMatches): Revert the fix, as the behavior doesn't appear
all that desirable as it did at first glance.
2007-03-11 Oliver Hunt <oliver@apple.com>
Reviewed by hyatt.
Fix for <rdar://problem/5055690> ASSERTION failure on drop into
editable element with content changed on drop
After setting the selection for a drop into an editable region
we make sure the we succeeded. If we didn't we assume a focus handler
or similar altered the element contents and try again, if the second
attempt fails we bail out.
* page/DragController.cpp:
(WebCore::setSelectionToDragCaret):
(WebCore::DragController::concludeDrag):
2007-03-11 Oliver Hunt <oliver@apple.com>
Reviewed by Adele.
Moving Frame{Mac}::respondToChangedSelection to Frame.cpp
Added new EditorClient method to handle old bridge function
* bridge/EditorClient.h:
Added respondToChangedSelection to replace old bridge function
* editing/Editor.cpp:
(WebCore::Editor::respondToChangedSelection):
Add client call to replace old bridge call from Frame::respondToChangedSelection
* editing/SelectionController.cpp:
(WebCore::SelectionController::setSelection):
No longer directly call Editor as Frame::respondToChangedSelection
makes the call
* page/Frame.cpp:
(WebCore::Frame::respondToChangedSelection):
Moved from FrameMac, replaced bridge call with call to Editor
* page/mac/FrameMac.mm:
Moved respondToChangedSelection to Frame.cpp
* page/mac/WebCoreFrameBridge.h:
Removed respondToChangedSelection from bridge
* page/qt/FrameQt.cpp:
Remove stub method for respondToChangedSelection
2007-03-11 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Brady Eidson.
Linux/gdk fix.
* loader/gdk/FrameLoaderClientGdk.cpp:
(WebCore::FrameLoaderClientGdk::shouldGoToHistoryItem): return true so
that FrameLoader:goBackOrForwards() works.
2007-03-10 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
Fixed <rdar://problem/4587763> PAC file: lock inversion between QT and
JSCore causes a hang @ www.panoramas.dk
See JavaScriptCore ChangeLog for details.
* bindings/objc/WebScriptObject.mm:
(_didExecute): Added helpful ASSERT.
(+[WebScriptObject throwException:]): Added missing JSLock.
2007-03-11 Antti Koivisto <antti@apple.com>
Reviewed by Hyatt.
Optimize linebox memory consumption:
- move all bitfields to baseclass compacting them
- make InlineTextBox::m_truncation unsigned short and make it relative to m_start
- remove extremely rarely used EllipsisBox pointer from RootInlineBox and instead
use a global hashmap to store it if needed
- use minimum required number of bits to store BidiStatus enum variables in RootInlineBox
- move overflow variables in RootInlineBox to a separate struct that is instantiated
only if any of the variables is set to a value that can't trivially be derived from
box x, y, width and height
As a result line box objects shrink:
InlineBox: 44 -> 44 bytes
InlineTextBox: 68 -> 60 bytes
InlineFlowBox: 68 -> 64 bytes
RootInlineBox: 128 -> 88 bytes
The optimizations possiblity was noticed when debugging http://bugs.webkit.org/show_bug.cgi?id=12833
Bug 12833: REGRESSION: Selecting text in 6.6MB txt file is sluggish as of the Feb 19th nightly
<rdar://problem/5028159>
On that page the patch saves 11.5MB or some 21% of linebox memory consumption. It also
actually improves selection performance somewhat by improving memory locality.
* rendering/InlineBox.h:
(WebCore::InlineBox::InlineBox):
* rendering/InlineFlowBox.h:
(WebCore::InlineFlowBox::InlineFlowBox):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::placeEllipsisBox):
(WebCore::InlineTextBox::nodeAtPoint):
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::paintDecoration):
(WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
(WebCore::InlineTextBox::paintMarkedTextUnderline):
* rendering/InlineTextBox.h:
(WebCore::InlineTextBox::InlineTextBox):
* rendering/RootInlineBox.cpp:
(WebCore::throw):
(WebCore::RootInlineBox::Overflow::operator delete):
(WebCore::RootInlineBox::Overflow::destroy):
(WebCore::RootInlineBox::destroy):
(WebCore::RootInlineBox::detachEllipsisBox):
(WebCore::RootInlineBox::clearTruncation):
(WebCore::RootInlineBox::placeEllipsis):
(WebCore::RootInlineBox::paintEllipsisBox):
(WebCore::RootInlineBox::addHighlightOverflow):
(WebCore::RootInlineBox::nodeAtPoint):
(WebCore::RootInlineBox::adjustPosition):
(WebCore::RootInlineBox::selectionTop):
(WebCore::RootInlineBox::setLineBreakInfo):
(WebCore::RootInlineBox::ellipsisBox):
(WebCore::RootInlineBox::setVerticalOverflowPositions):
(WebCore::RootInlineBox::setHorizontalOverflowPositions):
(WebCore::RootInlineBox::setVerticalSelectionPositions):
* rendering/RootInlineBox.h:
(WebCore::RootInlineBox::RootInlineBox):
(WebCore::RootInlineBox::topOverflow):
(WebCore::RootInlineBox::bottomOverflow):
(WebCore::RootInlineBox::leftOverflow):
(WebCore::RootInlineBox::rightOverflow):
(WebCore::RootInlineBox::lineBreakBidiStatus):
(WebCore::RootInlineBox::selectionBottom):
(WebCore::RootInlineBox::Overflow::Overflow):
2007-03-11 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
A partial fix for http://bugs.webkit.org/show_bug.cgi?id=13021
XPath can be very slow
* xml/XPathExpression.cpp:
(WebCore::XPathExpression::evaluate): Cache evaluationContext in a local variable.
* xml/XPathExpressionNode.cpp:
(WebCore::XPath::Expression::evaluationContext):
* xml/XPathExpressionNode.h:
(WebCore::XPath::Expression::addSubExpression):
(WebCore::XPath::Expression::subExprCount):
(WebCore::XPath::Expression::subExpr):
* xml/XPathFunctions.cpp:
* xml/XPathFunctions.h:
(WebCore::XPath::Function::setName):
(WebCore::XPath::Function::arg):
(WebCore::XPath::Function::argCount):
(WebCore::XPath::Function::name):
Made one-liners critical for performance inline.
* xml/XPathGrammar.y: Fully parse NodeTests, so that strings are no longer passed for what is
essentially an enum. Use LocationPath accessors to add steps, instead of directly manipulating
internal data members.
* xml/XPathParser.cpp:
(WebCore::XPath::Parser::parseStatement):
(WebCore::XPath::Parser::registerNodeTest):
(WebCore::XPath::Parser::deleteNodeTest):
* xml/XPathParser.h:
Added support methods for changes in XPathGrammar.y.
* xml/XPathPath.cpp:
(WebCore::XPath::Filter::evaluate): Cache evaluationContext in a local variable. Use swap() to avoid
performing vector assignments.
(WebCore::XPath::LocationPath::evaluate): Use swap() to avoid performing vector assignments.
(WebCore::XPath::LocationPath::optimizeStepPair): This new method is called during LocationPath construction,
to simplify the path as it's being built. Currently, the only optimized case is "//*" - it is a basis for
important operations that cannot be efficiently written in XPath 1.0, but can be optimized with a little bit
of XPath 2.0.
(WebCore::XPath::LocationPath::appendStep): A new accessor that modifies m_steps and calls optimizeStepPair().
(WebCore::XPath::LocationPath::insertFirstStep): Ditto.
* xml/XPathPath.h:
(WebCore::XPath::LocationPath::setAbsolute): A new accessor.
* xml/XPathStep.h:
(WebCore::XPath::Step::NodeTest::):
(WebCore::XPath::Step::NodeTest::NodeTest):
(WebCore::XPath::Step::NodeTest::kind):
(WebCore::XPath::Step::NodeTest::data):
Step::NodeTest is a new sub-class that represents a fully parsed NodeTest.
(WebCore::XPath::Step::axis):
(WebCore::XPath::Step::nodeTest):
(WebCore::XPath::Step::nodeTestData):
(WebCore::XPath::Step::namespaceURI):
(WebCore::XPath::Step::predicates):
(WebCore::XPath::Step::setAxis):
(WebCore::XPath::Step::setNodeTest):
(WebCore::XPath::Step::setNodeTestData):
(WebCore::XPath::Step::setNamespaceURI):
(WebCore::XPath::Step::setPredicates):
New accessors that let optimizeStepPair() manipulate Step data.
* xml/XPathStep.cpp:
(WebCore::XPath::Step::Step): Use the new NodeTest class.
(WebCore::XPath::Step::evaluate): Cache evaluationContext in a local variable. Use swap() to avoid
performing unneeded vector assignments.
(WebCore::XPath::Step::nodesInAxis): Cosmetic changes.
(WebCore::XPath::Step::nodeTestMatches): Use NodeTest instead of parsing the test from string each time.
Added a partial implementation of XPath 2.0 element() node test.
2007-03-10 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12249
FCKeditor: <hr>, <ul> and <ol> have id="undefined"
This fixes the attached reduction, but not the original issue.
Test: editing/execCommand/default-parameters.html
* dom/Document.h:
* dom/Document.idl:
Make second and third execCommand() parameters optional.
2007-03-10 Adele Peterson <adele@apple.com>
Reviewed by Maciej.
Fix for http://bugs.webkit.org/show_bug.cgi?id=13028
REGRESSION: textField:doCommandBySelector:inFrame: not being called properly
* html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler):
Before calling the base class defaultEventHandler, which will call handleKeypress, call doTextFieldCommandFromEvent.
2007-03-10 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13013
REGRESSION: Selection box does not scroll to where the focus jumps when pressing an alphanumeric key
Test: fast/forms/listbox-typeahead-scroll.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::setSelectedIndex): Reordered to set the active selection's
anchor and end before selecting the option, since the active selection is used to
decide where to scroll when the selection is made.
(WebCore::HTMLSelectElement::defaultEventHandler): Removed redundant check.
2007-03-10 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12973
REGRESSION: Reproducible assert while loading this test file if css is already in the cache
Test: fast/dom/css-cached-import-rule.html
Replaced some direct calls to document->stylesheetLoaded() with calls to
the sheet's checkLoaded(). The latter calls back to the element's sheetLoaded() --
which notifies the document of the load -- and then updates the sheet's
loadCompleted() flag, ensuring that it stays in sync with whether the stylesheet
is still considered pending by the document.
* dom/ProcessingInstruction.cpp:
(WebCore::ProcessingInstruction::parseStyleSheet):
* dom/StyleElement.cpp:
(WebCore::StyleElement::childrenChanged):
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process):
(WebCore::HTMLLinkElement::setCSSStyleSheet):
* ksvg2/svg/SVGStyleElement.cpp:
(WebCore::SVGStyleElement::sheetLoaded):
* ksvg2/svg/SVGStyleElement.h:
2007-03-10 David Kilzer <ddkilzer@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=9609
REGRESSION: Missing image icon needs to be moved back to WebKit
* WebCore.exp: Export WebCore::Image::loadPlatformResource(const char*) for use in
[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:].
2007-03-09 Darin Adler <darin@apple.com>
Reviewed by Justin.
- fix http://bugs.webkit.org/show_bug.cgi?id=8928
<rdar://problem/5045708> REPRODUCIBLE ASSERT: Cannot paste HTML into a
contenteditable region in an XHTML document (8928)
Test: editing/pasteboard/paste-xml.xhtml
* editing/markup.cpp: (WebCore::createFragmentFromMarkup): Added a check for 0
here, since createContextualFragment can return 0 for XML documents that fail
to parse. In my testing, callers all seem equipped to handle 0.
2007-03-09 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=9929
REGRESSION: crash on logging in on mijnpostbank.nl
Test: http/tests/misc/onload-remove-iframe-crash-2.html
The resulted from an iframe's load event handler removing the iframe
from the document.
* dom/Document.cpp:
(WebCore::Document::implicitClose): Bail out early if an event handler
removed the frame.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader):
(WebCore::FrameLoader::clear):
(WebCore::FrameLoader::checkCompleted): Protect the frame from deletion
by event handlers.
(WebCore::FrameLoader::checkCompletedTimerFired):
(WebCore::FrameLoader::scheduleCheckCompleted):
(WebCore::FrameLoader::detachFromParent): Schedule a completion check
on the parent (in case the child is what has been keeping it from completing).
* loader/FrameLoader.h:
2007-03-08 David Kilzer <ddkilzer@webkit.org>
Reviewed by Beth.
- fix http://bugs.webkit.org/show_bug.cgi?id=13019
REGRESSION (r20074): Forms don't submit on a variety of websites
No tests added since LayoutTests/fast/forms/document-write.html was timing out
and causing a layout test failure.
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::submit): Removed stray code.
2007-03-08 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed - gdk build fix.
* platform/graphics/cairo/ImageSourceCairo.cpp:
(WebCore::ImageSource::frameIsCompleteAtIndex): add empty stub
2007-03-08 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/4903193>
On particular page, Copy is so slow it seems like a hang
~2x speedup copying:
http://shakespeare.mit.edu/henryviii/full.html
Also produces less bloated markup.
* editing/markup.cpp:
(WebCore::startMarkup): Don't wrap text nodes in style spans.
For Elements, don't inline styles inherited from ancestors.
(WebCore::createMarkup): No longer necessary to find
the root's default style and pass it to startMarkup.
Add a wrapper span around the markup with the styles
that all nodes in the markup inherit (the inheritable
styles from the common ancestor container's computed style).
Added a FIXME about unecessary markup for inline ancestors
up to the commonAncestorBlock.
2007-03-08 Darin Adler <darin@apple.com>
Reviewed by Adele.
- <rdar://problem/4470381> multipart/form-data boundary security vulnerability
By making the form data boundary a string with some random data in it, we reduce
the possibility that anyone could take advantage of it by creating a file that
intentionally has the boundary string in it.
* html/HTMLFormElement.h: Removed boundary(), setBoundary(), and m_boundary.
Marked a lot more stuff private.
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::HTMLFormElement): Removed code to initialize
m_boundary.
(WebCore::randomNumber): Added. Function that returns a random number, including
seeding the random number generator the first time it's called. For now, usees the more
random function random() on Mac OS X and the more-standard rand() on other platforms.
(WebCore::HTMLFormElement::formData): Take a parameter with the form boundary string,
and use that instead of m_boundary.
(WebCore::getUniqueBoundaryString): Added. Makes a boundary string using random numbers
and base 64 encoding.
(WebCore::HTMLFormElement::submit): Call getUniqueBoundaryString and pass the boundary
string into formData for multipart form posts.
2007-03-08 Maciej Stachowiak <mjs@apple.com>
Reviewed by Adele.
<rdar://problem/4646563> REGRESSION: Unable to send text message from Verizon text message website: vtext.com (12588)
http://bugs.webkit.org/show_bug.cgi?id=12588
Carefully revised which focus operations restore previous selection, which clear it, and which
select the whole control contents.
Tests:
fast/forms/focus-selection-input.html
fast/forms/focus-selection-textarea.html
* dom/Element.cpp:
(WebCore::Element::focus):
* dom/Element.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::focus):
(WebCore::HTMLInputElement::accessKeyAction):
* html/HTMLInputElement.h:
* html/HTMLLabelElement.cpp:
(WebCore::HTMLLabelElement::focus):
(WebCore::HTMLLabelElement::accessKeyAction):
* html/HTMLLabelElement.h:
* html/HTMLLegendElement.cpp:
(WebCore::HTMLLegendElement::focus):
* html/HTMLLegendElement.h:
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::focus):
* html/HTMLTextAreaElement.h:
* page/FocusController.cpp:
(WebCore::FocusController::advanceFocus):
2007-03-08 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<http://bugs.webkit.org/show_bug.cgi?id=12244>
FCKeditor: Find dialog doesn't work
* bindings/js/kjs_window.cpp:
(KJS::Window::find): Added. This function doesn't yet
support whole word searches, searching in subframes, or
opening the find dialog.
(KJS::WindowFunc::callAsFunction):
* bindings/js/kjs_window.h:
(KJS::Window::):
2007-03-08 David Hyatt <hyatt@apple.com>
Fix regression from throwing away frames of large animated images. Alter
animated images so that they refuse to advance the animation until the
current displayed frame has been fully decoded.
Reviewed by ggaren
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::startAnimation):
(WebCore::BitmapImage::advanceAnimation):
* platform/graphics/ImageSource.h:
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::ImageSource::frameIsCompleteAtIndex):
2007-03-08 David Hyatt <hyatt@apple.com>
Fix 2% performance regression on the PLT. Increase the large animated
image cutoff from 1MB to 5MB.
In addition when pruning we will aggressively discard image sources.
Reviewed by ggaren
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::destroyDecodedData):
2007-03-08 Timothy Hatcher <timothy@apple.com>
Reviewed by John.
<rdar://problem/4664697> highlighter SPI needs a node parameter to give more context
Pass the RenderObject's node to customHighlightLineRect and paintCustomHighlight.
* page/Frame.h:
* page/mac/FrameMac.mm:
(WebCore::Frame::customHighlightLineRect):
(WebCore::Frame::paintCustomHighlight):
* page/mac/WebCoreFrameBridge.h:
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintCustomHighlight):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintCustomHighlight):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::addHighlightOverflow):
(WebCore::RootInlineBox::paintCustomHighlight):
2007-03-08 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<http://bugs.webkit.org/show_bug.cgi?id=13000>
Range.createContextualFragment is not supported
* dom/Range.cpp:
(WebCore::Range::createContextualFragment): The
"startContainer" may not be a container, if the
range starts inside text. In that case, look
to the parent of the start node for an HTMLElement.
2007-03-08 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/5049671>
Gmail Editor: With linked text, Remove Formatting doesn't always remove underline
* editing/Editor.cpp:
(WebCore::Editor::removeFormattingAndStyle): Clear removed
anchors after the deletion.
2007-03-08 David Kilzer <ddkilzer@webkit.org>
Reviewed by NOBODY (build fix).
Added missing file for r20059:
<rdar://problem/4708689> -- REGRESSION: Some symbols with 2-byte display as garbage in Hotmail.
File was taken from this svn repository which contained versions of ucnv.h and ucnv_err.h
that were identical to ours:
http://source.icu-project.org/repos/icu/icu/tags/release-3-2/source/common/unicode/ucnv_cb.h
* icu/unicode/ucnv_cb.h: Added.
2007-03-08 Shrikant Gangoda <shrikant.gangoda@celunite.com>
Gdk build fix.
* platform/graphics/cairo/ImageSourceCairo.cpp:
(WebCore::ImageSource::~ImageSource):
(WebCore::ImageSource::clear):
2007-03-08 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
To match old TEC behaviour when using ICU we need to use
a few manual fallback encodings for the GBK/EUC-CN charsets
<rdar://problem/4708689> -- REGRESSION: Some symbols with 2-byte display as garbage in Hotmail.
* platform/TextCodecICU.cpp:
(WebCore::TextCodecICU::TextCodecICU):
(WebCore::TextCodecICU::createICUConverter):
(WebCore::gbkEscapes):
(WebCore::gbkCallbackEscape):
(WebCore::gbkCallbackSubstitute):
(WebCore::TextCodecICU::encode):
* platform/TextCodecICU.h:
(WebCore::TextCodecICU::needsGBKFallbacks):
(WebCore::TextCodecICU::setNeedsGBKFallbacks):
2007-03-08 Alexey Proskuryakov <ap@webkit.org>
Build fix.
* xml/XPathUtil.cpp:
(WebCore::XPath::stringValue):
2007-03-08 David Hyatt <hyatt@apple.com>
This patch dramatically reduces the memory consumed by animated images. For large animated GIFs (defined for
now as >1mb in terms of decoded frame buffer size), we will now aggressively flush previous frames of the
animated GIF and just re-decode them on the fly if the animation loops.
Whenever a large animated GIF has its animation reset, we will also just throw out everything and start
the animation over (in order to get rid of any cached detritus held in the ImageSource).
With this patch and the sample GIF used to test, WebKit's memory consumption went from 160MB down to 16MB.
Reviewed by mjs
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::destroyDecodedData):
(WebCore::BitmapImage::resetAnimation):
(WebCore::BitmapImage::advanceAnimation):
* platform/graphics/ImageSource.h:
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::ImageSource::~ImageSource):
(WebCore::ImageSource::clear):
2007-03-08 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=13006
XPath string-value is broken for some node types
Test: fast/xpath/string-value.html
* xml/XPathUtil.cpp:
(WebCore::XPath::stringValue): Fix it :-)
2007-03-07 Anders Carlsson <acarlsson@apple.com>
Reviewed by Adam.
<rdar://problem/4981000>
http://bugs.webkit.org/show_bug.cgi?id=12634
REGRESSION: crash loading web archive (12634)
The reason this bug wasn't always reproducible is that it involved sending an event to a plugin while
the page was loading. Before we send the event to the plugin we defer loads. The problem was that
MainResourceLoader::setDefersLoad would not work with data loads.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::setRequest):
Only set m_committed to false if we also have a valid unreachable URL.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::setDefersLoading):
Make sure to stop and start data loads.
2007-03-07 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed.
Gdk build fixes.
* platform/gdk/EditorClientGdk.cpp:
(WebCore::EditorClientGdk::handleKeypress): renamed
(WebCore::EditorClientGdk::handleInputMethodKeypress): add a stub
* platform/gdk/EditorClientGdk.h:
* platform/graphics/cairo/ImageSourceCairo.cpp:
(WebCore::ImageSource::destroyFrameAtIndex): add a stub
2007-03-07 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=13004
Repeatedly calling XPathExpression.evaluate() causes crashes or memory leaks
Removed XPath::Expression::optimize() and related methods, since they were buggy and almost useless.
Merged doEvaluate() into evaluate(), since this was all evaluate() was doing after the above changes.
Test: fast/xpath/evaluate-twice.html
* xml/XPathExpression.cpp:
(WebCore::XPathExpression::evaluate):
* xml/XPathExpressionNode.cpp:
(WebCore::XPath::Expression::Expression):
(WebCore::XPath::Expression::~Expression):
* xml/XPathExpressionNode.h:
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunLast::evaluate):
(WebCore::XPath::FunPosition::evaluate):
(WebCore::XPath::FunId::evaluate):
(WebCore::XPath::FunLocalName::evaluate):
(WebCore::XPath::FunNamespaceURI::evaluate):
(WebCore::XPath::FunName::evaluate):
(WebCore::XPath::FunCount::evaluate):
(WebCore::XPath::FunString::evaluate):
(WebCore::XPath::FunConcat::evaluate):
(WebCore::XPath::FunStartsWith::evaluate):
(WebCore::XPath::FunContains::evaluate):
(WebCore::XPath::FunSubstringBefore::evaluate):
(WebCore::XPath::FunSubstringAfter::evaluate):
(WebCore::XPath::FunSubstring::evaluate):
(WebCore::XPath::FunStringLength::evaluate):
(WebCore::XPath::FunNormalizeSpace::evaluate):
(WebCore::XPath::FunTranslate::evaluate):
(WebCore::XPath::FunBoolean::evaluate):
(WebCore::XPath::FunNot::evaluate):
(WebCore::XPath::FunTrue::evaluate):
(WebCore::XPath::FunLang::evaluate):
(WebCore::XPath::FunFalse::evaluate):
(WebCore::XPath::FunNumber::evaluate):
(WebCore::XPath::FunSum::evaluate):
(WebCore::XPath::FunFloor::evaluate):
(WebCore::XPath::FunCeiling::evaluate):
(WebCore::XPath::FunRound::evaluate):
* xml/XPathPath.cpp:
(WebCore::XPath::Filter::evaluate):
(WebCore::XPath::LocationPath::evaluate):
(WebCore::XPath::Path::evaluate):
* xml/XPathPath.h:
* xml/XPathPredicate.cpp:
(WebCore::XPath::Number::evaluate):
(WebCore::XPath::StringExpression::evaluate):
(WebCore::XPath::Negative::evaluate):
(WebCore::XPath::NumericOp::evaluate):
(WebCore::XPath::EqTestOp::evaluate):
(WebCore::XPath::LogicalOp::evaluate):
(WebCore::XPath::Union::evaluate):
* xml/XPathPredicate.h:
* xml/XPathStep.cpp:
* xml/XPathStep.h:
* xml/XPathVariableReference.cpp:
(WebCore::XPath::VariableReference::evaluate):
* xml/XPathVariableReference.h:
2007-03-07 Sam Weinig <sam@webkit.org>
Reviewed by Tim H.
Remove unused #import from Objective-C bindings and cleanup the order of #imports.
* bindings/scripts/CodeGeneratorObjC.pm:
2007-03-07 Sam Weinig <sam@webkit.org>
Reviewed by Tim H.
Make sure the baseURI attribute generates for private Objective-C bindings.
* dom/Node.idl:
2007-03-07 Anders Carlsson <acarlsson@apple.com>
Reviewed by Maciej.
<rdar://problem/4874059>
REGRESSION: Painter IX:register - Crash in WebCore:: ResourceLoader::willSendRequest()
If a load is done from inside of an error delegate method that is called because we cancel another load,
the first load should be ignored since this is what shipping WebKit does.
(Actually, it does load the page in the data source but doesn't do anything with it since the data source
won't have a web frame).
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::load):
Just bail out if m_isStoppingLoad is true.
2007-03-07 David Hyatt <hyatt@apple.com>
Use CGImageRelease instead of CFRelease.
Reviewed by aroben
* platform/graphics/cg/ImageCG.cpp:
(WebCore::FrameData::clear):
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::ImageSource::destroyFrameAtIndex):
2007-03-07 David Hyatt <hyatt@apple.com>
Fix a regression where the cache size overflows because of a double
subtraction per resource when they got removed from the cache. Add an
assert to adjustSize to detect this case in the future.
Fix ImageSourceCG so that when we flush decoded data from our cache that
we also flush it from the ImageSource.
Reviewed by mjs
* loader/Cache.cpp:
(WebCore::Cache::adjustSize):
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::~BitmapImage):
(WebCore::BitmapImage::destroyDecodedData):
* platform/graphics/Image.h:
* platform/graphics/ImageSource.h:
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::ImageSource::setData):
(WebCore::ImageSource::destroyFrameAtIndex):
2007-03-07 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13002
Incomplete repaint of inset outlines
Test: fast/repaint/outline-inset.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::repaintAfterLayoutIfNeeded):
2007-03-07 Oliver Hunt <oliver@apple.com>
Reviewed by Antti.
Reset mouse down/drag state variables on mouse button release
Fixes <rdar://problem/5044654>: Drag out of some QuickTime plug-ins converting into image drag
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseReleaseEvent):
2007-03-07 Adele Peterson <adele@apple.com>
Reviewed by Darin.
WebCore part of fix for:
http://bugs.webkit.org/show_bug.cgi?id=10871
http://bugs.webkit.org/show_bug.cgi?id=12677
<rdar://problem/4823129> REGRESSION: IME key events different in nightly
<rdar://problem/4759563> REGRESSION: Return key is always sent when you confirm a clause in kotoeri
* page/EventHandler.cpp: (WebCore::EventHandler::defaultKeyboardEventHandler): Call handleInputMethodKeypress before actually dispatching the keypress event
so that input methods have a chance to handle the event.
If the input method handles the event (by marking or unmarking text), then we don't need to send the keypress event.
If an input method doesn't handle the event, then we'll save the data we need to perform the correct action (like what text to insert or what selector to use)
when we dispatch the keypress event.
* dom/KeyboardEvent.h: Added Mac-specific KeypressCommand struct, so we can store command info during handleInputMethodKeypress, and use it during handleKeypress.
(WebCore::KeyboardEvent::keypressCommand):
(WebCore::KeyboardEvent::setKeypressCommand):
* bridge/EditorClient.h:
* editing/Editor.cpp:
(WebCore::Editor::handleKeypress): Changed handleKeyPress to handleKeypress.
(WebCore::Editor::handleInputMethodKeypress): Added.
* editing/Editor.h:
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyEditorClient::handleKeypress): Changed handleKeyPress to handleKeypress.
(WebCore::SVGEmptyEditorClient::handleInputMethodKeypress): Added.
2007-03-07 Rob Buis <buis@kde.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12579
WebKit fails SVG xml:base test
Implement DOM3 properties baseURI and documentURI to fix
the testcase in bug 12579.
* bindings/js/kjs_dom.cpp:
(KJS::DOMNode::getValueProperty):
* bindings/js/kjs_domnode.h:
(KJS::DOMNode::):
* dom/Document.cpp:
(WebCore::Document::documentURI):
(WebCore::Document::setDocumentURI):
(WebCore::Document::baseURI):
* dom/Document.h:
* dom/Document.idl:
* dom/DocumentType.cpp:
(WebCore::DocumentType::baseURI):
* dom/DocumentType.h:
* dom/Element.cpp:
(WebCore::Element::baseURI):
* dom/Element.h:
* dom/Node.cpp:
(WebCore::Node::baseURI):
* dom/Node.h:
* ksvg2/misc/SVGImageLoader.cpp:
(WebCore::SVGImageLoader::updateFromElement):
* ksvg2/svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::parseMappedAttribute):
(WebCore::SVGImageElement::attach):
2007-03-07 Anders Carlsson <acarlsson@apple.com>
Reviewed by Brady.
Remove some methods in FrameLoader that just calls down to the active document loader. Since each
resource loader now has a pointer to its document loader, we can just call directly to the
document loader.
* WebCore.exp:
* loader/FrameLoader.cpp:
* loader/FrameLoader.h:
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::willSendRequest):
(WebCore::MainResourceLoader::didReceiveResponse):
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::SubresourceLoader):
(WebCore::SubresourceLoader::didFinishLoading):
(WebCore::SubresourceLoader::didFail):
(WebCore::SubresourceLoader::didCancel):
* loader/mac/NetscapePlugInStreamLoaderMac.mm:
(WebCore::NetscapePlugInStreamLoader::didFinishLoading):
(WebCore::NetscapePlugInStreamLoader::didFail):
(WebCore::NetscapePlugInStreamLoader::didCancel):
2007-03-06 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
Fixed <rdar://problem/4576242> | http://bugs.webkit.org/show_bug.cgi?id=12586
PAC file: malloc deadlock sometimes causes a hang @ www.apple.com/pro/profiles/ (12586)
No test because this is very difficult to repro, and the new ASSERTs in
JavaScriptCore catch the underlying cause while running normal layout tests.
This is a modified version of r14752 on the branch.
The fix is to use a bit inside each node, instead of a hash table, to track
which node subtrees are in the process of being marked. This avoids a call
to malloc inside mark().
* bindings/js/kjs_binding.cpp:
(KJS::domObjects):
(KJS::domNodesPerDocument):
* bindings/js/kjs_dom.cpp:
(KJS::DOMNode::mark):
* dom/Node.cpp:
(WebCore::Node::Node):
* dom/Node.h:
2007-03-06 David Hyatt <hyatt@apple.com>
This patch reworks the WebCore memory cache to significantly reduce the amount of memory consumed by
images in the cache and to enhance the accuracy of the cache size as an absolute bound for the objects
contained within it. WebCore's memory use over time should significantly improve as a result of these
changes.
Cached resources now have both an encoded size (the original data stream) and a decoded size (an estimate of
the amount of memory consumed by an expanded version of that resource, e.g., the decoded frames of an image).
Both sizes now count towards the total size of the object and towards the allowed memory cache total.
By including both totals the reported size of resources will now be larger, and the cache will therefore become
much more aggressive about flushing.
Objects are stored in size-adjusted and popularity-aware LRU lists as before, but encoded size is now always
used when determining the correct LRU list.
The flush algorithm for the memory cache has been rewritten to first destroy decoded data before evicting
resources. By being able to compact its resources without evicting them, the memory cache can now hold many more
unique resources (encoded) in the same amount of space. Depending on how much of a hit we want to take from
re-decoding images, the memory cache could in theory have its size significantly reduced now while still holding
more resources than it did at the larger size!
Reviewed by mjs
* WebCore.xcodeproj/project.pbxproj:
* loader/Cache.cpp:
(WebCore::Cache::requestResource):
(WebCore::Cache::prune):
(WebCore::Cache::remove):
(WebCore::Cache::lruListFor):
(WebCore::Cache::adjustSize):
* loader/Cache.h:
* loader/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::data):
* loader/CachedImage.cpp:
(WebCore::CachedImage::CachedImage):
(WebCore::CachedImage::allReferencesRemoved):
(WebCore::CachedImage::clear):
(WebCore::CachedImage::data):
(WebCore::CachedImage::destroyDecodedData):
(WebCore::CachedImage::decodedSize):
(WebCore::CachedImage::decodedSizeChanged):
(WebCore::CachedImage::shouldPauseAnimation):
* loader/CachedImage.h:
* loader/CachedResource.cpp:
(WebCore::CachedResource::CachedResource):
(WebCore::CachedResource::deref):
(WebCore::CachedResource::setEncodedSize):
* loader/CachedResource.h:
(WebCore::CachedResource::allReferencesRemoved):
(WebCore::CachedResource::size):
(WebCore::CachedResource::encodedSize):
(WebCore::CachedResource::decodedSize):
(WebCore::CachedResource::destroyDecodedData):
* loader/CachedScript.cpp:
(WebCore::CachedScript::data):
* loader/CachedXSLStyleSheet.cpp:
(WebCore::CachedXSLStyleSheet::data):
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::BitmapImage):
(WebCore::BitmapImage::~BitmapImage):
(WebCore::BitmapImage::destroyDecodedData):
(WebCore::BitmapImage::pruneDecodedDataIfNeeded):
(WebCore::BitmapImage::cacheFrame):
(WebCore::BitmapImage::setNativeData):
(WebCore::BitmapImage::shouldAnimate):
(WebCore::BitmapImage::advanceAnimation):
* platform/graphics/BitmapImage.h:
(WebCore::BitmapImage::decodedSize):
* platform/graphics/Image.cpp:
(WebCore::Image::Image):
* platform/graphics/Image.h:
(WebCore::Image::destroyDecodedData):
(WebCore::Image::decodedSize):
(WebCore::Image::imageObserver):
* platform/graphics/ImageAnimationObserver.h: Removed.
* platform/graphics/ImageObserver.h: Added.
(WebCore::ImageObserver::~ImageObserver):
* platform/graphics/svg/SVGImage.cpp:
(WebCore::SVGImage::SVGImage):
* platform/graphics/svg/SVGImage.h:
2007-03-06 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Sam Weinig.
http://bugs.webkit.org/show_bug.cgi?id=12987
Fix and import 4XPath test_numeric_expr.html
* xml/XPathPredicate.cpp:
(WebCore::XPath::Negative::doEvaluate): Convert the argument to number.
(WebCore::XPath::NumericOp::doEvaluate): Convert the arguments to numbers. Use a correct operation for mod.
* xml/XPathStep.cpp:
(WebCore::XPath::Step::nodesInAxis): Do not append parent node if there is none.
* xml/XPathValue.cpp:
(WebCore::XPath::Value::toNumber): Do not convert to DeprecatedString just to trim whitespace and to convert to double.
* platform/DeprecatedString.cpp:
(WebCore::DeprecatedStringData::makeAscii): Added a FIXME about unreliable makeAscii() behavior.
2007-03-06 Maciej Stachowiak <mjs@apple.com>
Reviewed by Adele.
<rdar://problem/4619663> REGRESSION (NativePopup): Popup menu doesn't draw at the correct vertical position (9816)
* platform/mac/PopupMenuMac.mm:
(WebCore::PopupMenu::show): Make a temporary dummy view with the
passed in rect, since AppKit will use the view bounds to determine
what area to exclude when popping up a menu moved to the top of
the screen.
2007-03-06 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
Fixed all known crashers exposed by run-webkit-tests --threaded [*]. See
JavaScriptCore ChangeLog for more details.
* bindings/js/kjs_binding.cpp:
(KJS::domNodesPerDocument): Added thread safety ASSERT.
(KJS::ScriptInterpreter::mark): Removed obsolete logic for marking unsafe
objects when collecting on a secondary thread. The Collector takes care
of this now.
* bindings/js/kjs_binding.h:
(KJS::DOMObject::DOMObject): Used new API for specifying that WebCore
objects should be garbage collected on the main thread only.
* bindings/js/kjs_window.cpp:
(KJS::ScheduledAction::execute): Moved JSLock to cover implementedsCall() call,
which, for some subclasses, ends up allocating garbage collected objects.
(This fix was speculative. I didn't actually see a crash from this.)
(KJS::Window::timerFired): Added JSLock around ScheduleAction destruction,
since it destroys a KJS::List.
* bindings/objc/WebScriptObject.mm:
(-[WebScriptObject setException:]): Added JSLock. (This fix was speculative.
I didn't actually see a crash from this.)
* bridge/mac/WebCoreScriptDebugger.mm:
(-[WebCoreScriptCallFrame evaluateWebScript:]): Added JSLock. (This fix
was speculative. I didn't actually see a crash from this.)
* dom/Document.cpp:
(WebCore::Document::~Document): Added JSLock around modification to
domNodesPerDocument(), which can be accessed concurrently during garbage
collection.
* dom/Node.cpp:
(WebCore::Node::setDocument): ditto.
[*] fast/js/toString-stack-overflow.html is an exception. --threaded mode
crashes this test because it causes the garbage collector to run frequently,
and this test crashes if you happen to garbage collect while it's running.
This is a known issue with stack overflow during the mark phase. It's
not related to threading.
2007-03-06 Mark Rowe <mrowe@apple.com>
Reviewed by Sam Weinig.
Fix http://bugs.webkit.org/show_bug.cgi?id=12942
Bug 12942: ASSERTION FAILURE: qantas.com.au changing selected item in <select> via JS
Test: fast/dom/select-selectedIndex-bug-12942.html.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::recalcListItems): Reset m_lastOnChangeIndex when recalculating list items.
* html/HTMLSelectElement.h:
2007-03-06 Brady Eidson <beidson@apple.com>
Rubberstamped by Kevin Decker
20,000!
* ChangeLog: Point out revision 20,000
2007-03-06 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed.
Gdk build fix.
* loader/gdk/FrameLoaderClientGdk.cpp: update userAgent() signature.
(WebCore::FrameLoaderClientGdk::userAgent):
* loader/gdk/FrameLoaderClientGdk.h: ditto.
2007-03-06 Mitz Pettel <mitz@webkit.org>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=12986
REGRESSION(NativeListBox): Listboxes not updated when resized dynamically
Test: fast/forms/select-change-listbox-size.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::parseMappedAttribute): Reattach on list box size change.
2007-03-06 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12885
REGRESSION (r19696): Incomplete background repaint
Tests: fast/repaint/content-into-overflow.html
fast/repaint/overflow-into-content.html
Changed repaintAfterLayoutIfNeeded() to take, in addition to the clipped overflow
rect, the unclipped border box plus outline, and to repaint any areas that
were added or removed from that box, in addition to any areas added or removed
from the clipped overflow rect.
* platform/graphics/svg/SVGResourceMarker.cpp:
(WebCore::SVGResourceMarker::draw):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::absoluteClippedOverflowRect): Renamed getAbsoluteRepaintRect() to
this.
* rendering/RenderBox.h:
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::absoluteClippedOverflowRect):
* rendering/RenderFlow.h:
* rendering/RenderForeignObject.cpp:
(WebCore::RenderForeignObject::layout):
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::layout):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::layout):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::checkForRepaintOnResize):
(WebCore::RenderLayer::updateLayerPositions):
* rendering/RenderLayer.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::repaint):
(WebCore::RenderObject::repaintAfterLayoutIfNeeded):
(WebCore::RenderObject::getAbsoluteRepaintRectWithOutline):
(WebCore::RenderObject::absoluteClippedOverflowRect):
(WebCore::RenderObject::absoluteOutlineBox):
* rendering/RenderObject.h:
* rendering/RenderPath.cpp:
(WebCore::RenderPath::layout):
(WebCore::RenderPath::absoluteClippedOverflowRect):
(WebCore::RenderPath::absoluteRects):
(WebCore::RenderPath::drawMarkersIfNeeded):
* rendering/RenderPath.h:
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::layout):
(WebCore::RenderSVGContainer::absoluteClippedOverflowRect):
(WebCore::RenderSVGContainer::absoluteRects):
* rendering/RenderSVGContainer.h:
* rendering/RenderSVGHiddenContainer.cpp:
(WebCore::RenderSVGHiddenContainer::absoluteClippedOverflowRect):
* rendering/RenderSVGHiddenContainer.h:
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::imageChanged):
(WebCore::RenderSVGImage::absoluteClippedOverflowRect):
(WebCore::RenderSVGImage::absoluteRects):
* rendering/RenderSVGImage.h:
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::absoluteClippedOverflowRect):
(WebCore::RenderSVGText::layout):
(WebCore::RenderSVGText::absoluteRects):
* rendering/RenderSVGText.h:
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::absoluteClippedOverflowRect):
* rendering/RenderTableCell.h:
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::absoluteClippedOverflowRect):
* rendering/RenderTableCol.h:
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::absoluteClippedOverflowRect):
* rendering/RenderTableRow.h:
* rendering/RenderText.cpp:
(WebCore::RenderText::absoluteClippedOverflowRect):
* rendering/RenderText.h:
2007-03-06 Ian Eng <ian.eng.webkit@gmail.com>
Reviewed by Maciej.
- fixed http://bugs.webkit.org/show_bug.cgi?id=12720
Bug 12720: Re-defining window.location.toString function keeps re-loading forever
* bindings/js/kjs_window.cpp:
Disallow replacing functions in LocationTable, and return early without updating URL.
2007-03-06 Kevin McCullough <kmccullough@apple.com>
Reviewed by Darin.
<http://bugs.webkit.org/show_bug.cgi?id=12686>
REGRESSION: Bloglines.com Feeds tab cannot expand folders in TOT
- Now all class constructors implement implementsHasInstance.
* bindings/scripts/CodeGeneratorJS.pm:
2007-03-07 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Rob & Oliver.
Preparations for the new SVG text engine.
Handle baseline-shift / kerning css values correctly.
Recognize missing svg presentation attribute "font-size-adjust".
Add all missing svg<->css property mappings in mapToEntry().
Doesn't affect any layout test (as these properties are not used w/o my text patch).
While I'm at it, unify the macro names (RS_ -> SVG_RS_) & cleanup style a bit.
* ksvg2/css/CSSPropertyNames.in:
* ksvg2/css/SVGCSSParser.cpp:
(WebCore::CSSParser::parseSVGValue):
* ksvg2/css/SVGCSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applySVGProperty):
* ksvg2/css/SVGRenderStyle.cpp:
(WebCore::SVGRenderStyle::SVGRenderStyle):
(WebCore::SVGRenderStyle::operator==):
(WebCore::SVGRenderStyle::inheritedNotEqual):
(WebCore::SVGRenderStyle::inheritFrom):
* ksvg2/css/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::NonInheritedFlags::):
(WebCore::SVGRenderStyle::setBitDefaults):
* ksvg2/css/SVGRenderStyleDefs.cpp:
(StyleTextData::StyleTextData):
(StyleTextData::operator==):
(StyleMiscData::StyleMiscData):
(StyleMiscData::operator==):
* ksvg2/css/SVGRenderStyleDefs.h:
(WebCore::):
(WebCore::StyleTextData::operator!=):
* ksvg2/svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName):
2007-03-06 Justin Garcia <justin.garcia@apple.com>
Reviewed by kevin
<http://bugs.webkit.org/show_bug.cgi?id=12245>
FCKeditor: Remove Format sometimes doesn't work
<rdar://problem/4786404>
Underline style is not removed from selection after performing Remove Format
* editing/Editor.cpp:
(WebCore::Editor::removeFormattingAndStyle): Re-wrote this.
2007-03-07 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Oliver.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12979
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12981
Guard against registering pending resources with empty id.
Be careful with calling recalcStyle() in SVGUseElement, when change is "Detach" we
have to use special code, as calling attach() on the shadow tree root element will crash,
because it has no (direct) parent node, only a shadow parent node element.
* ksvg2/misc/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::addPendingResource):
* ksvg2/svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::recalcStyle):
2007-03-06 Kevin Decker <kdecker@apple.com>
Reviewed by Adele.
Fixed: <rdar://problem/5041660> REGRESSION: <keygen> element broken, prevents users from signing up for Thawte email certs
* bindings/objc/DOM.mm:
(WebCore::createElementClassMap): Added <keygen> to the DOM bindings so it can be accessed from Objective-C.
* css/html4.css: Apply the look of the <select> element to <keygen>.
* html/HTMLElementFactory.cpp:
(WebCore::keygenConstructor): Added.
(WebCore::createFunctionMap): Added keygen.
* html/HTMLSelectElement.cpp: Made const typeAheadTimeout variable static const.
(WebCore::HTMLSelectElement::HTMLSelectElement): Fix both HTMLSelectElement constructors to initialize the
same number of member variables. The fact that some fields were not initialized could (and would) crash the
keygen element when selecting different items. Also removed m_typedString(String()) from the constructor
initialization because this is not needed.
2007-03-06 Kevin McCullough <kmccullough@apple.com>
Reviewed by Darin.
- Rename a function to clarify its purpose.
* WebCore.exp:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::registerURLSchemeAsLocal):
* loader/FrameLoader.h:
2007-03-06 Adam Roben <aroben@apple.com>
Build fix.
* WebCore.exp: Updated symbols.
2007-03-06 Adam Roben <aroben@apple.com>
Reviewed by Anders.
Added a parameter to all StringTruncator methods to specify whether
rounding hacks should be on or off.
No layout test possible.
* platform/StringTruncator.cpp:
(WebCore::stringWidth): Added disableRoundingHacks parameter.
(WebCore::truncateString): Ditto.
(WebCore::StringTruncator::centerTruncate): Ditto.
(WebCore::StringTruncator::rightTruncate): Ditto.
(WebCore::StringTruncator::width): Ditto.
* platform/StringTruncator.h: Ditto.
* platform/mac/FileChooserMac.mm:
(WebCore::FileChooser::basenameForWidth): Pass in false to
centerTruncate so that the truncation matches the way the text will be
rendered.
2007-03-06 Anders Carlsson <acarlsson@apple.com>
Reviewed by Maciej.
<rdar://problem/5035045>
REGRESSION: WebKit browser doesn't display image at http://www.metoffice.gov.uk/weather/satellite/index.html
It turns out WinIE does allow you to access images by their id as special document properties. However, this is only
allowed when the element also has a name attribute. The value of the name attribute is ignored and can even be empty!
* bindings/js/kjs_html.cpp:
(KJS::JSHTMLDocument::namedItemGetter):
Return jsUndefined() if the collection is empty.
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::parseMappedAttribute):
(WebCore::HTMLImageElement::insertedIntoDocument):
(WebCore::HTMLImageElement::removedFromDocument):
* html/HTMLImageElement.h:
Add the id attribute value to the extra named item map.
* html/HTMLNameCollection.cpp:
(WebCore::HTMLNameCollection::traverseNextItem):
Check for images with name attributes that match, as well as elements with id attributes that match where
the element also has a name attribute.
2007-03-06 Anders Carlsson <acarlsson@apple.com>
Reviewed by Adam.
WebCore part of patch to make it possible to have different user agents for different URLs.
* bindings/js/kjs_navigator.cpp:
(KJS::Navigator::getValueProperty):
* bindings/js/kjs_proxy.cpp:
(WebCore::KJSProxy::initScriptIfNeeded):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::setLoading):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::userAgent):
(WebCore::FrameLoader::loadResourceSynchronously):
(WebCore::FrameLoader::applyUserAgent):
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::userAgent):
2007-03-05 Kevin McCullough <kmccullough@apple.com>
Reviewed by Mark and Dave H.
- rdar://problem/5038491
An oversight of the security fix that prevented remote from loading local is that it
prevents user style sheets when the site is remote. This fixes that.
* loader/Cache.cpp: Propogate and check user style sheet flag.
(WebCore::createResource):
(WebCore::Cache::requestResource):
* loader/Cache.h: Propogate user style sheet flag.
* loader/CachedCSSStyleSheet.cpp: Propogate user style sheet flag.
(WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
* loader/CachedCSSStyleSheet.h: Propogate user style sheet flag.
* loader/DocLoader.cpp: Propogate user style sheet flag.
(WebCore::DocLoader::requestResource):
* loader/SubresourceLoader.cpp: Propogate and check user style sheet flag.
(WebCore::SubresourceLoader::create):
* loader/SubresourceLoader.h: Add check for user style sheet flag.
* loader/loader.cpp: Propogate user style sheet flag.
(WebCore::Loader::load):
(WebCore::Loader::servePendingRequests):
* loader/loader.h: Propogate user style sheet flag.
2007-03-06 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Darin.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12936 (Master bug used to track all current use problems.)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12926 (transform attribute not respected in nested <use> elements)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12267 (getElementById broken for <use>)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12916 (use instance in symbol definition does not work)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12917 (mouseout event does not occur after scaling use instance)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12838 (SVG <use> DOM broken for script)
Added test: svg/custom/use-nested-transform.svg
Added test: svg/custom/struct-use-09-b.svg (not yet official W3C-SVG-1.1 testcase)
Fixes test: svg/custom/use-elementInstance-event-target.svg (rectangle now turns green on first click)
Fix all (except one) known <use> bug. The remaining bug (12630) is not crucical at all.
Enable <use> again as default SVG feature, as discussed on webkit-dev.
dom/Element.cpp needed following tweak: set hasParentStyle to true, if there is no parentNode
available - which happens for <use> nodes, as it's a shadow node. This fixes recalcStyle behaviour.
Override recalcStyle() in SVGUseElement, and properly forward the call to the shadow tree root element.
The shadow tree now receives proper style updates (without having to recreate the whole tree!).
Override attributeChanged() in SVGUseElement and only call notifyAttributeChange if one of x/y/width/height/xlink:href
attribute changed - otherwhise we'll end up recreating the tree for every transform/style/(non-existing-attribute) change.
Do not override transform in nested use situations, but correctly append (right-sided) the translation of the <use> element.
Some cosmetic fixes: don't add transform="translate(0 0)" attributes if both x/y values are null in the shadow tree.
Factor out logic for replacing symbol/svg tags in the shadow tree, and also invoke it during expandUseElementsInShadowTree -
otherwhise <symbol><use xlink:href="#someOtherSymbol"></symbol> the <use> gets expanded to a <symbol>. Though no one expands
the <symbol> element - and we're end up in hitting an assertion. Avoid that.
* bindings/js/JSSVGElementWrapperFactory.cpp:
* bindings/js/kjs_dom.cpp:
(KJS::toJS):
* bindings/objc/DOM.mm:
(WebCore::createElementClassMap):
* dom/Element.cpp:
(WebCore::Element::recalcStyle):
* ksvg2/svg/SVGElement.cpp:
(WebCore::shadowTreeParentElementForShadowTreeElement):
(WebCore::SVGElement::dispatchEvent):
* ksvg2/svg/SVGElementInstance.cpp:
* ksvg2/svg/SVGElementInstance.h:
* ksvg2/svg/SVGElementInstance.idl:
* ksvg2/svg/SVGElementInstanceList.cpp:
* ksvg2/svg/SVGElementInstanceList.h:
* ksvg2/svg/SVGElementInstanceList.idl:
* ksvg2/svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::notifyAttributeChange):
(WebCore::SVGStyledElement::updateElementInstance):
* ksvg2/svg/SVGStyledElement.h:
* ksvg2/svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::attributeChanged):
(WebCore::SVGUseElement::notifyAttributeChange):
(WebCore::SVGUseElement::recalcStyle):
(WebCore::SVGUseElement::buildPendingResource):
(WebCore::SVGUseElement::buildShadowTreeForSymbolTag):
(WebCore::SVGUseElement::alterShadowTreeForSVGTag):
(WebCore::SVGUseElement::buildShadowTree):
(WebCore::SVGUseElement::expandUseElementsInShadowTree):
(WebCore::SVGUseElement::attachShadowTree):
* ksvg2/svg/SVGUseElement.h:
* ksvg2/svg/SVGUseElement.idl:
* ksvg2/svg/svgtags.in:
2007-03-05 Brady Eidson <beidson@apple.com>
Reviewed by John
Fixes <rdar://problem/4974258>
Adds some key null checking
* bindings/js/kjs_html.cpp:
(KJS::JSHTMLElement::implementsCall): Null check doc/frame
* bindings/objc/DOMInternal.mm:
(-[WebScriptObject _initializeScriptDOMNodeImp]): Null check doc/frame
2007-03-06 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Darin.
Path::normalAngleAtLength() / Path::pointAtLength() don't work correctly.
pointAtLength() was not implemented, basically and normalAngleAtLength()
had a bug in the tangent slope calculation.
The normalAngleAtLength() stuff can only be tested with my local textPath support.
New LayoutTest: svg/custom/path-textPath-simulation.svg
* platform/graphics/Path.cpp:
(WebCore::pathLengthApplierFunction):
* platform/graphics/PathTraversalState.cpp:
(WebCore::PathTraversalState::quadraticBezierTo):
(WebCore::PathTraversalState::cubicBezierTo):
* platform/graphics/PathTraversalState.h:
(WebCore::PathTraversalState::):
2007-03-05 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12970
Fix and import 4XPath test_core_functions.html test
* xml/XPathExpression.cpp:
(WebCore::XPathExpression::evaluate): Fully initialize the evaluation context.
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunSubstring::doEvaluate): Fixed handling of edge cases.
(WebCore::XPath::FunRound::round): Reimplemented to match the spec; exposed FunRound::round() to be used in
other functions.
2007-03-05 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12954
XPath relative operations are implemented incorrectly
* xml/XPathPredicate.cpp:
(WebCore::XPath::NumericOp::doEvaluate):
(WebCore::XPath::EqTestOp::compare):
(WebCore::XPath::EqTestOp::doEvaluate):
Reimplemented relative equality operations to match the spec.
* xml/XPathPredicate.h:
(WebCore::XPath::NumericOp::):
(WebCore::XPath::EqTestOp::):
Moved relative operations to EqTestOp.
* xml/XPathGrammar.y:
* xml/XPathParser.cpp:
(WebCore::XPath::Parser::nextTokenInternal):
(WebCore::XPath::Parser::lex):
Adapted for the above changes.
2007-03-05 Mark Rowe <mrowe@apple.com>
Reviewed by Lars.
Fix http://bugs.webkit.org/show_bug.cgi?id=12947
Bug 12947: REGRESSION: ASSERTION FAILED: maxWidth >= 0 in StringTruncator.cpp:109 in WebCore::truncateString()
Handle nil window correctly in toUserSpace and toDeviceSpace. On Intel Macs a message to nil that returns a
float will return 0.0. We use this as the divisor in calculating a scale factor, which results in NaN being
introduced into our rect.
* platform/mac/ScreenMac.mm:
(WebCore::toUserSpace):
(WebCore::toDeviceSpace):
2007-03-05 Rob Buis <buis@kde.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12868
parts of the CSS classes in this simple SVG example are not applied
Make sure the xml stylesheets are parsed in strict mode.
* dom/ProcessingInstruction.cpp:
(WebCore::ProcessingInstruction::parseStyleSheet):
2007-03-04 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Change to dispatch the keypress event during the defaultEventHandler for keydown events. This matches IE behavior.
This is preparation for fixing event dispatch with input methods (http://bugs.webkit.org/show_bug.cgi?id=10871)
Test: fast/events/keydown-keypress-preventDefault.html
* dom/EventTargetNode.cpp: (WebCore::EventTargetNode::defaultEventHandler): Call the defaultKeyboardEventHandler for keydown events.
* page/EventHandler.cpp:
(WebCore::eventTargetNodeForDocument): Return 0 instead of false since the return type in EventTargetNode.
(WebCore::EventHandler::keyEvent): Removed dispatch of keypress event, since this is now done in the default event handler.
(WebCore::EventHandler::defaultKeyboardEventHandler): For keydown events, create and dispatch a keypress event.
2007-03-04 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Nikolas Zimmermann (yay!).
http://bugs.webkit.org/show_bug.cgi?id=12962
4XPath tests crash on lang() function
Covered by 4XPath tests, to be landed later.
* platform/StringImpl.cpp:
(WebCore::StringImpl::reverseFind): Do not crash with empty strings.
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunLang::doEvaluate): Do not crash when an element has no
attributes. Use a proper namespace for xml:lang (not sure where "xms" came from).
Rewrote the algorithm for suffix removing to match the spec.
2007-03-02 Anders Carlsson <acarlsson@apple.com>
Reviewed by Darin.
<rdar://problem/5028165>
http://bugs.webkit.org/show_bug.cgi?id=12915
REGRESSION: XMLHttpRequest.abort() does not stop loading (12915)
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::stopLoading):
Save the value of m_loading since calling FrameLoader::stopLoading could set it to false.
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didCancel):
* loader/SubresourceLoader.h:
Get rid of didCancel now, it's not needed anymore.
* xml/xmlhttprequest.cpp:
(WebCore::XMLHttpRequest::abort):
Call cancel() instead of stopLoading(). Also, set m_aborted to true so the XMLHttpRequest object
won't be dereferenced in didFail when aborting.
2007-03-04 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Nikolas Zimmermann.
Move ScrollView stubs to ScrollViewGdk.cpp
* platform/gdk/FrameGdk.h: remove comment that no longer makes sense
* platform/gdk/ScrollViewGdk.cpp:
(WebCore::ScrollView::addChild):
(WebCore::ScrollView::removeChild):
(WebCore::ScrollView::scrollPointRecursively):
(WebCore::ScrollView::inWindow):
(WebCore::ScrollView::wheelEvent):
(WebCore::ScrollView::updateScrollbars):
(WebCore::ScrollView::updateScrollInfo):
(WebCore::ScrollView::windowToContents):
(WebCore::ScrollView::contentsToWindow):
(WebCore::ScrollView::scrollbarUnderMouse):
* platform/gdk/TemporaryLinkStubs.cpp:
2007-03-02 Kevin McCullough <kmccullough@apple.com>
Reviewed by Geoff.
- rdar://problem/4922454
- This fixes a security issue by making remote referrers not able to access local
resources, unless they register their schemes to be treated as local. The result is
that those schemes can access local resources and cannot be accessed by remote
referrers.
Because this behavior is new a link-on-or-after check is made to determine if the
app should use the older, less safe, behavior.
* WebCore.exp: added exported functions
* bindings/objc/DOM.mm: consolodated function to base class
(-[DOMElement image]):
(-[DOMElement _imageTIFFRepresentation]):
* dom/Document.cpp: Cache the document's ability to load local resources.
(WebCore::Document::Document):
(WebCore::Document::setURL):
(WebCore::Document::shouldBeAllowedToLoadLocalResources):
(WebCore::Document::stylesheetLoaded):
* dom/Document.h: Cache the docuent's ability to load local resources.
(WebCore::Document::getPendingSheet):
(WebCore::Document::isAllowedToLoadLocalResources):
* html/HTMLImageLoader.cpp: Moved functionality into base class.
(WebCore::HTMLImageLoader::updateFromElement):
(WebCore::HTMLImageLoader::dispatchLoadEvent):
* html/HTMLLinkElement.cpp: Handles null returns correctly now.
* html/HTMLTokenizer.cpp: Moved functionality into base class.
(WebCore::HTMLTokenizer::notifyFinished):
* ksvg2/misc/SVGImageLoader.cpp: Moved functionality into base class.
(WebCore::SVGImageLoader::dispatchLoadEvent):
* loader/Cache.cpp: Checks if the cached resource can be loaded.
(WebCore::Cache::requestResource):
* loader/CachedCSSStyleSheet.cpp: Moved functionality into base class.
(WebCore::CachedCSSStyleSheet::ref):
(WebCore::CachedCSSStyleSheet::error):
* loader/CachedImage.cpp: Moved functionality into base class.
(WebCore::CachedImage::CachedImage):
* loader/CachedImage.h: Moved functionality into base class.
(WebCore::CachedImage::canRender):
* loader/CachedResource.cpp: Cache if the CachedResource should be treated as local
(WebCore::CachedResource::CachedResource):
* loader/CachedResource.h: Moved functionality into base class.
(WebCore::CachedResource::errorOccurred):
(WebCore::CachedResource::shouldTreatAsLocal):
* loader/CachedScript.cpp: Moved functionality into base class.
(WebCore::CachedScript::CachedScript):
* loader/CachedScript.h: Moved functionality into base class.
(WebCore::CachedScript::schedule):
* loader/CachedXBLDocument.cpp: Moved functionality into base class.
(WebCore::CachedXBLDocument::error):
* loader/CachedXSLStyleSheet.cpp: Moved functionality into base class.
(WebCore::CachedXSLStyleSheet::error):
* loader/FrameLoader.cpp: See comments for each function below.
(WebCore::FrameLoader::loadSubframe): Use new canLoad.
(WebCore::FrameLoader::restrictAccessToLocal): return value of linked-on-or-after check.
(WebCore::FrameLoader::setRestrictAccessToLocal): set value for linked-on-or-after check.
(WebCore::localSchemes): Return set of schemes that are to be treated as local.
(WebCore::FrameLoader::loadPlugin): Use new canLoad.
(WebCore::FrameLoader::canLoad): Now multiple functions that each do the same work but some can take advantage of the cached values, if they were computed previously.
(WebCore::FrameLoader::shouldHideReferrer): Extracted out the logic to determine if the referrer should be hidden so it is only calculated when needed.
(WebCore::FrameLoader::loadResourceSynchronously): No longer calls canLoad to get hideReferrer info.
(WebCore::FrameLoader::registerSchemeAsLocal): Functionality to register a scheme to be treated as local.
(WebCore::FrameLoader::treatURLAsLocal): Given a URL this function determines if it should be treated as local.
* loader/FrameLoader.h: Declared functions for this security fix. See above.
* loader/MainResourceLoader.cpp: Optized order of bools to regain performance.
(WebCore::MainResourceLoader::continueAfterContentPolicy):
* loader/SubresourceLoader.cpp: Now restricts remote from loading local resources.
(WebCore::SubresourceLoader::create):
* page/EventHandler.cpp: Moved functionality into base class.
(WebCore::selectCursor):
* platform/KURL.cpp: KURLs need to check all the registered schemes now.
(WebCore::KURL::isLocalFile):
* rendering/HitTestResult.cpp: Moved functionality into base class.
(WebCore::HitTestResult::image):
* rendering/RenderImage.cpp: Moved functionality into base class.
(WebCore::RenderImage::setCachedImage):
(WebCore::RenderImage::imageChanged):
(WebCore::RenderImage::paint):
(WebCore::RenderImage::layout):
(WebCore::RenderImage::calcAspectRatioWidth):
(WebCore::RenderImage::calcAspectRatioHeight):
* rendering/RenderImage.h: Moved functionality into base class.
(WebCore::RenderImage::errorOccurred):
* rendering/RenderListItem.cpp: Moved functionality into base class.
(WebCore::RenderListItem::setStyle):
* rendering/RenderListMarker.cpp: Moved functionality into base class.
(WebCore::RenderListMarker::isImage):
* xml/xmlhttprequest.cpp: Check doc's cached value instead of determining independently.
(WebCore::XMLHttpRequest::urlMatchesDocumentDomain):
2007-03-02 Justin Garcia <justin.garcia@apple.com>
Reviewed by kevin
<rdar://problem/5028447>
REGRESSION: Gmail Editor: Copied message text pastes at the wrong font size
* editing/markup.cpp:
(WebCore::createMarkup): The style of the div that holds
a fully selected body's styles didn't include styles inherited
from the body's ancestors.
2007-03-02 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/4545040>
innerHTML does not HTML-escape text nodes inside PRE elements
<rdar://problem/5027857>
Pasting into Mail from Safari's view-source window renders the HTML
* editing/HTMLInterchange.cpp:
(WebCore::convertHTMLTextToInterchangeFormat): Send this function
the node that the text comes from as a parameter. It shouldn't convert
'\n's to spaces/nbsps if the text is coming from text where newlines are
preserved.
* editing/HTMLInterchange.h:
* editing/markup.cpp:
(WebCore::startMarkup): Escape text inside the children of PREs.
2007-03-02 Sam Weinig <sam@webkit.org>
Reviewed by Anders.
Try to fix the Qt build.
* platform/qt/TemporaryLinkStubs.cpp: Add stubs.
(WebCore::searchMenuNoRecentSearchesText):
(WebCore::searchMenuRecentSearchesText):
(WebCore::searchMenuClearRecentSearchesText):
(WebCore::AXWebAreaText):
(WebCore::AXLinkText):
(WebCore::AXListMarkerText):
(WebCore::AXImageMapText):
(WebCore::AXHeadingText):
2007-03-02 David Harrison <harrison@apple.com>
Suggested by Darin.
A more efficient solution to rdar://4961431.
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject accessibilityIsIgnored]):
2007-03-01 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/5032095>
Gmail Editor: Copied text pastes on a new line instead of current line
Start merge failed to occur because positionAtStartOfInsertedContent
had a bug.
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::positionAtStartOfInsertedContent):
Was failing when inserting <span><div>foo/div></span>. Return the
inserted content's first VisiblePosition.
2007-03-02 Dave Hyatt <hyatt@apple.com>
Fix crasher in glyph map code (buffer overrun).
Reviewed by darin
* platform/win/GlyphPageTreeNodeWin.cpp:
(WebCore::GlyphPage::fill):
2007-03-01 Antti Koivisto <antti@apple.com>
Reviewed by Maciej.
Fix for http://bugs.webkit.org/show_bug.cgi?id=12895
REGRESSION: imagemap: pointer cursor is shown everywhere
<rdar://problem/5028163>
Image with imagemap should never itself be URLElement in hit test results.
No layout test, cursor state can't be captured.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hitTest):
2007-03-01 Antti Koivisto <antti@apple.com>
Reviewed by Maciej.
Fix http://bugs.webkit.org/show_bug.cgi?id=12690
REGRESSION: can not log in to bank of america with TOT webkit
<rdar://problem/4990044>
and http://bugs.webkit.org/show_bug.cgi?id=12604
REGRESSION: After closing the "Would you like to save password" sheet, the form fails
to submit automatically at http://www.mac.com/WebObjects/HomePage.woa
<rdar://problem/4871752>
and http://bugs.webkit.org/show_bug.cgi?id=12020
REGRESSION: Flickr uploading broken
<rdar://problem/4928662>
Turn protection against multiple forms submission back on. This approach is buggy
but it is way better than not having it at all. Not protecting against this
breaks number of major sites.
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject accessibilityPerformAction:]):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::resetMultipleFormSubmissionProtection):
(WebCore::FrameLoader::submitForm):
(WebCore::FrameLoader::receivedMainResourceError):
* loader/FrameLoader.h:
* page/EventHandler.cpp:
(WebCore::EventHandler::keyEvent):
* page/Frame.cpp:
(WebCore::Frame::setView):
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::mouseDown):
2007-03-01 Kevin McCullough <kmccullough@apple.com>
Reviewed by Adam.
- Added the test case: external-script-URL-location.html
- Fix an issue where the url of a document is null after an open if the document
has no parent.
* dom/Document.cpp:
(WebCore::Document::open):
2007-03-01 Anders Carlsson <acarlsson@apple.com>
Reviewed by Darin.
<rdar://problem/4960250>
http://bugs.webkit.org/show_bug.cgi?id=11627
REGRESSION: Reproducible crash at IMDb in WebCore::FrameLoader::stopLoadingSubframes
In rare cases, we could end up calling checkLoadComplete twice for the same frame. This would cause the
didFailProvisionalLoad delegate method to be called twice for the same frame, and also cause the provisional document loader
to be reset to null when other code wasn't expecting it.
This regressed in revision 10904 with the fix for <rdar://problem/4184719>. The fix is to only call stopLoading on the frame
if either the document loader is loading, or the document is still being parsed. I've verified that the bug is still fixed and
that no leaks occur.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::stopLoading):
2007-03-01 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Darin.
Fix ARM crash due to accessing non-4-byte-aligned memory
as 32-bit values.
* platform/AtomicString.cpp:
(WebCore::UCharBufferTranslator::equal):
2007-03-01 David Harrison <harrison@apple.com>
Reviewed by Darin.
<rdar://problem/5033905> Have the DOM secondary thread check raise an exception by default
* platform/mac/ThreadCheck.mm:
(WebCore::_WebCoreThreadViolationCheck):
Initialize threadViolationIsException to true.
2007-03-01 Brady Eidson <beidson@apple.com>
Reviewed by Darin
<rdar://problem/5030628> - Crash opening a new window with the
"New windows open to the same page" pref set
* history/HistoryItem.cpp:
(WebCore::HistoryItem::HistoryItem): Set the m_subItems vector capacity correctly
2007-03-01 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12801
Assertion failure in createMarkup() (root) when doing Select All, Copy in an SVG document
Test: editing/pasteboard/createMarkup-assert.xml
* editing/markup.cpp:
(WebCore::createMarkup): Removed the assertion, because it's wrong in a non-HTML world.
2007-02-28 Adam Roben <aroben@apple.com>
Reviewed by Oliver and Hyatt.
Fix <rdar://problem/5024233> Crash while using Find on empty document
No layout test possible, as this involves a null document.
* dom/Range.cpp:
(WebCore::rangeOfContents): Added an ASSERT.
* page/Frame.cpp:
(WebCore::Frame::findString): Added a null-check for document().
(WebCore::Frame::markAllMatchesForText): Ditto.
2007-02-28 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed - simple gdk build fix.
Add stubs for newly introduced localized strings.
* platform/gdk/TemporaryLinkStubs.cpp:
(WebCore::searchMenuNoRecentSearchesText):
(WebCore::searchMenuRecentSearchesText):
(WebCore::searchMenuClearRecentSearchesText):
2007-02-28 Brady Eidson <beidson@apple.com>
Reviewed by Beth
Move the Thread Safety Check functions into their own header for export to WebKit
* WebCore.exp: Export the function
* WebCore.xcodeproj/project.pbxproj:
* bindings/scripts/CodeGeneratorObjC.pm: Include the new header
* platform/Logging.h: Move stuff to ThreadCheck.h
* platform/ThreadCheck.h: Added.
* platform/mac/LoggingMac.mm: Move stuff to ThreadCheck.mm
* platform/mac/ThreadCheck.mm: Added.
(WebCore::_WebCoreThreadViolationCheck):
(WebCoreReportThreadViolation):
2007-02-28 Beth Dakin <bdakin@apple.com>
Reviewed by Brady.
Fix for http://bugs.webkit.org/show_bug.cgi?id=12923 REGRESSION:
Assertion failure copying standalone image
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::writeImage): Use the CachedImage as the
resource. This makes more sense anyway. There is no need to null-
check the renderer or the CachedImage since we return early if
there is no Image* and the HitTestResult::image() function checks
for these things.
2007-02-28 Adele Peterson <adele@apple.com>
Reviewed by Beth.
Fix for <rdar://problem/4887423> REGRESSION: search results popup menu strings are not localized
and <rdar://problem/3517227> accessibility-related strings in WebCore are not localized
Use localized strings from WebKit instead of hard coded strings.
* bridge/mac/WebCoreAXObject.mm: (-[WebCoreAXObject roleDescription]):
* page/mac/WebCoreViewFactory.h:
* platform/LocalizedStrings.h:
* platform/mac/LocalizedStringsMac.mm:
(WebCore::searchMenuNoRecentSearchesText):
(WebCore::searchMenuRecentSearchesText):
(WebCore::searchMenuClearRecentSearchesText):
(WebCore::AXWebAreaText):
(WebCore::AXLinkText):
(WebCore::AXListMarkerText):
(WebCore::AXImageMapText):
(WebCore::AXHeadingText):
* rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::itemText):
2007-02-27 Antti Koivisto <antti@apple.com>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=12911
GoogleDocs: Ordered lists don't update immediately when start attribute changed
Update list marker value when start attribute changes.
* html/HTMLOListElement.cpp:
(WebCore::HTMLOListElement::parseMappedAttribute):
2007-02-28 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Maciej.
Corrected the use of the new ENABLE() macros in some ksvg2/svg files.
Add new build-webkit flags "--(no-)xpath" / "--(no-)xslt", to be able
to switch off build features easily. Also add "--(no-)svg-experimental-features"
flag, to be able to test filters/animations/use/foreignObject easily.
* DerivedSources.make:
* ksvg2/scripts/make_names.pl:
* ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
* ksvg2/svg/SVGStyledElement.cpp:
* ksvg2/svg/SVGUseElement.cpp:
2007-02-28 Rob Buis <buis@kde.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12609
Any SVG element will create renderers even when children of HTML elements
Allow creation of svg renderers only when parent is SVG, except for
the <svg> element.
* ksvg2/svg/SVGAElement.h:
* ksvg2/svg/SVGAnimationElement.h:
* ksvg2/svg/SVGCircleElement.h:
* ksvg2/svg/SVGClipPathElement.h:
(WebCore::SVGClipPathElement::rendererIsNeeded):
* ksvg2/svg/SVGDefsElement.cpp:
* ksvg2/svg/SVGDefsElement.h:
* ksvg2/svg/SVGDescElement.h:
(WebCore::SVGDescElement::rendererIsNeeded):
* ksvg2/svg/SVGElement.cpp:
* ksvg2/svg/SVGEllipseElement.h:
* ksvg2/svg/SVGFilterElement.h:
(WebCore::SVGFilterElement::rendererIsNeeded):
* ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
(WebCore::SVGFilterPrimitiveStandardAttributes::rendererIsNeeded):
* ksvg2/svg/SVGForeignObjectElement.h:
* ksvg2/svg/SVGGElement.h:
* ksvg2/svg/SVGGradientElement.h:
* ksvg2/svg/SVGImageElement.h:
* ksvg2/svg/SVGLineElement.h:
* ksvg2/svg/SVGMarkerElement.h:
* ksvg2/svg/SVGMaskElement.h:
* ksvg2/svg/SVGPathElement.h:
* ksvg2/svg/SVGPatternElement.h:
* ksvg2/svg/SVGPolyElement.h:
* ksvg2/svg/SVGRectElement.h:
* ksvg2/svg/SVGStopElement.h:
* ksvg2/svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::rendererIsNeeded):
* ksvg2/svg/SVGStyledElement.h:
* ksvg2/svg/SVGSwitchElement.h:
* ksvg2/svg/SVGSymbolElement.h:
(WebCore::SVGSymbolElement::rendererIsNeeded):
* ksvg2/svg/SVGTRefElement.h:
* ksvg2/svg/SVGTSpanElement.h:
* ksvg2/svg/SVGTextElement.h:
* ksvg2/svg/SVGTitleElement.h:
(WebCore::SVGTitleElement::rendererIsNeeded):
* ksvg2/svg/SVGUseElement.h:
* ksvg2/svg/SVGViewElement.h:
(WebCore::SVGViewElement::rendererIsNeeded):
2007-02-28 Rob Buis <buis@kde.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12913
Markers do not render in webkit when it misses markerWidth or markerHeight attribute
Set defaults for markerWidth/markerHeight so markers that do not specify them render.
* ksvg2/svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::SVGMarkerElement):
2007-02-27 Anders Carlsson <acarlsson@apple.com>
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::~ResourceLoader):
Remove comment.
2007-02-27 Justin Garcia <justin.garcia@apple.com>
Reviewed by oliver
<rdar://problem/5027300>
REGRESSION: Images inserted with align left/right are lost
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::shouldMerge):
Don't attempt to merge to or from a position before
or after a block because it will be a no-op and
lead to infinite recursion.
In this case it instead resulted in content loss because
of bugs in start/endOfParagraph (5027702).
* editing/visible_units.cpp: Added two FIXMEs for
the problems with start/endOfParagraph.
2007-02-27 Anders Carlsson <acarlsson@apple.com>
Reviewed by Geoff.
Make resource load delegate methods pass the right document loader.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::willSendRequest):
(WebCore::FrameLoader::didReceiveResponse):
(WebCore::FrameLoader::didReceiveData):
(WebCore::FrameLoader::didFailToLoad):
(WebCore::FrameLoader::didFinishLoad):
(WebCore::FrameLoader::didReceiveAuthenticationChallenge):
(WebCore::FrameLoader::didCancelAuthenticationChallenge):
Use the resource loader's document loader instead of the active one.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::receivedError):
Make it so we send the frame load delegate method before the resource load delegate method.
This was a regression from 2.0 and was caused by the fix to rdar://problem/4609195. Because the way the loader
now works, both delegate methods will be called.
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::ResourceLoader):
* loader/ResourceLoader.h:
(WebCore::ResourceLoader::documentLoader):
Add document loader pointer to ResourceLoader.
2007-02-27 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12910
REGRESSION (r18756-r18765): list-bullet doesn't redraw properly when changing the list's content using JavaScript
Test: fast/repaint/list-marker.html
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::positionListMarker): Add the marker to the visual
overflow of all its ancestor blocks up to the list item. This needs to be
done here since the marker is positioned only after those blocks have been
laid out.
2007-02-27 Antti Koivisto <antti@apple.com>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12918
REGRESSION: Google Finance dropdown Flickers
<rdar://4988039>
If a node dies while mouse is over it, it is still supposed to receive
mouseout event (wasn't case in Tiger webkit). However this event should
not propagate to any other nodes. This patch matches Firefox behavior in
this respect.
* dom/EventTargetNode.cpp:
(WebCore::EventTargetNode::dispatchGenericEvent):
2007-02-27 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
Fixed http://bugs.webkit.org/show_bug.cgi?id=12659 | <rdar://problem/4954306>
JS objects not collected after closing window @ ebay.com/maps.google.com
Garbage collect in the KJSProxy destructor, after clearing our reference
to the interpreter, because that's when the interpreter has torn down fully.
(Technically speaking, we can't *prove* that we have the only reference to
our interpreter, but that's how it works in practice, and manual garbage
collection is just an opportunistic optimization, so it's OK for it to
work in practice even if it can't be proven in theory.)
Layout tests pass. No leaks reported.
* bindings/js/kjs_proxy.cpp:
(WebCore::KJSProxy::~KJSProxy):
* bindings/js/kjs_proxy.h:
* page/Page.cpp:
(WebCore::Page::~Page): Merged pageDestroyed() calls. Moved debug-only
code to the bottom.
* page/Frame.cpp:
(WebCore::Frame::~Frame): Don't call getObject() because globalObject()
returns a JSObject* already, and the call can leave a pointer to the Window
object on the stack. Don't check for NULL because it is an invariant of
JavaScriptCore that no JSObject* can be NULL. Do use a volatile pointer
for w because the 'w = 0' assignment just screams to the compiler, "Don't
generate any code for me!"
2007-02-27 Rob Buis <buis@kde.org>
Reviewed by David Hyatt.
http://bugs.webkit.org/show_bug.cgi?id=4128
!important is ignored in inline styling.
Handle properties with !important flag better in inline
style declarations.
* css/CSSMutableStyleDeclaration.cpp:
(WebCore::CSSMutableStyleDeclaration::addParsedProperties):
2007-02-27 David Hyatt <hyatt@apple.com>
Bug 11435. Make sure RenderViews always paintBoxDecorations. They used to before I removed RenderView's
paint method. This fix restores the original behavior.
Reviewed by mitz
* rendering/RenderBox.cpp:
(WebCore::RenderBox::setStyle):
2007-02-27 David Hyatt <hyatt@apple.com>
Fix for bug 12094, make sure setMinMaxKnown starts off false for the weird/rare case of empty
plaintext documents (which really are buggy and should be fixed to generate root elements).
Reviewed by mitz
* rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
2007-02-27 Dex Deacon <occupant4@gmail.com>
Reviewed by Darin.
Fixed the case where a BackForwardList of capacity==1 would grow without bound.
* history/BackForwardList.cpp:
(WebCore::BackForwardList::addItem):
2007-02-22 Lars Naesbye Christensen <lars@naesbye.dk>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12848
Help cursor should have a white outline
* Resources/helpCursor.png:
2007-02-27 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12594
REGRESSION: Strange highlight in active input area
No automated test possible.
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint): Restore a check lost in r12792.
2007-02-27 Darin Adler <darin@apple.com>
Reviewed by Mitz.
- fix http://bugs.webkit.org/show_bug.cgi?id=12908
crash in http/tests/incremental/frame-focus-before-load.html
* page/mac/EventHandlerMac.mm: (WebCore::EventHandler::focusDocumentView):
Add null checks.
2007-02-27 Darin Adler <darin@apple.com>
Reviewed by Alexey.
- fix http://bugs.webkit.org/show_bug.cgi?id=12909
should use ICU, not TEC, for MacRoman decoding
* platform/TextCodecICU.cpp: (WebCore::TextCodecICU::registerEncodingNames):
Add "macroman" as an alias for "macintosh". We have seen that in use in mail,
although I'm not sure it's used on the web.
* platform/mac/mac-encodings.txt: Remove MacRoman line, which was added back
as part of the patch for bug 4971226. But by adding it to this file rather
than the ICU codec, we get it only on Mac OS X. And long term we are trying to
get rid of the use of TEC entirely, so we want this file to be as empty as
possible.
2007-02-27 Rob Buis <buis@kde.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12905
Not all svg shapes should support markers
Restrict marker usage to svg shapes polyline, polygon, line and path.
* ksvg2/svg/SVGLineElement.h:
(WebCore::SVGLineElement::supportsMarkers):
* ksvg2/svg/SVGPathElement.h:
(WebCore::SVGPathElement::supportsMarkers):
* ksvg2/svg/SVGPolyElement.h:
(WebCore::SVGPolyElement::supportsMarkers):
* ksvg2/svg/SVGStyledElement.h:
(WebCore::SVGStyledElement::supportsMarkers):
* rendering/RenderPath.cpp:
(WebCore::RenderPath::paint):
2007-02-26 Adele Peterson <adele@apple.com>
Reviewed by Lars.
Fix for http://bugs.webkit.org/show_bug.cgi?id=12902
<rdar://problem/5012679> REGRESSION: Pressing return key doesn't
move caret to next line after applying a font color in GMail
Test: fast/frames/iframe-window-focus-2.html
* page/EventHandler.h: Make focusDocumentView public.
* page/Frame.cpp: (WebCore::Frame::focusWindow): Instead of just setting the focused frame,
we should set also focus the document view. The bug here was that since the subframe view
wasn't the first responder, the key down event was going to the wrong frame.
2007-02-26 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- fixed <rdar://problem/4946881> Recursive loop with <marker> not caught, crashes in WebCore::SVGPaintServer::draw (11244)
http://bugs.webkit.org/show_bug.cgi?id=11244
* platform/graphics/svg/SVGResourceMarker.cpp:
(WebCore::SVGResourceMarker::draw): Use a HashSet to guard against
reference cycles.
2007-02-26 Maciej Stachowiak <mjs@apple.com>
Reviewed by Kevin McCullough.
- fix Qt build for earlier SVG changes.
* platform/graphics/svg/qt/SVGResourceFilterQt.cpp:
2007-02-26 Oliver Hunt <oliver@apple.com>
Reviewed by Maciej.
Fix for <rdar://problem/4827378>: Canvas with large height
uses lots of memory, computer almost stops responding
Put cap on maximum area of canvas, size is similar too the
maximum size allowed by firefox (firefox seems to to cut off
at area == 32767 * 9358).
Also protect renderer against the possibility of a null context
(this was triggering a CG warning)
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::createDrawingContext):
Apply maximum canvas area
(WebCore::HTMLCanvasElement::createPlatformImage):
Protect against null CG Context
2007-02-26 Mitz Pettel <mitz@webkit.org>
Reviewed by Antti Koivisto.
- fix http://bugs.webkit.org/show_bug.cgi?id=12899
Ordered lists not updating dynamically with new styles
Test: fast/lists/list-style-type-dynamic-change.html
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::setStyle): Made changing the marker type trigger
updating of the marker.
2007-02-26 Adele Peterson <adele@apple.com>
Reviewed by Maciej.
Fix for <rdar://problem/5012761> REGRESSION: form submit invokes wrong event handler
Test: fast/events/submit-reset-nested-bubble.html
* dom/EventTargetNode.h: Made handleLocalEvents virtual.
* html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::handleLocalEvents): If we're
not in the capture phase, and the target is a different form, and we're handling
the submitEvent or the resetEvent, then stop propagation of the event. This matches
Firefox behavior. You can only get in this situation if misnested tags cause
forms to be nested.
* html/HTMLFormElement.h: Added handleLocalEvents.
2007-02-26 Darin Adler <darin@apple.com>
Reviewed by Oliver Hunt.
- <rdar://problem/5021555> TextCodecICU does not use fallback mappings; it should
* platform/TextCodecICU.cpp: (WebCore::TextCodecICU::createICUConverter):
Added a call to ucnv_setFallback(TRUE).
2007-02-26 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
Fix for rdar://problem/5021127
Need to add null check to node -- original Obj-C didn't need
the null check due to the Obj-C null messaging semantics
* editing/Editor.cpp:
(WebCore::Editor::shouldInsertFragment):
2007-02-26 David Hyatt <hyatt@apple.com>
Make text files render using white-space: pre-wrap instead of white-space: pre.
Reviewed by aroben
* loader/TextDocument.cpp:
(WebCore::TextTokenizer::write):
2007-02-26 David Hyatt <hyatt@apple.com>
Back out the change to add fullyClippedContentRect. The layout test
was actually showing more correct results.
* page/Frame.cpp:
(WebCore::Frame::visibleSelectionRect):
(WebCore::Frame::setIsActive):
(WebCore::Frame::markAllMatchesForText):
* platform/ScrollView.h:
* platform/mac/ScrollViewMac.mm:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible):
2007-02-26 David Hyatt <hyatt@apple.com>
Add support for a new property called -webkit-border-fit. This property
has two values: border and lines. The "border" value means the border and
background paint normally at the border box level. The "lines" value indicates
that the border and background should shrink dynamically to snugly hug the
line boxes of normal flow descendants.
Reviewed by darin
fast/borders/border-fit.html
* WebCore.xcodeproj/project.pbxproj:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSPropertyNames.in:
* css/CSSValueKeywords.in:
* css/cssparser.cpp:
(WebCore::CSSParser::parseValue):
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::adjustForBorderFit):
(WebCore::RenderBlock::borderFitAdjust):
* rendering/RenderBlock.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintBoxDecorations):
* rendering/RenderBox.h:
(WebCore::RenderBox::borderFitAdjust):
* rendering/RenderStyle.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
(WebCore::RenderStyle::diff):
* rendering/RenderStyle.h:
(WebCore::):
(WebCore::RenderStyle::borderFit):
(WebCore::RenderStyle::setBorderFit):
(WebCore::RenderStyle::initialBorderFit):
2007-02-26 Adam Roben <aroben@apple.com>
Reviewed by Darin.
Build fix.
* rendering/RenderTreeAsText.cpp: Can't use #ifndef with ENABLE() macro.
2007-02-26 Adele Peterson <adele@apple.com>
Reviewed by Adam.
Fix for <rdar://problem/4990700> Safari always crashes when attempting to edit/view
Yahoo pipes in WebCore::HTMLSelectElement::optionToListIndex
Test: fast/forms/select-out-of-bounds-index.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::setSelectedIndex): If we're about to deselect all options, then set m_lastOnChangeIndex to -1.
(WebCore::HTMLSelectElement::optionToListIndex): Moved listSize to a local variable. Rewrote using a simpler for-loop to prevent out-of-bounds errors.
2007-02-26 Anders Carlsson <acarlsson@apple.com>
Reviewed by Geoff.
<rdar://problem/4816376>
REGRESSION: NetNewsWire 3.0 - Crashes in WebDocumentLoaderMac::attachToFrame() (12674)
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::reload):
Remove call to setPolicyDocumentLoader here, it's set by the ::load function that we end up calling.
2007-02-26 Maciej Stachowiak <mjs@apple.com>
Reviewed by Lars.
- fixed <rdar://problem/5021698> Disable experimental SVG features (12883)
I added an ENABLE_SVG_EXPERIMENTAL_FEATURES define to guard all use of the experimental
features, and used it to guard relevant tag names, elements, JS bindings and renderers.
I also converted all the existing optional feature defines to
ENABLE_FOO instead of FOO_SUPPORT since that is the more standard
way to do it in open source projects and works with the handy new
ENABLE() macro.
* CMakeLists.txt:
* DerivedSources.make:
* Projects/gdk/webcore-gdk.bkl:
* WebCore.pro:
* WebCore.vcproj/WebCore/WebCore.vcproj:
* WebCore.vcproj/WebCore/build-generated-files.sh:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSCustomXPathNSResolver.cpp:
* bindings/js/JSCustomXPathNSResolver.h:
* bindings/js/JSSVGElementWrapperFactory.cpp:
* bindings/js/JSSVGElementWrapperFactory.h:
* bindings/js/JSSVGMatrixCustom.cpp:
* bindings/js/JSSVGPODTypeWrapper.h:
* bindings/js/JSSVGPathSegCustom.cpp:
* bindings/js/JSSVGPathSegListCustom.cpp:
* bindings/js/JSSVGPointListCustom.cpp:
* bindings/js/JSXSLTProcessor.cpp:
* bindings/js/JSXSLTProcessor.h:
* bindings/js/kjs_binding.cpp:
(KJS::setDOMException):
* bindings/js/kjs_css.cpp:
(KJS::toJS):
* bindings/js/kjs_dom.cpp:
(KJS::toJS):
* bindings/js/kjs_html.cpp:
(KJS::HTMLElementFunction::callAsFunction):
* bindings/js/kjs_proxy.cpp:
* bindings/js/kjs_proxy.h:
* bindings/js/kjs_window.cpp:
(KJS::Window::getValueProperty):
* bindings/objc/DOM.mm:
(WebCore::createElementClassMap):
(+[DOMNode _nodeWith:]):
* bindings/objc/DOMCSS.mm:
(+[DOMCSSValue _CSSValueWith:]):
* bindings/objc/DOMCustomXPathNSResolver.h:
* bindings/objc/DOMCustomXPathNSResolver.mm:
* bindings/objc/DOMEvents.mm:
(+[DOMEvent _eventWith:]):
* bindings/objc/DOMInternal.h:
* bindings/objc/DOMSVGPathSegInternal.mm:
* bindings/objc/DOMXPath.mm:
* bindings/objc/ExceptionHandlers.mm:
(WebCore::raiseDOMException):
* bindings/objc/PublicDOMInterfaces.h:
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/CodeGeneratorObjC.pm:
* config.h:
* css/CSSGrammar.y:
* css/CSSStyleDeclaration.cpp:
(WebCore::propertyID):
* css/StyleBase.h:
* css/cssparser.cpp:
(WebCore::CSSParser::parseValue):
* css/cssparser.h:
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::loadDefaultStyle):
(WebCore::CSSStyleSelector::initForStyleResolve):
(WebCore::checkPseudoState):
(WebCore::CSSStyleSelector::adjustRenderStyle):
(WebCore::CSSStyleSelector::applyProperty):
* css/cssstyleselector.h:
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::hasFeature):
(WebCore::DOMImplementation::createDocument):
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::~Document):
(WebCore::Document::createElement):
(WebCore::Document::implicitClose):
(WebCore::Document::recalcStyleSelector):
(WebCore::Document::createEvent):
* dom/Document.h:
* dom/Document.idl:
* dom/Event.cpp:
* dom/Event.h:
* dom/EventTarget.cpp:
* dom/EventTarget.h:
* dom/MappedAttributeEntry.h:
(WebCore::):
* dom/Node.cpp:
(WebCore::Node::createRendererIfNeeded):
(WebCore::Node::shadowAncestorNode):
* dom/Node.h:
* dom/ProcessingInstruction.cpp:
(WebCore::ProcessingInstruction::ProcessingInstruction):
(WebCore::ProcessingInstruction::checkStyleSheet):
(WebCore::ProcessingInstruction::setCSSStyleSheet):
* dom/ProcessingInstruction.h:
* dom/Text.cpp:
(WebCore::Text::createRenderer):
* dom/XMLTokenizer.cpp:
(WebCore::XMLTokenizer::startElementNs):
(WebCore::XMLTokenizer::endElementNs):
(WebCore::XMLTokenizer::processingInstruction):
(WebCore::XMLTokenizer::end):
(WebCore::XMLTokenizer::insertErrorMessageBlock):
* dom/XMLTokenizer.h:
* html/HTMLEmbedElement.cpp:
* html/HTMLEmbedElement.h:
* html/HTMLObjectElement.cpp:
* html/HTMLObjectElement.h:
* ksvg2/css/SVGCSSParser.cpp:
* ksvg2/css/SVGCSSStyleSelector.cpp:
* ksvg2/css/SVGRenderStyle.cpp:
* ksvg2/css/SVGRenderStyle.h:
* ksvg2/css/SVGRenderStyleDefs.cpp:
* ksvg2/css/SVGRenderStyleDefs.h:
* ksvg2/events/JSSVGLazyEventListener.cpp:
* ksvg2/events/JSSVGLazyEventListener.h:
* ksvg2/events/SVGZoomEvent.cpp:
* ksvg2/events/SVGZoomEvent.h:
* ksvg2/misc/KCanvasRenderingStyle.cpp:
* ksvg2/misc/KCanvasRenderingStyle.h:
* ksvg2/misc/PointerEventsHitRules.cpp:
* ksvg2/misc/PointerEventsHitRules.h:
* ksvg2/misc/SVGDocumentExtensions.cpp:
* ksvg2/misc/SVGDocumentExtensions.h:
* ksvg2/misc/SVGImageLoader.cpp:
* ksvg2/misc/SVGImageLoader.h:
* ksvg2/misc/SVGTimer.cpp:
* ksvg2/misc/SVGTimer.h:
* ksvg2/misc/TimeScheduler.cpp:
* ksvg2/misc/TimeScheduler.h:
* ksvg2/scripts/make_names.pl:
* ksvg2/svg/ColorDistance.cpp:
* ksvg2/svg/ColorDistance.h:
* ksvg2/svg/GradientAttributes.h:
* ksvg2/svg/LinearGradientAttributes.h:
* ksvg2/svg/PatternAttributes.h:
* ksvg2/svg/RadialGradientAttributes.h:
* ksvg2/svg/SVGAElement.cpp:
* ksvg2/svg/SVGAElement.h:
* ksvg2/svg/SVGAngle.cpp:
* ksvg2/svg/SVGAngle.h:
* ksvg2/svg/SVGAnimateColorElement.cpp:
* ksvg2/svg/SVGAnimateColorElement.h:
* ksvg2/svg/SVGAnimateElement.cpp:
* ksvg2/svg/SVGAnimateElement.h:
* ksvg2/svg/SVGAnimateElement.idl:
* ksvg2/svg/SVGAnimateMotionElement.cpp:
* ksvg2/svg/SVGAnimateMotionElement.h:
* ksvg2/svg/SVGAnimateTransformElement.cpp:
* ksvg2/svg/SVGAnimateTransformElement.h:
* ksvg2/svg/SVGAnimateTransformElement.idl:
* ksvg2/svg/SVGAnimatedPathData.cpp:
* ksvg2/svg/SVGAnimatedPathData.h:
* ksvg2/svg/SVGAnimatedPoints.cpp:
* ksvg2/svg/SVGAnimatedPoints.h:
* ksvg2/svg/SVGAnimatedTemplate.h:
* ksvg2/svg/SVGAnimationElement.cpp:
* ksvg2/svg/SVGAnimationElement.h:
* ksvg2/svg/SVGCircleElement.cpp:
* ksvg2/svg/SVGCircleElement.h:
* ksvg2/svg/SVGClipPathElement.cpp:
* ksvg2/svg/SVGClipPathElement.h:
* ksvg2/svg/SVGColor.cpp:
* ksvg2/svg/SVGColor.h:
* ksvg2/svg/SVGComponentTransferFunctionElement.cpp:
* ksvg2/svg/SVGComponentTransferFunctionElement.h:
* ksvg2/svg/SVGCursorElement.cpp:
* ksvg2/svg/SVGCursorElement.h:
* ksvg2/svg/SVGDefsElement.cpp:
* ksvg2/svg/SVGDefsElement.h:
* ksvg2/svg/SVGDescElement.cpp:
* ksvg2/svg/SVGDescElement.h:
* ksvg2/svg/SVGDocument.cpp:
* ksvg2/svg/SVGDocument.h:
* ksvg2/svg/SVGElement.cpp:
(WebCore::SVGElement::dispatchEvent):
* ksvg2/svg/SVGElement.h:
* ksvg2/svg/SVGElementInstance.cpp:
* ksvg2/svg/SVGElementInstance.h:
* ksvg2/svg/SVGElementInstance.idl:
* ksvg2/svg/SVGElementInstanceList.cpp:
* ksvg2/svg/SVGElementInstanceList.h:
* ksvg2/svg/SVGElementInstanceList.idl:
* ksvg2/svg/SVGEllipseElement.cpp:
* ksvg2/svg/SVGEllipseElement.h:
* ksvg2/svg/SVGException.h:
* ksvg2/svg/SVGExternalResourcesRequired.cpp:
* ksvg2/svg/SVGExternalResourcesRequired.h:
* ksvg2/svg/SVGFEBlendElement.cpp:
* ksvg2/svg/SVGFEBlendElement.h:
* ksvg2/svg/SVGFEBlendElement.idl:
* ksvg2/svg/SVGFEColorMatrixElement.cpp:
* ksvg2/svg/SVGFEColorMatrixElement.h:
* ksvg2/svg/SVGFEColorMatrixElement.idl:
* ksvg2/svg/SVGFEComponentTransferElement.cpp:
* ksvg2/svg/SVGFEComponentTransferElement.h:
* ksvg2/svg/SVGFEComponentTransferElement.idl:
* ksvg2/svg/SVGFECompositeElement.cpp:
* ksvg2/svg/SVGFECompositeElement.h:
* ksvg2/svg/SVGFECompositeElement.idl:
* ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
* ksvg2/svg/SVGFEDiffuseLightingElement.h:
* ksvg2/svg/SVGFEDiffuseLightingElement.idl:
* ksvg2/svg/SVGFEDisplacementMapElement.cpp:
* ksvg2/svg/SVGFEDisplacementMapElement.h:
* ksvg2/svg/SVGFEDisplacementMapElement.idl:
* ksvg2/svg/SVGFEDistantLightElement.cpp:
* ksvg2/svg/SVGFEDistantLightElement.h:
* ksvg2/svg/SVGFEDistantLightElement.idl:
* ksvg2/svg/SVGFEFloodElement.cpp:
* ksvg2/svg/SVGFEFloodElement.h:
* ksvg2/svg/SVGFEFloodElement.idl:
* ksvg2/svg/SVGFEFuncAElement.cpp:
* ksvg2/svg/SVGFEFuncAElement.h:
* ksvg2/svg/SVGFEFuncAElement.idl:
* ksvg2/svg/SVGFEFuncBElement.cpp:
* ksvg2/svg/SVGFEFuncBElement.h:
* ksvg2/svg/SVGFEFuncBElement.idl:
* ksvg2/svg/SVGFEFuncGElement.cpp:
* ksvg2/svg/SVGFEFuncGElement.h:
* ksvg2/svg/SVGFEFuncGElement.idl:
* ksvg2/svg/SVGFEFuncRElement.cpp:
* ksvg2/svg/SVGFEFuncRElement.h:
* ksvg2/svg/SVGFEFuncRElement.idl:
* ksvg2/svg/SVGFEGaussianBlurElement.cpp:
* ksvg2/svg/SVGFEGaussianBlurElement.h:
* ksvg2/svg/SVGFEGaussianBlurElement.idl:
* ksvg2/svg/SVGFEImageElement.cpp:
* ksvg2/svg/SVGFEImageElement.h:
* ksvg2/svg/SVGFEImageElement.idl:
* ksvg2/svg/SVGFELightElement.cpp:
* ksvg2/svg/SVGFELightElement.h:
* ksvg2/svg/SVGFEMergeElement.cpp:
* ksvg2/svg/SVGFEMergeElement.h:
* ksvg2/svg/SVGFEMergeElement.idl:
* ksvg2/svg/SVGFEMergeNodeElement.cpp:
* ksvg2/svg/SVGFEMergeNodeElement.h:
* ksvg2/svg/SVGFEMergeNodeElement.idl:
* ksvg2/svg/SVGFEOffsetElement.cpp:
* ksvg2/svg/SVGFEOffsetElement.h:
* ksvg2/svg/SVGFEOffsetElement.idl:
* ksvg2/svg/SVGFEPointLightElement.cpp:
* ksvg2/svg/SVGFEPointLightElement.h:
* ksvg2/svg/SVGFEPointLightElement.idl:
* ksvg2/svg/SVGFESpecularLightingElement.cpp:
* ksvg2/svg/SVGFESpecularLightingElement.h:
* ksvg2/svg/SVGFESpecularLightingElement.idl:
* ksvg2/svg/SVGFESpotLightElement.cpp:
* ksvg2/svg/SVGFESpotLightElement.h:
* ksvg2/svg/SVGFESpotLightElement.idl:
* ksvg2/svg/SVGFETileElement.cpp:
* ksvg2/svg/SVGFETileElement.h:
* ksvg2/svg/SVGFETileElement.idl:
* ksvg2/svg/SVGFETurbulenceElement.cpp:
* ksvg2/svg/SVGFETurbulenceElement.h:
* ksvg2/svg/SVGFETurbulenceElement.idl:
* ksvg2/svg/SVGFilterElement.cpp:
* ksvg2/svg/SVGFilterElement.h:
* ksvg2/svg/SVGFilterElement.idl:
* ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp:
* ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
* ksvg2/svg/SVGFitToViewBox.cpp:
* ksvg2/svg/SVGFitToViewBox.h:
* ksvg2/svg/SVGForeignObjectElement.cpp:
* ksvg2/svg/SVGForeignObjectElement.h:
* ksvg2/svg/SVGForeignObjectElement.idl:
* ksvg2/svg/SVGGElement.cpp:
* ksvg2/svg/SVGGElement.h:
* ksvg2/svg/SVGGradientElement.cpp:
* ksvg2/svg/SVGGradientElement.h:
* ksvg2/svg/SVGImageElement.cpp:
* ksvg2/svg/SVGImageElement.h:
* ksvg2/svg/SVGLangSpace.cpp:
* ksvg2/svg/SVGLangSpace.h:
* ksvg2/svg/SVGLength.cpp:
* ksvg2/svg/SVGLength.h:
* ksvg2/svg/SVGLengthList.cpp:
* ksvg2/svg/SVGLengthList.h:
* ksvg2/svg/SVGLineElement.cpp:
* ksvg2/svg/SVGLineElement.h:
* ksvg2/svg/SVGLinearGradientElement.cpp:
* ksvg2/svg/SVGLinearGradientElement.h:
* ksvg2/svg/SVGList.h:
* ksvg2/svg/SVGListTraits.h:
* ksvg2/svg/SVGLocatable.cpp:
(WebCore::SVGLocatable::nearestViewportElement):
(WebCore::SVGLocatable::farthestViewportElement):
* ksvg2/svg/SVGLocatable.h:
* ksvg2/svg/SVGMPathElement.cpp:
* ksvg2/svg/SVGMPathElement.h:
* ksvg2/svg/SVGMarkerElement.cpp:
* ksvg2/svg/SVGMarkerElement.h:
* ksvg2/svg/SVGMaskElement.cpp:
* ksvg2/svg/SVGMaskElement.h:
* ksvg2/svg/SVGMetadataElement.cpp:
* ksvg2/svg/SVGMetadataElement.h:
* ksvg2/svg/SVGNumberList.cpp:
* ksvg2/svg/SVGNumberList.h:
* ksvg2/svg/SVGPaint.cpp:
* ksvg2/svg/SVGPaint.h:
* ksvg2/svg/SVGParserUtilities.cpp:
* ksvg2/svg/SVGParserUtilities.h:
* ksvg2/svg/SVGPathElement.cpp:
* ksvg2/svg/SVGPathElement.h:
* ksvg2/svg/SVGPathSeg.h:
* ksvg2/svg/SVGPathSegArc.cpp:
* ksvg2/svg/SVGPathSegArc.h:
* ksvg2/svg/SVGPathSegClosePath.cpp:
* ksvg2/svg/SVGPathSegClosePath.h:
* ksvg2/svg/SVGPathSegCurvetoCubic.cpp:
* ksvg2/svg/SVGPathSegCurvetoCubic.h:
* ksvg2/svg/SVGPathSegCurvetoCubicSmooth.cpp:
* ksvg2/svg/SVGPathSegCurvetoCubicSmooth.h:
* ksvg2/svg/SVGPathSegCurvetoQuadratic.cpp:
* ksvg2/svg/SVGPathSegCurvetoQuadratic.h:
* ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.cpp:
* ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.h:
* ksvg2/svg/SVGPathSegLineto.cpp:
* ksvg2/svg/SVGPathSegLineto.h:
* ksvg2/svg/SVGPathSegLinetoHorizontal.cpp:
* ksvg2/svg/SVGPathSegLinetoHorizontal.h:
* ksvg2/svg/SVGPathSegLinetoVertical.cpp:
* ksvg2/svg/SVGPathSegLinetoVertical.h:
* ksvg2/svg/SVGPathSegList.cpp:
* ksvg2/svg/SVGPathSegList.h:
* ksvg2/svg/SVGPathSegMoveto.cpp:
* ksvg2/svg/SVGPathSegMoveto.h:
* ksvg2/svg/SVGPatternElement.cpp:
* ksvg2/svg/SVGPatternElement.h:
* ksvg2/svg/SVGPointList.cpp:
* ksvg2/svg/SVGPointList.h:
* ksvg2/svg/SVGPolyElement.cpp:
* ksvg2/svg/SVGPolyElement.h:
* ksvg2/svg/SVGPolygonElement.cpp:
* ksvg2/svg/SVGPolygonElement.h:
* ksvg2/svg/SVGPolylineElement.cpp:
* ksvg2/svg/SVGPolylineElement.h:
* ksvg2/svg/SVGPreserveAspectRatio.cpp:
* ksvg2/svg/SVGPreserveAspectRatio.h:
* ksvg2/svg/SVGRadialGradientElement.cpp:
* ksvg2/svg/SVGRadialGradientElement.h:
* ksvg2/svg/SVGRectElement.cpp:
* ksvg2/svg/SVGRectElement.h:
* ksvg2/svg/SVGRenderingIntent.h:
* ksvg2/svg/SVGSVGElement.cpp:
* ksvg2/svg/SVGSVGElement.h:
* ksvg2/svg/SVGScriptElement.cpp:
* ksvg2/svg/SVGScriptElement.h:
* ksvg2/svg/SVGSetElement.cpp:
* ksvg2/svg/SVGSetElement.h:
* ksvg2/svg/SVGStopElement.cpp:
* ksvg2/svg/SVGStopElement.h:
* ksvg2/svg/SVGStringList.cpp:
* ksvg2/svg/SVGStringList.h:
* ksvg2/svg/SVGStylable.cpp:
* ksvg2/svg/SVGStylable.h:
* ksvg2/svg/SVGStyleElement.cpp:
* ksvg2/svg/SVGStyleElement.h:
* ksvg2/svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::notifyAttributeChange):
* ksvg2/svg/SVGStyledElement.h:
* ksvg2/svg/SVGStyledLocatableElement.cpp:
* ksvg2/svg/SVGStyledLocatableElement.h:
* ksvg2/svg/SVGStyledTransformableElement.cpp:
* ksvg2/svg/SVGStyledTransformableElement.h:
* ksvg2/svg/SVGSwitchElement.cpp:
* ksvg2/svg/SVGSwitchElement.h:
* ksvg2/svg/SVGSymbolElement.cpp:
* ksvg2/svg/SVGSymbolElement.h:
* ksvg2/svg/SVGTRefElement.cpp:
* ksvg2/svg/SVGTRefElement.h:
* ksvg2/svg/SVGTSpanElement.cpp:
* ksvg2/svg/SVGTSpanElement.h:
* ksvg2/svg/SVGTests.cpp:
* ksvg2/svg/SVGTests.h:
* ksvg2/svg/SVGTextContentElement.cpp:
* ksvg2/svg/SVGTextContentElement.h:
* ksvg2/svg/SVGTextElement.cpp:
* ksvg2/svg/SVGTextElement.h:
* ksvg2/svg/SVGTextPositioningElement.cpp:
* ksvg2/svg/SVGTextPositioningElement.h:
* ksvg2/svg/SVGTitleElement.cpp:
* ksvg2/svg/SVGTitleElement.h:
* ksvg2/svg/SVGTransform.cpp:
* ksvg2/svg/SVGTransform.h:
* ksvg2/svg/SVGTransformDistance.cpp:
* ksvg2/svg/SVGTransformDistance.h:
* ksvg2/svg/SVGTransformList.cpp:
* ksvg2/svg/SVGTransformList.h:
* ksvg2/svg/SVGTransformable.cpp:
* ksvg2/svg/SVGTransformable.h:
* ksvg2/svg/SVGURIReference.cpp:
* ksvg2/svg/SVGURIReference.h:
* ksvg2/svg/SVGUnitTypes.h:
* ksvg2/svg/SVGUseElement.cpp:
* ksvg2/svg/SVGUseElement.h:
* ksvg2/svg/SVGUseElement.idl:
* ksvg2/svg/SVGViewElement.cpp:
* ksvg2/svg/SVGViewElement.h:
* ksvg2/svg/SVGZoomAndPan.cpp:
* ksvg2/svg/SVGZoomAndPan.h:
* ksvg2/svg/svgtags.in:
* loader/Cache.cpp:
(WebCore::createResource):
(WebCore::Cache::getStatistics):
* loader/Cache.h:
* loader/CachedImage.cpp:
(WebCore::CachedImage::createImage):
* loader/CachedResource.h:
(WebCore::CachedResource::):
* loader/CachedResourceClient.h:
* loader/CachedXBLDocument.cpp:
* loader/CachedXBLDocument.h:
* loader/CachedXSLStyleSheet.cpp:
* loader/CachedXSLStyleSheet.h:
* loader/DocLoader.cpp:
* loader/DocLoader.h:
* page/DOMWindow.idl:
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::selectCursor):
* page/Frame.cpp:
(WebCore::Frame::Frame):
* page/PageState.cpp:
(WebCore::PageState::PageState):
(WebCore::PageState::restore):
* platform/MimeTypeRegistry.cpp:
(WebCore::initialiseSupportedNonImageMimeTypes):
* platform/graphics/FloatPoint3D.cpp:
* platform/graphics/FloatPoint3D.h:
* platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::renderSubtreeToImage):
* platform/graphics/svg/SVGImage.cpp:
* platform/graphics/svg/SVGImage.h:
* platform/graphics/svg/SVGImageEmptyClients.h:
* platform/graphics/svg/SVGPaintServer.cpp:
* platform/graphics/svg/SVGPaintServer.h:
* platform/graphics/svg/SVGPaintServerGradient.cpp:
* platform/graphics/svg/SVGPaintServerGradient.h:
* platform/graphics/svg/SVGPaintServerLinearGradient.cpp:
* platform/graphics/svg/SVGPaintServerLinearGradient.h:
* platform/graphics/svg/SVGPaintServerPattern.cpp:
* platform/graphics/svg/SVGPaintServerPattern.h:
* platform/graphics/svg/SVGPaintServerRadialGradient.cpp:
* platform/graphics/svg/SVGPaintServerRadialGradient.h:
* platform/graphics/svg/SVGPaintServerSolid.cpp:
* platform/graphics/svg/SVGPaintServerSolid.h:
* platform/graphics/svg/SVGResource.cpp:
* platform/graphics/svg/SVGResource.h:
* platform/graphics/svg/SVGResourceClipper.cpp:
* platform/graphics/svg/SVGResourceClipper.h:
* platform/graphics/svg/SVGResourceFilter.cpp:
* platform/graphics/svg/SVGResourceFilter.h:
* platform/graphics/svg/SVGResourceMarker.cpp:
* platform/graphics/svg/SVGResourceMarker.h:
* platform/graphics/svg/SVGResourceMasker.cpp:
* platform/graphics/svg/SVGResourceMasker.h:
* platform/graphics/svg/cg/CgSupport.cpp:
* platform/graphics/svg/cg/CgSupport.h:
* platform/graphics/svg/cg/RenderPathCg.cpp:
* platform/graphics/svg/cg/SVGPaintServerCg.cpp:
* platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
* platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
* platform/graphics/svg/cg/SVGPaintServerSolidCg.cpp:
* platform/graphics/svg/cg/SVGResourceClipperCg.cpp:
* platform/graphics/svg/cg/SVGResourceFilterCg.mm:
* platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
* platform/graphics/svg/filters/SVGDistantLightSource.h:
* platform/graphics/svg/filters/SVGFEBlend.cpp:
* platform/graphics/svg/filters/SVGFEBlend.h:
* platform/graphics/svg/filters/SVGFEColorMatrix.cpp:
* platform/graphics/svg/filters/SVGFEColorMatrix.h:
* platform/graphics/svg/filters/SVGFEComponentTransfer.cpp:
* platform/graphics/svg/filters/SVGFEComponentTransfer.h:
* platform/graphics/svg/filters/SVGFEComposite.cpp:
* platform/graphics/svg/filters/SVGFEComposite.h:
* platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp:
* platform/graphics/svg/filters/SVGFEConvolveMatrix.h:
* platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp:
* platform/graphics/svg/filters/SVGFEDiffuseLighting.h:
* platform/graphics/svg/filters/SVGFEDisplacementMap.cpp:
* platform/graphics/svg/filters/SVGFEDisplacementMap.h:
* platform/graphics/svg/filters/SVGFEFlood.cpp:
* platform/graphics/svg/filters/SVGFEFlood.h:
* platform/graphics/svg/filters/SVGFEGaussianBlur.cpp:
* platform/graphics/svg/filters/SVGFEGaussianBlur.h:
* platform/graphics/svg/filters/SVGFEImage.cpp:
* platform/graphics/svg/filters/SVGFEImage.h:
* platform/graphics/svg/filters/SVGFEMerge.cpp:
* platform/graphics/svg/filters/SVGFEMerge.h:
* platform/graphics/svg/filters/SVGFEMorphology.cpp:
* platform/graphics/svg/filters/SVGFEMorphology.h:
* platform/graphics/svg/filters/SVGFEOffset.cpp:
* platform/graphics/svg/filters/SVGFEOffset.h:
* platform/graphics/svg/filters/SVGFESpecularLighting.cpp:
* platform/graphics/svg/filters/SVGFESpecularLighting.h:
* platform/graphics/svg/filters/SVGFETile.h:
* platform/graphics/svg/filters/SVGFETurbulence.cpp:
* platform/graphics/svg/filters/SVGFETurbulence.h:
* platform/graphics/svg/filters/SVGFilterEffect.cpp:
* platform/graphics/svg/filters/SVGFilterEffect.h:
* platform/graphics/svg/filters/SVGLightSource.cpp:
* platform/graphics/svg/filters/SVGLightSource.h:
* platform/graphics/svg/filters/SVGPointLightSource.h:
* platform/graphics/svg/filters/SVGSpotLightSource.h:
* platform/graphics/svg/filters/cg/SVGFEBlendCg.mm:
* platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
* platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm:
* platform/graphics/svg/filters/cg/SVGFECompositeCg.mm:
* platform/graphics/svg/filters/cg/SVGFEDiffuseLightingCg.mm:
* platform/graphics/svg/filters/cg/SVGFEDisplacementMapCg.mm:
* platform/graphics/svg/filters/cg/SVGFEFloodCg.mm:
* platform/graphics/svg/filters/cg/SVGFEGaussianBlurCg.mm:
* platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
* platform/graphics/svg/filters/cg/SVGFEHelpersCg.mm:
* platform/graphics/svg/filters/cg/SVGFEImageCg.mm:
* platform/graphics/svg/filters/cg/SVGFEMergeCg.mm:
* platform/graphics/svg/filters/cg/SVGFEOffsetCg.mm:
* platform/graphics/svg/filters/cg/SVGFESpecularLightingCg.mm:
* platform/graphics/svg/filters/cg/SVGFETileCg.mm:
* platform/graphics/svg/filters/cg/SVGFilterEffectCg.mm:
* platform/graphics/svg/qt/SVGPaintServerGradientQt.cpp:
* platform/graphics/svg/qt/SVGPaintServerLinearGradientQt.cpp:
* platform/graphics/svg/qt/SVGPaintServerPatternQt.cpp:
* platform/graphics/svg/qt/SVGPaintServerQt.cpp:
* platform/graphics/svg/qt/SVGPaintServerRadialGradientQt.cpp:
* platform/graphics/svg/qt/SVGPaintServerSolidQt.cpp:
* platform/graphics/svg/qt/SVGResourceClipperQt.cpp:
* platform/graphics/svg/qt/SVGResourceFilterQt.cpp:
* platform/graphics/svg/qt/SVGResourceMaskerQt.cpp:
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::absoluteImageURL):
(WebCore::HitTestResult::absoluteLinkURL):
(WebCore::HitTestResult::isLiveLink):
* rendering/RenderForeignObject.cpp:
* rendering/RenderForeignObject.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::isTransparent):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::containingBlock):
* rendering/RenderObject.h:
* rendering/RenderPath.cpp:
* rendering/RenderPath.h:
* rendering/RenderSVGBlock.cpp:
* rendering/RenderSVGBlock.h:
* rendering/RenderSVGContainer.cpp:
* rendering/RenderSVGContainer.h:
* rendering/RenderSVGGradientStop.cpp:
* rendering/RenderSVGGradientStop.h:
* rendering/RenderSVGHiddenContainer.cpp:
* rendering/RenderSVGHiddenContainer.h:
* rendering/RenderSVGImage.cpp:
* rendering/RenderSVGImage.h:
* rendering/RenderSVGInline.cpp:
* rendering/RenderSVGInline.h:
* rendering/RenderSVGInlineText.cpp:
* rendering/RenderSVGInlineText.h:
* rendering/RenderSVGTSpan.cpp:
* rendering/RenderSVGTSpan.h:
* rendering/RenderSVGText.cpp:
* rendering/RenderSVGText.h:
* rendering/RenderStyle.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::~StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
(WebCore::RenderStyle::RenderStyle):
(WebCore::RenderStyle::inheritFrom):
(WebCore::RenderStyle::operator==):
(WebCore::RenderStyle::inheritedNotEqual):
(WebCore::RenderStyle::diff):
* rendering/RenderStyle.h:
* rendering/RenderText.cpp:
(WebCore::RenderText::setStyle):
(WebCore::RenderText::setTextInternal):
* rendering/RenderTreeAsText.cpp:
(WebCore::write):
(WebCore::externalRepresentation):
* rendering/SVGInlineFlowBox.cpp:
* rendering/SVGInlineFlowBox.h:
* rendering/SVGRenderTreeAsText.cpp:
* rendering/SVGRenderTreeAsText.h:
* rendering/SVGRootInlineBox.cpp:
* rendering/SVGRootInlineBox.h:
* rendering/bidi.cpp:
(WebCore::shouldPreserveNewline):
(WebCore::RenderBlock::findNextLineBreak):
* webcore-base.bkl:
* xml/NativeXPathNSResolver.cpp:
* xml/NativeXPathNSResolver.h:
* xml/XPathEvaluator.cpp:
* xml/XPathEvaluator.h:
* xml/XPathExpression.cpp:
* xml/XPathExpression.h:
* xml/XPathExpressionNode.cpp:
* xml/XPathExpressionNode.h:
* xml/XPathFunctions.cpp:
* xml/XPathFunctions.h:
* xml/XPathGrammar.y:
* xml/XPathNSResolver.cpp:
* xml/XPathNSResolver.h:
* xml/XPathNamespace.cpp:
* xml/XPathNamespace.h:
* xml/XPathParser.cpp:
* xml/XPathParser.h:
* xml/XPathPath.cpp:
* xml/XPathPath.h:
* xml/XPathPredicate.cpp:
* xml/XPathPredicate.h:
* xml/XPathResult.cpp:
* xml/XPathResult.h:
* xml/XPathStep.cpp:
* xml/XPathStep.h:
* xml/XPathUtil.cpp:
* xml/XPathUtil.h:
* xml/XPathValue.cpp:
* xml/XPathValue.h:
* xml/XPathVariableReference.cpp:
* xml/XPathVariableReference.h:
* xml/XSLImportRule.cpp:
* xml/XSLImportRule.h:
* xml/XSLStyleSheet.cpp:
* xml/XSLStyleSheet.h:
* xml/XSLTProcessor.cpp:
* xml/XSLTProcessor.h:
2007-02-25 Mitz Pettel <mitz@webkit.org>
Reviewed by David Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12886
Crash with Scriptalicious javascript library
Test: fast/dynamic/float-withdrawal.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlockChildren): Detect when a child block had
intruding floats in a previous layout, and in that case force it to relayout.
2007-02-25 David Hyatt <hyatt@apple.com>
Revert my change to the default fill color. Just set the color to transparent explicitly when
drawing textarea resizer frames.
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContextState::GraphicsContextState):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintOverflowControls):
2007-02-25 Sam Weinig <sam@webkit.org>
Update forgotten files.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPosition):
2007-02-25 David Hyatt <hyatt@apple.com>
Fix for regression caused by changing the containing block of positioned elements with no positioned ancestor
to be the initial containing block (represented in our tree by the RenderView). Rework RenderView's layout
to have very few special cases. Now it will just relayout its children when the width/height of the
view actually changes. Positioned elements no longer get a special additional layout, since width/height
adjustments are caught by the base class already anyway.
Reviewed by mjs, darin
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
(WebCore::RenderFlexibleBox::layoutVerticalBox):
* rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
(WebCore::RenderView::layout):
* rendering/RenderView.h:
2007-02-25 Maciej Stachowiak <mjs@apple.com>
Not reviewed, build fix.
- fix build breakage
* platform/gdk/ScrollViewGdk.cpp:
(WebCore::ScrollView::fullyClippedContentRect):
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::fullyClippedContentRect):
2007-02-24 Maciej Stachowiak <mjs@apple.com>
Reviewed by Adam.
- fixed layout test failure in fast/overflow/scrollRevealButton
I added a new ScrollView method, fullyClippedContentRect, that vies the content rect
as clipped by all ancestor scroll views, not just this one. Currently it only works
correctly on mac however. visibleContentRect, only accounting for the clipping from
this particular scroll view, is sufficient for most purposes.
* page/Frame.cpp:
(WebCore::Frame::visibleSelectionRect):
(WebCore::Frame::setIsActive):
(WebCore::Frame::markAllMatchesForText):
* platform/ScrollView.h:
* platform/gdk/ScrollViewGdk.cpp:
(WebCore::ScrolView::fullyClippedContentRect):
* platform/mac/ScrollViewMac.mm:
(WebCore::ScrollView::fullyClippedContentRect):
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrolView::fullyClippedContentRect):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible):
2007-02-24 Adam Roben <aroben@apple.com>
Reviewed by Steve.
"Look Up in Dictionary" context menu item should be Mac-only for now,
since it's only implemented on that platform (<rdar://problem/5021468>)
* platform/ContextMenu.cpp:
(WebCore::ContextMenu::populate): Wrap all instances of the dictionary
menu item in #if PLATFORM(MAC).
2007-02-24 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
Fixed <rdar://problem/4987649> leaks in BidiRun::operator new seen while
running WebKit unit tests
In bidi.cpp, some functions allocate BidiRuns and put them in a global data
structure, while others uses the BidiRuns in the global data structure.
The caller is responsible for knowing which functions may allocate runs
and which may use them, and calling deleteBidiRuns() at the appropriate time.
The fix is to add some calls to deleteBidiRuns() where they were missing.
I also added a BidiRun counter because these two leaks were introduced by
our two bidi.cpp experts, so the odds that leaks will creep in again
in the future seem pretty high.
* rendering/bidi.cpp:
(WebCore::RenderBlock::bidiReorderCharacters): Added missing call to
deleteBidiRuns().
(WebCore::BidiRunCounter::~BidiRunCounter):
(WebCore::BidiRun::operator delete):
(WebCore::RenderBlock::layoutInlineChildren): Added missing call to
deleteBidiRuns(). Moved call to deleteBidiRuns() to same scope as call to
bidiReorderLine(), to emphasize that they go together like new/delete.
In theory, the old code was just as good, but I didn't want to rely on
theory.
2007-02-24 David Harrison <harrison@apple.com>
Reviewed by Kevin.
<rdar://problem/4961431> Image with empty string alt tag should be ignored
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject accessibilityIsIgnored]):
Ignore img element that has an alt attribute, but that string is empty.
2007-02-24 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Gdk improvements.
* platform/gdk/FrameGdk.cpp: only scroll on keydown, not both keydown and keyup.
(WebCore::FrameGdk::keyPress):
(WebCore::FrameGdk::handleGdkEvent):
(WebCore::Frame::print):
(WebCore::Frame::issueTransposeCommand):
(WebCore::Frame::respondToChangedSelection):
(WebCore::Frame::cleanupPlatformScriptObjects):
(WebCore::Frame::dragImageForSelection):
* platform/network/gdk/ResourceHandleManager.cpp: don't free memory that
doesn't belong to us.
(WebCore::ResourceHandleManager::downloadTimerCallback):
2007-02-23 Kevin Decker <kdecker@apple.com>
Reviewed by Anders.
Fixed: <rdar://problem/4971226> REGRESSION: Replying to closed HTML mail message does not quote original body (12503)
There were two problems here:
* page/mac/WebCoreFrameBridge.mm:
(+[WebCoreFrameBridge stringWithData:textEncodingName:]): The old code said "if there is no text encoding name than
assume WindowsLatin1 (iso-8859-1) and try to decode that". That's not sufficient because it doesn't handle the fallback
case for unknown encodings. This method will now attempt to decode using WindowsLatin1 for unknown encoding types.
* platform/mac/mac-encodings.txt: Added the missing "macroman" encoding type.
2007-02-23 Mitz Pettel <mitz@webkit.org>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=12856
REGRESSION (r13685): Canceling the suggestion popup does not revert the change
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::doApply): If the fragment to be inserted
is empty, first delete the selection, and only then bail out.
2007-02-23 Anders Carlsson <acarlsson@apple.com>
Reviewed by Adam.
<rdar://problem/5001923>
REGRESSION: Crash when navigating forward from an error page in WebFrameLoaderClient::dispatchDidReceiveContentLength
Fix an error that was introduced in revision r18541. We should check if the provisional document loader
has an unreachable URL, not the actual document loader.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::updateHistoryForCommit):
2007-02-23 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12823
REGRESSION(r16968-16977): unable to prevent selection by cancelling "selectstart" event
Test: fast/events/selectstart-during-autoscroll.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::autoscroll): Invoke the renderer's shouldSelect() --
which dispatches the selection DOM event and gives it a chance to cancel
the selection -- before updating the selection during autoscroll.
2007-02-23 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
Fix for http://bugs.webkit.org/show_bug.cgi?id=12870
It turns out short circuiting DragData::containsURL() was bad
* manual-tests/directory-drop-on-view.html: Added.
* platform/mac/DragDataMac.mm:
(WebCore::DragData::containsURL):
2007-02-23 Maciej Stachowiak <mjs@apple.com>
Reviewed by Mitz.
- 12.5% speedup on BenchJS test 6
Partial fix for http://bugs.webkit.org/show_bug.cgi?id=12866
It turns out that calling documentVisibleRect on an NSScrollView is pretty expensive,
and calling visibleRect even more so. Take measures to call them less often.
* platform/mac/ScrollViewMac.mm:
(WebCore::ScrollView::visibleContentRect): Use documentVisibleRect when possible.
(WebCore::ScrollView::updateContents): Use visibleContentRect to be able to use
documentVisibleRect when possible.
* rendering/RenderView.cpp:
(WebCore::RenderView::repaintViewRectangle): Don't get or intersect with viewRect
if we don't have a parent frame, since the ScrollView will do that anyway. Also,
don't get contentX and contentY separately since they are in the viewRect already.
(WebCore::RenderView::viewRect): Use visibleContentRect instead of getting each
coordinate individually, to avoid calling documentVisibleRect repeatedly.
2007-02-23 Maciej Stachowiak <mjs@apple.com>
Reviewed by Mitz.
- 2% speedup on BenchJS test 6
Partial fix for http://bugs.webkit.org/show_bug.cgi?id=12866
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::cssText): Use format() instead of
number() followed by append of a constant string.
2007-02-22 George Staikos <staikos@kde.org>
Fix the Qt build.
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::ClipboardQt):
2007-02-22 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben, who never sleeps.
To avoid code duplication, move notImplementedGdk() macro to a separate
header file. Remove existing notImplementedGdk() macros and replace
remaining notImplemented() to notImplementedGdk() in gdk code.
* loader/gdk/DocumentLoaderGdk.cpp:
(WebCore::DocumentLoader::getResponseModifiedHeader):
* loader/gdk/FrameLoaderClientGdk.cpp:
(WebCore::FrameLoaderClientGdk::hasWebView):
(WebCore::FrameLoaderClientGdk::hasFrameView):
* page/gdk/ContextMenuClientGdk.cpp:
(WebCore::ContextMenuClientGdk::contextMenuDestroyed):
(WebCore::ContextMenuClientGdk::getCustomMenuFromDefaultItems):
(WebCore::ContextMenuClientGdk::contextMenuItemSelected):
(WebCore::ContextMenuClientGdk::downloadURL):
(WebCore::ContextMenuClientGdk::copyImageToClipboard):
(WebCore::ContextMenuClientGdk::searchWithGoogle):
(WebCore::ContextMenuClientGdk::lookUpInDictionary):
(WebCore::ContextMenuClientGdk::speak):
(WebCore::ContextMenuClientGdk::stopSpeaking):
* page/gdk/EventHandlerGdk.cpp:
* platform/gdk/CursorGdk.cpp:
(WebCore::Cursor::Cursor):
* platform/gdk/EditorClientGdk.cpp:
* platform/gdk/NotImplementedGdk.h: Added.
* platform/gdk/PopupMenuGdk.cpp:
(WebCore::PopupMenu::PopupMenu):
(WebCore::PopupMenu::~PopupMenu):
(WebCore::PopupMenu::show):
(WebCore::PopupMenu::hide):
(WebCore::PopupMenu::updateFromElement):
* platform/gdk/RenderThemeGdk.cpp:
* platform/gdk/ScreenGdk.cpp:
(WebCore::screenDepth):
(WebCore::screenDepthPerComponent):
(WebCore::screenIsMonochrome):
(WebCore::screenRect):
(WebCore::screenAvailableRect):
* platform/gdk/TemporaryLinkStubs.cpp:
* platform/graphics/gdk/ImageGdk.cpp:
(WebCore::Image::drawPattern):
* platform/network/gdk/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::setDefersLoading):
* platform/network/gdk/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::setupPUT):
(WebCore::ResourceHandleManager::setupPOST):
2007-02-22 Ian Eng <ian.eng.webkit@gmail.com>
Reviewed by Maciej.
- Patch for http://bugs.webkit.org/show_bug.cgi?id=12850
Leaks >10k objects
and
- http://bugs.webkit.org/show_bug.cgi?id=12853
add a EventListener leak counter
Problem: RemoveEventListener leaks memory if the listener is not
registered.
Fix: Added Window::findJSEventListener function w/o creating a
JSEventListener; Renamed getJSEventListener to findOrCreateJSEventListener;
As an enhancement, added a leak counter for EventListeners.
Added a test case, LayoutTests/fast/events/remove-event-listener.html.
* WebCore/bindings/js/kjs_dom.cpp:
* WebCore/bindings/js/kjs_window.h:
* WebCore/bindings/js/kjs_window.cpp:
* WebCore/bindings/js/kjs_event.cpp: Add a leak counter.
* WebCore/bindings/js/JSXMLHttpRequest.cpp:
* LayoutTests/fast/events/remove-event-listener.html:
2007-02-22 Anders Carlsson <acarlsson@apple.com>
Reviewed by Geoff.
<rdar://problem/4998203>
REGRESSION: Back-forward list gets messed up when navigating to error pages with back-forward cache turned off
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::load):
Remove call to setPolicyDocumentLoader(), the policy document loader is set immediately after, and setting it before
calling shouldReloadToHandleUnreachableURL causes us to get the wrong URL.
(WebCore::FrameLoader::shouldReloadToHandleUnreachableURL):
Check if the unreachable URL is equal to the document loader's request.
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
Check the provisional document loader's unreachable URL.
2007-02-22 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5007143>
REGRESSION: WebKit doesn't remember horizontal position of caret when moving forward by line
* editing/SelectionController.cpp:
(WebCore::SelectionController::SelectionController): Initialize
m_xPosForVerticalArrowNavigation.
(WebCore::SelectionController::setSelection): Call the new setter.
(WebCore::SelectionController::modifyMovingRightForward): For line
and paragraph granularities, use the saved xPosForVerticalArrowNavigation
even if the old selection was a range. Use the x position of the
*start*, not the end of the selection if there is no saved
xPosForVerticalArrowNavigation. This matches TextEdit's behavior.
(WebCore::SelectionController::modifyMovingLeftBackward): For line
and paragraph granularities, use the saved xPosForVerticalArrowNavigation
even if the old selection was a range.
(WebCore::SelectionController::modify): Preserve the xPosForVerticalArrowNavigation
for line and paragraph granularities.
(WebCore::SelectionController::xPosForVerticalArrowNavigation): Removed
the recalc bool because it is now always false.
(WebCore::SelectionController::setXPosForVerticalArrowNavigation): Added.
* editing/SelectionController.h: Moved m_xPosForVerticalArrowNavigation
from Frame.
* page/Frame.cpp: Moved m_xPosForVerticalArrowNavigation to SelectionController.
* page/Frame.h: Ditto.
* page/FramePrivate.h: Ditto.
2007-02-22 Beth Dakin <bdakin@apple.com>
Reviewed by Adam. Manual test added.
Fix for http://bugs.webkit.org/show_bug.cgi?id=12399 REGRESSION:
Unable to prevent default context menu from appearing. <rdar://
problem/5017416>
This problem appeared because of two facets of the current context
menu design. First, all context menu events are now considered to
be "swallowed" since we take care of building up the regular
context menu through the defaultEventHandler(). Second, the context
menu controller holds onto it's context menu until a new one is
created. There would be logistical problems changing this since
AppKit relies on the menu being around for as long as it is
visible on the screen and we don't get any notification once the
menu is popped-down.
This patch fixes the problem by giving WebKit a way to clear the
controller's context menu. WebKit now clears the menu before it
propagates a new context menu event through the DOM.
* WebCore.exp:
* manual-tests/DOMContextMenuEvent.html: Added.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::clearContextMenu):
* page/ContextMenuController.h:
2007-02-22 John Sullivan <sullivan@apple.com>
Reviewed by Kevin and Adele
- fixed <rdar://problem/4129417> Need final art for textarea's resize corner
This probably broke some layout pixel tests since the image changed. I'm going to
track those down in a moment (non-trivial since there are a bunch failing for other
reasons).
* Resources/textAreaResizeCorner.tiff:
new art
* Resources/deleteButton.tiff:
* Resources/deleteButtonPressed.tiff:
these got smaller when I ran compress-tiffs on this directory
2007-02-22 Oliver Hunt <oliver@apple.com>
Reviewed by Ada, Lou and Steve.
Moving basic components of ClipboardMac to Clipboard,
last of the basic common code merge will come later (namely setting the
drag element/image).
Tidying up in DragController including a few bad PassRefPtr uses and
removing unnecessary accessors. Also initialise fields properly to
fix <rdar:/problems/5014889>
* dom/Clipboard.cpp:
(WebCore::Clipboard::Clipboard):
New constructor
* dom/Clipboard.h:
(WebCore::Clipboard::isForDragging):
(WebCore::Clipboard::dragLocation):
(WebCore::Clipboard::dragImage):
(WebCore::Clipboard::dragImageElement):
Exposing common data
* page/DragController.cpp:
(WebCore::DragController::DragController):
Initialise m_isHandlingDrag (oops)
(WebCore::documentFragmentFromDragData):
(WebCore::DragController::tryDocumentDrag):
Fixing PassRefPtr misuse
(WebCore::DragController::canProcessDrag):
(WebCore::DragController::startDrag):
(WebCore::DragController::doSystemDrag):
Make sure we're using the correct coordinate space
* page/EventHandler.cpp:
(WebCore::EventHandler::handleDrag):
Reset drag source correctly
* platform/mac/ClipboardMac.h:
* platform/mac/ClipboardMac.mm:
(WebCore::ClipboardMac::ClipboardMac):
update constructor to use new Clipboard constructor
2007-02-22 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Fix for <rdar://problem/5014970> 9A374: Tabs don't work in the message body
Test: fast/events/keypress-insert-tab.html
* page/EventHandler.cpp: (WebCore::EventHandler::defaultTextInputEventHandler):
If the defaultTabEventHandler doesn't handle the event, then go on to the insertText case.
2007-02-22 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin.
<rdar://problem/4948887> REGRESSION: Correct differences in public DOM API that inadvertently changed in Leopard
* bindings/objc/PublicDOMInterfaces.h: Changes return types for two size properties, adds deprecated DOMEventTarget methods.
* bindings/scripts/CodeGeneratorObjC.pm: Fixed public API checking for protocols, adds support for ConvertToString.
* dom/EventTarget.idl: Marks addEventListener and removeEventListener with the OldStyleObjC attribute.
* html/HTMLBaseFontElement.idl: Changes the size property to a DOMString for ObjC only.
* html/HTMLInputElement.idl: Changes the size property to a DOMString for ObjC only.
* html/HTMLOptionsCollection.idl: Changes the length property to be unsigned.
2007-02-22 Adele Peterson <adele@apple.com>
Reviewed by John.
Fix <rdar://problem/5016969> REGRESSION: "Check Spelling As You Type" context menu item is never checked
* platform/ContextMenu.cpp: (WebCore::ContextMenu::checkOrEnableIfNeeded): Set shouldCheck for ContextMenuItemTagCheckSpellingWhileTyping.
2007-02-22 Antti Koivisto <antti@apple.com>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=11447
REGRESSION(NativeListBox): List not scrolled to preselected option
<rdar://problem/4957463>
Initiate scroll when selected <option> is added to <select>.
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::insertedIntoDocument):
* html/HTMLOptionElement.h:
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::notifyOptionSelected):
(WebCore::HTMLSelectElement::updateListBoxSelection):
(WebCore::HTMLSelectElement::scrollToSelection):
* html/HTMLSelectElement.h:
2007-02-22 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Fix sites with fixed positioned backgrounds.
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::setStaticBackground):
2007-02-22 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Properly implement canvas/scrollview's. Get
rid of ScrollViewCanvas and replace it with
a tailor abstractscrollview (now in qwebframe).
Scrolling of pages is finally completely smooth.
* WebCore.pro:
* platform/ScrollView.h:
* platform/qt/ScrollViewCanvasQt.cpp: Removed.
* platform/qt/ScrollViewCanvasQt.h: Removed.
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::ScrollView):
(WebCore::ScrollView::setScrollArea):
(WebCore::ScrollView::updateContents):
(WebCore::ScrollView::resizeContents):
(WebCore::ScrollView::contentsWidth):
(WebCore::ScrollView::contentsHeight):
(WebCore::ScrollView::contentsToWindow):
(WebCore::ScrollView::windowToContents):
(WebCore::ScrollView::addChild):
* platform/qt/WidgetQt.cpp:
(WebCore::WidgetPrivate::canvas):
(WebCore::WidgetPrivate::parentScroll):
(WebCore::WidgetPrivate::setGeometry):
(WebCore::WidgetPrivate::geometry):
(WebCore::Widget::frameGeometry):
(WebCore::Widget::setQWidget):
(WebCore::Widget::setFrameGeometry):
2007-02-21 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Improve notImplemented() macro for gdk. Rename to notImplementedGdk() to
give it a unique name (so that it doesn't clash with notImplemented()
for other platforms).
Make it print a given warning only once, so that frequently called
functions don't clutter the output.
Don't print the warning if DISABLE_NI_WARNING env variable is set.
* loader/gdk/FrameLoaderClientGdk.cpp:
(WebCore::FrameLoaderClientGdk::dispatchDidReceiveAuthenticationChallenge):
(WebCore::FrameLoaderClientGdk::dispatchDidCancelAuthenticationChallenge):
(WebCore::FrameLoaderClientGdk::dispatchWillSendRequest):
(WebCore::FrameLoaderClientGdk::assignIdentifierToInitialRequest):
(WebCore::FrameLoaderClientGdk::createPlugin):
(WebCore::FrameLoaderClientGdk::createFrame):
(WebCore::FrameLoaderClientGdk::redirectDataToPlugin):
(WebCore::FrameLoaderClientGdk::createJavaAppletWidget):
(WebCore::FrameLoaderClientGdk::objectContentType):
(WebCore::FrameLoaderClientGdk::overrideMediaType):
(WebCore::FrameLoaderClientGdk::windowObjectCleared):
(WebCore::FrameLoaderClientGdk::hasWebView):
(WebCore::FrameLoaderClientGdk::hasFrameView):
(WebCore::FrameLoaderClientGdk::frameLoadCompleted):
(WebCore::FrameLoaderClientGdk::saveViewStateToItem):
(WebCore::FrameLoaderClientGdk::restoreViewState):
(WebCore::FrameLoaderClientGdk::privateBrowsingEnabled):
(WebCore::FrameLoaderClientGdk::makeDocumentView):
(WebCore::FrameLoaderClientGdk::makeRepresentation):
(WebCore::FrameLoaderClientGdk::forceLayout):
(WebCore::FrameLoaderClientGdk::forceLayoutForNonHTML):
(WebCore::FrameLoaderClientGdk::setCopiesOnScroll):
(WebCore::FrameLoaderClientGdk::detachedFromParent1):
(WebCore::FrameLoaderClientGdk::detachedFromParent2):
(WebCore::FrameLoaderClientGdk::detachedFromParent3):
(WebCore::FrameLoaderClientGdk::detachedFromParent4):
(WebCore::FrameLoaderClientGdk::loadedFromPageCache):
(WebCore::FrameLoaderClientGdk::dispatchDidHandleOnloadEvents):
(WebCore::FrameLoaderClientGdk::dispatchDidReceiveServerRedirectForProvisionalLoad):
(WebCore::FrameLoaderClientGdk::dispatchDidCancelClientRedirect):
(WebCore::FrameLoaderClientGdk::dispatchWillPerformClientRedirect):
(WebCore::FrameLoaderClientGdk::dispatchDidChangeLocationWithinPage):
(WebCore::FrameLoaderClientGdk::dispatchWillClose):
(WebCore::FrameLoaderClientGdk::dispatchDidReceiveIcon):
(WebCore::FrameLoaderClientGdk::dispatchDidStartProvisionalLoad):
(WebCore::FrameLoaderClientGdk::dispatchDidReceiveTitle):
(WebCore::FrameLoaderClientGdk::dispatchDidCommitLoad):
(WebCore::FrameLoaderClientGdk::dispatchDidFinishDocumentLoad):
(WebCore::FrameLoaderClientGdk::dispatchDidFirstLayout):
(WebCore::FrameLoaderClientGdk::dispatchShow):
(WebCore::FrameLoaderClientGdk::cancelPolicyCheck):
(WebCore::FrameLoaderClientGdk::dispatchDidLoadMainResource):
(WebCore::FrameLoaderClientGdk::revertToProvisionalState):
(WebCore::FrameLoaderClientGdk::clearUnarchivingState):
(WebCore::FrameLoaderClientGdk::willChangeTitle):
(WebCore::FrameLoaderClientGdk::finishedLoading):
(WebCore::FrameLoaderClientGdk::finalSetupForReplace):
(WebCore::FrameLoaderClientGdk::setDefersLoading):
(WebCore::FrameLoaderClientGdk::isArchiveLoadPending):
(WebCore::FrameLoaderClientGdk::cancelPendingArchiveLoad):
(WebCore::FrameLoaderClientGdk::clearArchivedResources):
(WebCore::FrameLoaderClientGdk::canHandleRequest):
(WebCore::FrameLoaderClientGdk::canShowMIMEType):
(WebCore::FrameLoaderClientGdk::representationExistsForURLScheme):
(WebCore::FrameLoaderClientGdk::generatedMIMETypeForURLScheme):
(WebCore::FrameLoaderClientGdk::provisionalLoadStarted):
(WebCore::FrameLoaderClientGdk::didFinishLoad):
(WebCore::FrameLoaderClientGdk::prepareForDataSourceReplacement):
(WebCore::FrameLoaderClientGdk::setTitle):
(WebCore::FrameLoaderClientGdk::setDocumentViewFromPageCache):
(WebCore::FrameLoaderClientGdk::dispatchDidReceiveContentLength):
(WebCore::FrameLoaderClientGdk::dispatchDidFinishLoading):
(WebCore::FrameLoaderClientGdk::dispatchDidFailLoading):
(WebCore::FrameLoaderClientGdk::dispatchDidLoadResourceFromMemoryCache):
(WebCore::FrameLoaderClientGdk::dispatchDidFailProvisionalLoad):
(WebCore::FrameLoaderClientGdk::dispatchDidFailLoad):
(WebCore::FrameLoaderClientGdk::download):
(WebCore::FrameLoaderClientGdk::cancelledError):
(WebCore::FrameLoaderClientGdk::cannotShowURLError):
(WebCore::FrameLoaderClientGdk::interruptForPolicyChangeError):
(WebCore::FrameLoaderClientGdk::cannotShowMIMETypeError):
(WebCore::FrameLoaderClientGdk::fileDoesNotExistError):
(WebCore::FrameLoaderClientGdk::shouldFallBack):
(WebCore::FrameLoaderClientGdk::willUseArchive):
(WebCore::FrameLoaderClientGdk::saveDocumentViewToPageCache):
(WebCore::FrameLoaderClientGdk::canCachePage):
(WebCore::FrameLoaderClientGdk::dispatchCreatePage):
(WebCore::FrameLoaderClientGdk::dispatchUnableToImplementPolicy):
(WebCore::FrameLoaderClientGdk::setMainDocumentError):
(WebCore::FrameLoaderClientGdk::startDownload):
(WebCore::FrameLoaderClientGdk::updateGlobalHistoryForStandardLoad):
(WebCore::FrameLoaderClientGdk::updateGlobalHistoryForReload):
(WebCore::FrameLoaderClientGdk::shouldGoToHistoryItem):
* page/gdk/EventHandlerGdk.cpp:
(WebCore::EventHandler::passMouseDownEventToWidget):
(WebCore::EventHandler::eventActivatedView):
(WebCore::EventHandler::passSubframeEventToSubframe):
(WebCore::EventHandler::passWheelEventToWidget):
(WebCore::EventHandler::createDraggingClipboard):
* platform/gdk/EditorClientGdk.cpp:
(WebCore::EditorClientGdk::shouldDeleteRange):
(WebCore::EditorClientGdk::isContinuousSpellCheckingEnabled):
(WebCore::EditorClientGdk::isGrammarCheckingEnabled):
(WebCore::EditorClientGdk::spellCheckerDocumentTag):
(WebCore::EditorClientGdk::shouldBeginEditing):
(WebCore::EditorClientGdk::shouldEndEditing):
(WebCore::EditorClientGdk::shouldInsertText):
(WebCore::EditorClientGdk::shouldChangeSelectedRange):
(WebCore::EditorClientGdk::shouldApplyStyle):
(WebCore::EditorClientGdk::didBeginEditing):
(WebCore::EditorClientGdk::respondToChangedContents):
(WebCore::EditorClientGdk::didEndEditing):
(WebCore::EditorClientGdk::didWriteSelectionToPasteboard):
(WebCore::EditorClientGdk::didSetSelectionTypesForPasteboard):
(WebCore::EditorClientGdk::selectWordBeforeMenuEvent):
(WebCore::EditorClientGdk::isEditable):
(WebCore::EditorClientGdk::registerCommandForUndo):
(WebCore::EditorClientGdk::registerCommandForRedo):
(WebCore::EditorClientGdk::clearUndoRedoOperations):
(WebCore::EditorClientGdk::canUndo):
(WebCore::EditorClientGdk::canRedo):
(WebCore::EditorClientGdk::undo):
(WebCore::EditorClientGdk::redo):
(WebCore::EditorClientGdk::shouldInsertNode):
(WebCore::EditorClientGdk::pageDestroyed):
(WebCore::EditorClientGdk::smartInsertDeleteEnabled):
(WebCore::EditorClientGdk::toggleContinuousSpellChecking):
(WebCore::EditorClientGdk::textFieldDidBeginEditing):
(WebCore::EditorClientGdk::textFieldDidEndEditing):
(WebCore::EditorClientGdk::textDidChangeInTextField):
(WebCore::EditorClientGdk::doTextFieldCommandFromEvent):
(WebCore::EditorClientGdk::textWillBeDeletedInTextField):
(WebCore::EditorClientGdk::textDidChangeInTextArea):
* platform/gdk/RenderThemeGdk.cpp:
(WebCore::RenderThemeGdk::setCheckboxSize):
(WebCore::RenderThemeGdk::setRadioSize):
(WebCore::RenderThemeGdk::adjustTextFieldStyle):
* platform/gdk/TemporaryLinkStubs.cpp:
(FrameView::updateBorder):
(Widget::setEnabled):
(Widget::isEnabled):
(Widget::focusPolicy):
(Widget::enableFlushDrawing):
(Widget::disableFlushDrawing):
(Widget::lockDrawingFocus):
(Widget::unlockDrawingFocus):
(Widget::removeFromParent):
(Widget::paint):
(Widget::setIsSelected):
(Widget::invalidate):
(Widget::invalidateRect):
(PlatformMouseEvent::PlatformMouseEvent):
(WebCore::findNextSentenceFromIndex):
(WebCore::findSentenceBoundary):
(WebCore::findNextWordFromIndex):
(ChromeClientGdk::chromeDestroyed):
(ChromeClientGdk::windowRect):
(ChromeClientGdk::setWindowRect):
(ChromeClientGdk::pageRect):
(ChromeClientGdk::scaleFactor):
(ChromeClientGdk::focus):
(ChromeClientGdk::unfocus):
(ChromeClientGdk::createWindow):
(ChromeClientGdk::createModalDialog):
(ChromeClientGdk::show):
(ChromeClientGdk::canRunModal):
(ChromeClientGdk::runModal):
(ChromeClientGdk::setToolbarsVisible):
(ChromeClientGdk::toolbarsVisible):
(ChromeClientGdk::setStatusbarVisible):
(ChromeClientGdk::statusbarVisible):
(ChromeClientGdk::setScrollbarsVisible):
(ChromeClientGdk::scrollbarsVisible):
(ChromeClientGdk::setMenubarVisible):
(ChromeClientGdk::menubarVisible):
(ChromeClientGdk::setResizable):
(ChromeClientGdk::closeWindowSoon):
(ChromeClientGdk::canTakeFocus):
(ChromeClientGdk::takeFocus):
(ChromeClientGdk::canRunBeforeUnloadConfirmPanel):
(ChromeClientGdk::addMessageToConsole):
(ChromeClientGdk::runBeforeUnloadConfirmPanel):
(ChromeClientGdk::runJavaScriptAlert):
(ChromeClientGdk::runJavaScriptConfirm):
(ChromeClientGdk::runJavaScriptPrompt):
(ChromeClientGdk::setStatusbarText):
(ChromeClientGdk::shouldInterruptJavaScript):
(ChromeClientGdk::tabsToLinks):
(ChromeClientGdk::windowResizerRect):
(ChromeClientGdk::addToDirtyRegion):
(ChromeClientGdk::scrollBackingStore):
(ChromeClientGdk::updateBackingStore):
(PlugInInfoStore::createPluginInfoForPluginAtIndex):
(PlugInInfoStore::pluginCount):
(WebCore::PlugInInfoStore::supportsMIMEType):
(WebCore::refreshPlugins):
(SearchPopupMenu::saveRecentSearches):
(SearchPopupMenu::loadRecentSearches):
(SearchPopupMenu::SearchPopupMenu):
(PlatformScrollbar::PlatformScrollbar):
(PlatformScrollbar::~PlatformScrollbar):
(PlatformScrollbar::setEnabled):
(PlatformScrollbar::paint):
(PlatformScrollbar::updateThumbPosition):
(PlatformScrollbar::updateThumbProportion):
(PlatformScrollbar::setRect):
(FileChooser::FileChooser):
(FileChooser::~FileChooser):
(FileChooser::openFileChooser):
(FileChooser::basenameForWidth):
(ResourceHandle::willLoadFromCache):
(ResourceHandle::loadsBlocked):
(ResourceHandle::loadResourceSynchronously):
(Icon::Icon):
(Icon::~Icon):
(Icon::newIconForFile):
(Icon::paint):
(Font::drawComplexText):
(Font::floatWidthForComplexText):
(Font::offsetForPositionForComplexText):
(PageCache::close):
(Editor::ignoreSpelling):
(Editor::learnSpelling):
(Editor::isSelectionUngrammatical):
(Editor::isSelectionMisspelled):
(Editor::guessesForMisspelledSelection):
(Editor::guessesForUngrammaticalSelection):
(Editor::markMisspellingsAfterTypingToPosition):
(Editor::newGeneralClipboard):
(Pasteboard::generalPasteboard):
(Pasteboard::writeSelection):
(Pasteboard::writeURL):
(Pasteboard::writeImage):
(Pasteboard::clear):
(Pasteboard::canSmartReplace):
(Pasteboard::documentFragment):
(Pasteboard::plainText):
(Pasteboard::Pasteboard):
(Pasteboard::~Pasteboard):
(ContextMenu::ContextMenu):
(ContextMenu::~ContextMenu):
(ContextMenu::appendItem):
(ContextMenuItem::ContextMenuItem):
(ContextMenuItem::~ContextMenuItem):
(ContextMenuItem::releasePlatformDescription):
(ContextMenuItem::type):
(ContextMenuItem::setType):
(ContextMenuItem::action):
(ContextMenuItem::setAction):
(ContextMenuItem::title):
(ContextMenuItem::setTitle):
(ContextMenuItem::platformSubMenu):
(ContextMenuItem::setSubMenu):
(ContextMenuItem::setChecked):
(ContextMenuItem::setEnabled):
(WebCore::supportedKeySizes):
(WebCore::systemBeep):
(WebCore::userIdleTime):
2007-02-21 Antti Koivisto <antti@apple.com>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12820
REGRESSION (r19706): Caret not painted after popup, failing editing/pasteboard/4641033
Yet another attempt to figure out exactly who should paint the caret.
* editing/SelectionController.cpp:
(WebCore::SelectionController::isInsideNode):
* editing/SelectionController.h:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintCaret):
2007-02-21 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12818
REGRESSION (r19148): shacknews.com does not render completely
Test: fast/dynamic/staticY-marking-parents-regression.html
Changed calls to setChildNeedsLayout(true) during layout to
setChildNeedsLayout(true, false). Prior to r19148, the default behavior
of marking containers did not matter because the caller was the container
and was already marked, but r19148 added marking of the parent of
objects with static Y, which can be different from the caller and not
necessarily marked already.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::collapseMargins):
(WebCore::RenderBlock::clearFloatsIfNeeded):
(WebCore::RenderBlock::layoutBlockChildren):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::setStaticY):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutVerticalBox):
2007-02-21 Brady Eidson <beidson@apple.com>
Reviewed by Dave Harrison
<rdar://problem/5014313> - Crash in FrameLoader::restoreScrollPositionAndViewState()
after regaining network connection
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::restoreScrollPositionAndViewState): Leave an assertion for debug
build exploration, but gracefully handle the release build case
2007-02-21 Timothy Hatcher <timothy@apple.com>
Rubber-stamped by Darin.
* bindings/objc/PublicDOMInterfaces.h: Add missing classes that are really public.
Also adds the deprecated selector for getComputedStyle: on DOMDocument.
2007-02-21 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/5012665>
Removing indent from list moves the caret to the line below
Selection preservation during indent, outdent and list
operations uses rangeFromLocationAndLength. Ranges returned
by rangeFromLocationAndLength were incorrect for locations
just before the line breaks that are emitted after blocks.
This is because TextIterator emitted bad ranges for these line
breaks (ranges that started and ended *after* the block).
The fix corrects the start but not the end. This is acceptible
because there is code in rangeFromLocationAndLength that corrects
the ends of runs using the start of the run and VisiblePosition
creation.
* editing/TextIterator.cpp:
(WebCore::TextIterator::exitNode): Emit a position *inside*
the block, after its contents.
2007-02-21 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Fix for <rdar://problem/4999030> Indexing into select element to get to items in the options collection is broken
Test: fast/forms/select-index-setter.html
Added indexSetter for HTMLSelectElement.
* WebCore.xcodeproj/project.pbxproj: Added JSHTMLSelectElementCustom.h
* bindings/js/JSHTMLOptionsCollectionCustom.cpp: (WebCore::JSHTMLOptionsCollection::indexSetter):
Moved code to selectIndexSetter so it can be shared between these classes.
* bindings/js/JSHTMLSelectElementCustom.cpp:
(WebCore::selectIndexSetter): Added. Moved from JSHTMLOptionsCollection::indexSetter.
(WebCore::JSHTMLSelectElement::indexSetter): Calls selectIndexSetter.
* bindings/js/JSHTMLSelectElementCustom.h: Added.
* html/HTMLSelectElement.idl: Added HasCustomIndexSetter keyword.
* bindings/scripts/CodeGeneratorJS.pm: When generating "put" methods, if the propertyName is a number, call the indexSetter first,
and then call the version of lookupPut that will also try to use the parent's lookup table. This matches the order of our
old code, before we autogenerated the JSHTMLSelectElement class.
2007-02-21 George Staikos <staikos@kde.org>
Reviewed by Zack.
Add files to the build.
* WebCore.pro:
2007-02-21 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Implementing popups for the Qt platform.
* WebCore.pro:
* platform/PopupMenu.h:
* platform/Widget.h:
* platform/qt/PopupMenuQt.cpp:
(WebCore::PopupMenu::PopupMenu):
(WebCore::PopupMenu::clear):
(WebCore::PopupMenu::populate):
(WebCore::PopupMenu::show):
(WebCore::PopupMenu::hide):
* platform/qt/QWebPopup.cpp: Added.
(WebCore::QWebPopup::QWebPopup):
(WebCore::QWebPopup::exec):
(WebCore::QWebPopup::hideEvent):
(WebCore::QWebPopup::activeChanged):
* platform/qt/QWebPopup.h: Added.
* platform/qt/WidgetQt.cpp:
(WebCore::Widget::canvas):
2007-02-21 George Staikos <staikos@kde.org>
Reviewed by Zack.
Remove unneeded hack now.
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::setCheckboxSize):
2007-02-21 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Fix rendering of lineedits and remove the spurious
padding on push-buttons.
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::baselinePosition):
(WebCore::RenderThemeQt::adjustTextFieldStyle):
(WebCore::RenderThemeQt::sizeForFont):
(WebCore::RenderThemeQt::setButtonPadding):
2007-02-21 Zack Rusin <zrusin@trolltech.com>
Fix compilation.
* platform/qt/PasteboardQt.cpp:
(WebCore::Pasteboard::writeURL):
(WebCore::Pasteboard::writeImage):
2007-02-20 Adam Roben <aroben@apple.com>
Preemptive build fix.
* platform/mac/FontCacheMac.mm: Remove unused (and non-existent) header.
2007-02-20 Adam Roben <aroben@apple.com>
Fix the build the right way.
* platform/StringTruncator.cpp:
(WebCore::truncateString): Keep all widths as floats.
2007-02-20 Beth Dakin <bdakin@apple.com>
Reviewed by Maciej.
Implement writeImage() on Pasteboard so that the context menus can
call into the editor for the "Copy image" command instead of
calling across the clients.
* WebCore.exp:
* WebCore.xcodeproj/project.pbxproj:
* editing/Editor.cpp:
(WebCore::Editor::copyImage): Call into the Pasteboard.
* editing/Editor.h:
* loader/mac/LoaderNSURLExtras.h: A new NSURL extra needed inside
WebCore.
* loader/mac/LoaderNSURLExtras.m: Made this file Objective-C++
(from Objective-C) since the call into the MIMETypeRegistry will
return a Vector.
(urlByRemovingComponent): Cast to build as Obj-C++
(urlWithDataRelativeToURL): Same.
(vectorContainsString): Helper.
(suggestedFilenameWithMIMEType): New function.
* page/ContextMenuClient.h: Remove copyImageToClipboard()
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected): Call
into the editor instead of the client.
* page/mac/WebCoreViewFactory.h: New localized String.
* platform/LocalizedStrings.h: Same.
* platform/MimeTypeRegistry.h: Expose two additional functions for
MIMEType information from WebCore System Interface.
* platform/Pasteboard.h:
* platform/SharedBuffer.h: Make platformData() and platformDataSize
() public since they are needed to write the image to the
pasteboard.
* platform/mac/LocalizedStringsMac.mm: New localized string.
(WebCore::copyImageUnknownFileLabel):
* platform/mac/MimeTypeRegistryMac.mm:
(WebCore::MimeTypeRegistry::getExtensionsForMIMEType):
(WebCore::MimeTypeRegistry::getPreferredExtensionForMIMEType):
* platform/mac/PasteboardMac.mm:
(WebCore::writableTypesForImage):
(WebCore::Pasteboard::writeURL): Write the correct types if the url
is for an image.
(WebCore::fileWrapperForImage):
(WebCore::Pasteboard::writeFileWrapperAsRTFDAttachment):
(WebCore::Pasteboard::writeImage):
* platform/mac/WebCoreNSStringExtras.h: Added. Some the the
NSStringExtras that were in WebKit are now needed by WebCore. To
avoid having two copies of these functions, I just moved the
implementations to WebCore. The WebKit functions just call into
WebCore.
* platform/mac/WebCoreNSStringExtras.mm: Added.
(hasCaseInsensitiveSuffix):
(hasCaseInsensitiveSubstring):
(filenameByFixingIllegalCharacters):
* platform/mac/WebCoreSystemInterface.h:
wkGetPreferredExtensionForMIMEType and wkGetExtensionsForMIMEType
are now needed in WebCore as well as WebKit.
* platform/mac/WebCoreSystemInterface.mm:
2007-02-20 Adam Roben <aroben@apple.com>
Build fix.
* platform/StringTruncator.cpp:
(WebCore::truncateString): Added explicit casts.
2007-02-20 Adam Roben <aroben@apple.com>
Reviewed by Darin and Anders.
Fix <rdar://problem/4736215> Make WebCoreStringTruncator use WebCore types
* WebCore.exp: Updated symbols.
* WebCore.xcodeproj/project.pbxproj: Updated file names.
* bridge/mac/WebCoreStringTruncator.h: Removed.
* bridge/mac/WebCoreStringTruncator.mm: Removed.
* platform/StringTruncator.cpp: Added. Moved from bridge/mac/WebCoreStringTruncator.mm.
(WebCore::textBreakAtOrPreceding): Added.
(WebCore::boundedTextBreakFollowing): Added.
(WebCore::centerTruncateToBuffer):
(WebCore::rightTruncateToBuffer):
(WebCore::stringWidth): Now takes a const Font& instead of a Font*.
(WebCore::truncateString):
(WebCore::StringTruncator::centerTruncate):
(WebCore::StringTruncator::rightTruncate):
(WebCore::StringTruncator::width):
* platform/StringTruncator.h: Added.
* platform/TextBreakIterator.h: Added isTextBreak declaration.
* platform/TextBreakIteratorICU.cpp:
(WebCore::isTextBreak): Implemented.
* platform/mac/FileChooserMac.mm:
(WebCore::FileChooser::basenameForWidth): Updated for changes to WebCoreStringTruncator.
* platform/qt/TextBreakIteratorQt.cpp:
(WebCore::isTextBreak): Stubbed out.
2007-02-20 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/5006779>
REGRESSION: Paste and Match Style of quoted text onto empty line yields quoted text
We decided to change the copy/paste behavior in both
the Paste and the Paste and Match Style cases.
* editing/markup.cpp:
(WebCore::createMarkup): Don't add mail blockquote wrappers
unless the user selected one or more paragraphs.
2007-02-20 Timothy Hatcher <timothy@apple.com>
Reviewed by Mark Rowe.
<rdar://problem/4912899> WebCore project ObjC @property cleanup
* bindings/objc/DOMObject.h: Add the new style @property
* bindings/objc/PublicDOMInterfaces.h: Update to the new style @property
* bindings/scripts/CodeGeneratorObjC.pm: Export both new and old style @properties
2007-02-20 Timothy Hatcher <timothy@apple.com>
Reviewed by Sam Weinig.
<rdar://problem/5007248> need to export symbols for DOM exception constants
* WebCore.exp: Adds DOMEventException, DOMException, DOMRangeException, DOMXPathException
2007-02-20 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin.
<rdar://problem/4900579> WebKit -finalize methods are not thread-safe; design change needed
Call WebCoreObjCFinalizeOnMainThread from the initialize method of all the classes
that have a finalizer that needs called on the main thread.
* WebCore.exp:
* WebCore.xcodeproj/project.pbxproj:
* bindings/objc/WebScriptObject.mm:
(+[WebScriptObject initialize]):
* bridge/mac/WebCoreScriptDebugger.mm:
(+[WebCoreScriptDebugger initialize]):
* platform/mac/SharedBufferMac.mm:
(+[SharedBufferData initialize]):
* platform/mac/WebCoreObjCExtras.c: Added.
(WebCoreObjCFinalizeOnMainThread):
* platform/mac/WebCoreObjCExtras.h: Added.
2007-02-20 Geoffrey Garen <ggaren@apple.com>
Not not reviewed by Mitz Pettel.
Fixed http://bugs.webkit.org/show_bug.cgi?id=12827 | <rdar://problem/5006671>
REGRESSION: -[DOMCSSStyleDeclaration setValue:forKey:] doesn't have an
immediate effect
Let's just pretend this never happened.
I attempted a layout test but I couldn't get the old code to fail because
there's no obvious way to isolate the ObjC bindings in a test that's
controlled by JS.
* bindings/objc/WebScriptObject.mm:
(_didExecute):
2007-02-20 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Maciej S.
Gdk build fixes for recent refactorings.
* Projects/gdk/webcore-gdk.bkl:
* WebCoreSources.bkl:
* page/gdk/DragControllerGdk.cpp:
(WebCore::DragController::dragOperation):
(WebCore::DragController::maxDragImageSize):
* page/gdk/EventHandlerGdk.cpp:
(WebCore::EventHandler::createDraggingClipboard):
* platform/DragImage.h:
* platform/gdk/ChromeClientGdk.h:
* platform/gdk/CursorGdk.cpp:
(WebCore::verticalTextCursor):
(WebCore::cellCursor):
(WebCore::contextMenuCursor):
(WebCore::noDropCursor):
(WebCore::copyCursor):
(WebCore::progressCursor):
(WebCore::aliasCursor):
(WebCore::noneCursor):
(WebCore::notAllowedCursor):
* platform/gdk/EditorClientGdk.cpp:
(WebCore::EditorClientGdk::shouldChangeSelectedRange):
(WebCore::EditorClientGdk::isEditable):
(WebCore::EditorClientGdk::textFieldDidBeginEditing):
(WebCore::EditorClientGdk::textFieldDidEndEditing):
(WebCore::EditorClientGdk::textDidChangeInTextField):
(WebCore::EditorClientGdk::doTextFieldCommandFromEvent):
(WebCore::EditorClientGdk::textWillBeDeletedInTextField):
(WebCore::EditorClientGdk::textDidChangeInTextArea):
* platform/gdk/EditorClientGdk.h:
* platform/gdk/FrameGdk.cpp:
(WebCore::Frame::print):
(WebCore::Frame::issueTransposeCommand):
(WebCore::Frame::respondToChangedSelection):
(WebCore::Frame::cleanupPlatformScriptObjects):
(WebCore::Frame::isCharacterSmartReplaceExempt):
(WebCore::Frame::dragImageForSelection):
* platform/gdk/FrameGdk.h:
* platform/gdk/MimeTypeRegistryGdk.cpp: Added.
* platform/gdk/TemporaryLinkStubs.cpp:
(ChromeClientGdk::tabsToLinks):
(ChromeClientGdk::windowResizerRect):
(ChromeClientGdk::addToDirtyRegion):
(ChromeClientGdk::scrollBackingStore):
(ChromeClientGdk::updateBackingStore):
* webcore-base.bkl:
2007-02-20 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Darin.
Allow over-writting Product, ProductSub, Vendor and VendorSub
js properties via #define WEBCORE_NAVIGATOR_*
* bindings/js/kjs_navigator.cpp:
(KJS::Navigator::getValueProperty):
2007-02-20 Darin Adler <darin@apple.com>
Reviewed by Anders.
- prepare to fix some "stop loading" bugs by moving state from the
FrameLoader class to the DocumentLoader class
* WebCore.exp: Update since cancelMainResourceLoad is now on the document loader.
* html/HTMLDocument.h:
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::HTMLDocument): Removed unused bodyElement and htmlElement
data members.
(WebCore::HTMLDocument::lastModified): Call getResponseModifiedHeader directly on
the document loader.
* loader/DocumentLoader.h: Moved m_mainResourceLoader, m_subresourceLoaders, and
m_plugInStreamLoaders here.
* loader/DocumentLoader.cpp:
(WebCore::cancelAll): Moved here from FrameLoader.
(WebCore::setAllDefersLoading): Ditto.
(WebCore::DocumentLoader::mainResourceData): Moved the body of FrameLoader's
mainResourceData function here.
(WebCore::DocumentLoader::stopLoading): Replaced calls to hasMainResourceLoader
and cancelMainResourceLoad with code that works directly on m_mainResourceLoader.
Call the stop functions moved from FrameLoader here on ourselves.
(WebCore::DocumentLoader::setupForReplaceByMIMEType): Ditto.
(WebCore::DocumentLoader::setPrimaryLoadComplete): Moved the code to store the
main resource data here; it doesn't require separate functions.
(WebCore::DocumentLoader::isLoadingInAPISense): Removed call to isLoadingSubresources
and instead just check if the m_subresourceLoaders set is empty.
(WebCore::DocumentLoader::setDefersLoading): Moved code here from FrameLoader.
(WebCore::DocumentLoader::stopLoadingPlugIns): Ditto.
(WebCore::DocumentLoader::stopLoadingSubresources): Ditto.
(WebCore::DocumentLoader::addSubresourceLoader): Ditto.
(WebCore::DocumentLoader::removeSubresourceLoader): Ditto.
(WebCore::DocumentLoader::addPlugInStreamLoader): Ditto.
(WebCore::DocumentLoader::removePlugInStreamLoader): Ditto.
(WebCore::DocumentLoader::isLoadingSubresources): Ditto.
(WebCore::DocumentLoader::isLoadingPlugIns): Ditto.
(WebCore::DocumentLoader::startLoadingMainResource): Ditto.
(WebCore::DocumentLoader::cancelMainResourceLoad): Ditto.
* loader/FrameLoader.h: Removed stopLoadingPlugIns, stopLoadingSubresources,
cancelMainResourceLoad, hasMainResourceLoader, isLoadingSubresources,
mainResourceData, releaseMainResourceLoader, lastModified, startLoadingMainResource,
isLoadingPlugIns, m_mainResourceLoader, m_subresourceLoaders, m_plugInStreamLoaders,
m_responseRefreshHeader, and m_responseModifiedHeader.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::setDefersLoading): Call setDefersLoading on all the document
loaders.
(WebCore::FrameLoader::stopLoading): Get rid of code to set m_responseRefreshHeader
and m_responseModifiedHeader.
(WebCore::FrameLoader::receivedFirstData): Call httpHeaderField on the response
here to get the Refresh, instead of storing it in a data member.
(WebCore::FrameLoader::addPlugInStreamLoader): Change to just call this on the
document loader.
(WebCore::FrameLoader::removePlugInStreamLoader): Ditto.
(WebCore::FrameLoader::isLoading): Change to call isLoadingSubresources and
isLoadingPlugIns on the document loader.
(WebCore::FrameLoader::addSubresourceLoader): Change to just call this on the
document loader.
(WebCore::FrameLoader::removeSubresourceLoader): Ditto.
(WebCore::FrameLoader::commitProvisionalLoad): Call stopLoadingSubresources and
stopLoadingPlugIns on the document loader. Removed code to set
m_responseModifiedHeader.
(WebCore::FrameLoader::startLoading): Call isLoadingMainResource and
startLoadingMainResource on the document loader.
* loader/ImageDocument.cpp: (WebCore::ImageTokenizer::finish): Call
mainResourceData() on the document loader instead of the frame loader.
- other changes
* loader/DocLoader.cpp:
(WebCore::DocLoader::checkCacheObjectStatus): Fixed indentation.
2007-02-20 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Fix focus handling and make the forms
work as expected.
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::setScrollArea):
* platform/qt/WidgetQt.cpp:
(WebCore::WidgetPrivate::WidgetPrivate):
(WebCore::WidgetPrivate::canvas):
(WebCore::Widget::hasFocus):
(WebCore::Widget::setFocus):
(WebCore::Widget::clearFocus):
(WebCore::Widget::setFont):
(WebCore::Widget::setQWidget):
(WebCore::Widget::focusPolicy):
2007-02-20 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin and then Sam.
- fix http://bugs.webkit.org/show_bug.cgi?id=10735
Clicking in SVG results causes WebKit to consume 100% CPU for several minutes
No test since there is no change in functionality.
* CMakeLists.txt:
* WebCore.pro:
* WebCore.xcodeproj/project.pbxproj: Added PositionIterator.{cpp,h}.
* WebCoreSources.bkl:
* dom/Position.cpp:
(WebCore::Position::Position): Added converting constructor from
PositionIterator.
(WebCore::Position::previous): Changed assert() to ASSERT().
(WebCore::Position::next): Ditto.
(WebCore::isStreamer): Changed the argument to a PositionIterator.
(WebCore::Position::upstream): Changed to use PositionIterator.
(WebCore::Position::downstream): Ditto.
(WebCore::Position::inRenderedText): Made public.
(WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight): Changed
into a static member function.
(WebCore::Position::nodeIsUserSelectNone): Ditto.
* dom/Position.h:
* dom/PositionIterator.cpp: Added. A Position iterator with constant-time
increment, decrement, and several predicates on the Position it is at.
Conversion to/from Position is O(n) in the offset.
(WebCore::PositionIterator::increment):
(WebCore::PositionIterator::decrement):
(WebCore::PositionIterator::atStart):
(WebCore::PositionIterator::atEnd):
(WebCore::PositionIterator::atStartOfNode):
(WebCore::PositionIterator::atEndOfNode):
(WebCore::PositionIterator::isCandidate):
* dom/PositionIterator.h: Added.
(WebCore::PositionIterator::PositionIterator):
(WebCore::PositionIterator::node):
(WebCore::PositionIterator::offsetInLeafNode):
* editing/htmlediting.cpp:
(WebCore::nextCandidate): Changed to use PositionIterator.
(WebCore::previousCandidate): Changed to use PositionIterator.
2007-02-20 Rob Buis <buis@kde.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12439
SVG parser complains about points attribute in polygon and polyline element
Return true when the parsed points specification is valid.
* ksvg2/svg/SVGParserUtilities.cpp:
(WebCore::parseNumber):
(WebCore::SVGPolyParser::parsePoints):
* ksvg2/svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::parseMappedAttribute):
2007-02-20 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Make editing of forms work plus make sure that non-void methods
always return something.
* WebCore.pro:
* loader/qt/DocumentLoaderQt.cpp:
(WebCore::DocumentLoader::getResponseModifiedHeader):
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::setData):
2007-02-20 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Refactor and fix the implementation of theming of
form elements on the Qt platform.
* platform/qt/RenderThemeQt.cpp:
(WebCore::theme):
(WebCore::RenderThemeQt::RenderThemeQt):
(WebCore::RenderThemeQt::supportsHover):
(WebCore::RenderThemeQt::supportsFocusRing):
(WebCore::RenderThemeQt::baselinePosition):
(WebCore::RenderThemeQt::controlSupportsTints):
(WebCore::RenderThemeQt::supportsControlTints):
(WebCore::RenderThemeQt::adjustRepaintRect):
(WebCore::RenderThemeQt::paintResizeControl):
(WebCore::RenderThemeQt::platformActiveSelectionBackgroundColor):
(WebCore::RenderThemeQt::platformInactiveSelectionBackgroundColor):
(WebCore::RenderThemeQt::platformActiveSelectionForegroundColor):
(WebCore::RenderThemeQt::platformInactiveSelectionForegroundColor):
(WebCore::RenderThemeQt::systemFont):
(WebCore::RenderThemeQt::minimumMenuListSize):
(WebCore::RenderThemeQt::adjustSliderThumbSize):
(WebCore::RenderThemeQt::paintCheckbox):
(WebCore::RenderThemeQt::paintRadio):
(WebCore::RenderThemeQt::setRadioSize):
(WebCore::RenderThemeQt::adjustButtonStyle):
(WebCore::RenderThemeQt::setButtonSize):
(WebCore::RenderThemeQt::adjustTextFieldStyle):
(WebCore::RenderThemeQt::adjustMenuListStyle):
(WebCore::RenderThemeQt::paintMenuList):
(WebCore::RenderThemeQt::paintMenuListButton):
(WebCore::RenderThemeQt::adjustMenuListButtonStyle):
(WebCore::RenderThemeQt::paintSliderTrack):
(WebCore::RenderThemeQt::paintSliderThumb):
(WebCore::RenderThemeQt::paintSearchField):
(WebCore::RenderThemeQt::adjustSearchFieldStyle):
(WebCore::RenderThemeQt::adjustSearchFieldCancelButtonStyle):
(WebCore::RenderThemeQt::paintSearchFieldCancelButton):
(WebCore::RenderThemeQt::adjustSearchFieldDecorationStyle):
(WebCore::RenderThemeQt::paintSearchFieldDecoration):
(WebCore::RenderThemeQt::adjustSearchFieldResultsDecorationStyle):
(WebCore::RenderThemeQt::paintSearchFieldResultsDecoration):
(WebCore::RenderThemeQt::supportsFocus):
(WebCore::RenderThemeQt::getStylePainterAndWidgetFromPaintInfo):
(WebCore::RenderThemeQt::applyTheme):
(WebCore::RenderThemeQt::setSizeFromFont):
(WebCore::RenderThemeQt::sizeForFont):
(WebCore::RenderThemeQt::setButtonPadding):
(WebCore::RenderThemeQt::setPopupPadding):
(WebCore::RenderThemeQt::setPrimitiveSize):
* platform/qt/RenderThemeQt.h: Added.
2007-02-19 Lars Naesbye Christensen <lars@naesbye.dk>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12815
Two image files not included in project file
* WebCore.xcodeproj/project.pbxproj: Added crossHairCursor.png and
notAllowedCursor.png.
2007-02-19 Geoffrey Garen <ggaren@apple.com>
Reviewed by Adam Roben.
Fixed some leaks in RenderThemeMac.
No test case because 'leaks' can't detect these leaks inside DRT, even if
DRT forces the WebView to paint. ('leaks' can detect these leaks inside
Safari. Weird.)
* rendering/RenderThemeMac.h:
- Renamed data members to m_*, to match our style guidelines.
- Renamed *Is* to is**, to match our style guidelines.
- Removed a few unnecessary data members.
- Made cached values like m_checkbox mutable, since they can change
inside functions that don't change the logical state of a RenderTheme
object. (The alternative was to make some const functions non-const.)
(WebCore::RenderThemeMac::paintMenuList): Took CFType pointers that just
used to leak and placed them in RetainPtrs.
(WebCore::RenderThemeMac::paintMenuListButtonGradients): ditto
Factored inline implementations of lazy initialization into these accessor
functions, for better encapsulation:
(WebCore::RenderThemeMac::checkbox):
(WebCore::RenderThemeMac::radio):
(WebCore::RenderThemeMac::button):
(WebCore::RenderThemeMac::popupButton):
(WebCore::RenderThemeMac::search):
(WebCore::RenderThemeMac::sliderThumbHorizontal): The inline version of
this initialization used to confuse the retained data member with a local
stack value, causing both a leak and a failure to initialize. Fixed now.
(WebCore::RenderThemeMac::sliderThumbVertical): ditto
(WebCore::RenderThemeMac::resizeCornerImage):
2007-02-19 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12817
REGRESSION (r18634): Table border-collapse problems with right margin
Test: fast/repaint/table-outer-border.html
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout): Reordered to initialize horizontal overflow
after table sections have computed their outer horizontal borders.
2007-02-19 John Sullivan <sullivan@apple.com>
Reviewed by Darin
- fixed <rdar://problem/4613701> REGRESSION: A line break in the source HTML of a link becomes visible after drag & drop
* page/DragController.cpp:
(WebCore::DragController::startDrag):
Call simplifyWhiteSpace() on the proposed link title to match what's displayed on the web page, instead of using the
raw source HTML text.
2007-02-19 David Hyatt <hyatt@apple.com>
Fix for Radar 4981605, regression where button grows randomly when a select is
opened. With the new form controls, the WinIE quirk for using line width
ended up being used for them more.
This patch removes the quirk after verifying that Firefox doesn't implement
the quirk at all. usesLineWidth is being renamed to shrinksToAvoidFloats to
make it clear that the new method only applies to block objects that avoid floats
and that have auto width.
Also fixed a regression where whitespace after a floating <select> at the start
of a block got incorrectly rendered. Make sure skipWhitespace always skips
through floating/positioned elements regardless of the whitespace setting (this
way the white-space:pre value on floating <select>s doesn't cause trouble).
Reviewed by darin
fast/block/float/float-avoidance.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::collapseMargins):
(WebCore::RenderBlock::clearFloatsIfNeeded):
(WebCore::RenderBlock::layoutBlockChildren):
(WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::containingBlockWidth):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::shrinkToAvoidFloats):
* rendering/RenderObject.h:
* rendering/bidi.cpp:
(WebCore::RenderBlock::skipWhitespace):
2007-02-19 Zalan Bujtas <zbujtas@gmail.com>
Reviewed by Darin.
Update stylesheet href, when document's baseUrl changes. It needs
update when the stylesheet is constructed before the parser hits the base tag.
http://bugs.webkit.org/show_bug.cgi?id=12214
* css/StyleSheet.h:
(WebCore::StyleSheet::setHref):
* dom/Document.cpp:
(WebCore::Document::setBaseURL):
* dom/Document.h:
2007-02-19 Mitz Pettel <mitz@webkit.org>
Reviewed by Adam.
- fix http://bugs.webkit.org/show_bug.cgi?id=11518
REGRESSION (r14376): View Source not available after Back navigation from a non-HTML page
The FrameLoader's responseMIMEType was not being updated when a page was
brought back from the page cache.
Moved the line that updates the MIME type from commitProvisionalLoad() to
transitionToCommitted().
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::transitionToCommitted):
2007-02-19 Anders Carlsson <acarlsson@apple.com>
Reviewed by Oliver.
Make DragController::maxDragImageSize a function to get rid of the global initializer.
* page/DragController.cpp:
(WebCore::DragController::doImageDrag):
* page/DragController.h:
* page/mac/DragControllerMac.mm:
(WebCore::DragController::maxDragImageSize):
* page/qt/DragControllerQt.cpp:
(WebCore::DragController::maxDragImageSize):
2007-02-19 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- <rdar://problem/5006414> REGRESSION: Crash occurs at WebCore::Frame::loader()
when loading AFL Ladder widget
* html/HTMLFrameElementBase.cpp: (WebCore::HTMLFrameElementBase::openURL):
Add missing null check so this fails without crashing when called on an element
that's no longer in a frame.
2007-02-19 Antti Koivisto <antti@apple.com>
Reviewed by Mitz.
- fix for http://bugs.webkit.org/show_bug.cgi?id=10990
REGRESSION: Pressing a pop-up's access key doesn't focus it
<rdar://problem/4823138>
Focus the select element too in accessKeyAction.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::accessKeyAction):
2007-02-18 Antti Koivisto <antti@apple.com>
Reviewed by Hyatt.
- really fix http://bugs.webkit.org/show_bug.cgi?id=11974
REGRESSION: Caret drawn over input when smaller than font size on initial focus
<rdar://problem/4960258>
Avoid double painting caret when it is on a block element.
Layout test for this already went in previous try (it only fails in pixel mode) in r19626.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintCaret):
2007-02-19 Lars Knoll <lars@trolltech.com>
Added a one line patch from Olliej to create the
clipboard on demand (to stop things from crashing),
and added lots of notImplemented() warnings all
over the place.
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::ClipboardQt):
(WebCore::ClipboardQt::clearData):
(WebCore::ClipboardQt::clearAllData):
(WebCore::ClipboardQt::getData):
(WebCore::ClipboardQt::setData):
(WebCore::ClipboardQt::types):
(WebCore::ClipboardQt::dragLocation):
(WebCore::ClipboardQt::dragImage):
(WebCore::ClipboardQt::setDragImage):
(WebCore::ClipboardQt::dragImageElement):
(WebCore::ClipboardQt::setDragImageElement):
(WebCore::ClipboardQt::createDragImage):
(WebCore::ClipboardQt::declareAndWriteDragImage):
(WebCore::ClipboardQt::writeURL):
(WebCore::ClipboardQt::writeRange):
(WebCore::ClipboardQt::hasData):
* platform/qt/DragDataQt.cpp:
(WebCore::DragData::canSmartReplace):
(WebCore::DragData::containsColor):
(WebCore::DragData::containsPlainText):
(WebCore::DragData::asPlainText):
(WebCore::DragData::asColor):
(WebCore::DragData::createClipboard):
(WebCore::DragData::containsCompatibleContent):
(WebCore::DragData::containsURL):
(WebCore::DragData::asURL):
(WebCore::DragData::asFragment):
2007-02-19 Lars Knoll <lars@trolltech.com>
Compile again.
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::types):
2007-02-17 Lars Knoll <lars@trolltech.com>
Reviewed by Maciej.
Additional coding by Maciej, additional review by Oliver.
Get rid of the FrameMac and FrameQt classes. Instead
move all methods into Frame directly, and implement
some platform specific methods in foo/FrameFoo.cpp.
Some general cleanup in Frame:
* Move some methods out of Frame, to the place where they
belong.
* Unify the different ways of creating the JavaScript wrappers
for <object>, <embed> and <applet>
* Some cleanup of the WebCoreFrameBridge
* ForwardingHeaders/bindings/NP_jsobject.h: Added.
* ForwardingHeaders/bindings/npruntime_impl.h: Added.
* ForwardingHeaders/bindings/runtime_root.h: Added.
* WebCore.exp:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/kjs_binding.cpp:
(KJS::ScriptInterpreter::shouldInterruptScript):
* bindings/objc/DOM.mm:
(-[DOMNode KJS::Bindings::]):
* bindings/objc/DOMInternal.mm:
(-[WebScriptObject _initializeScriptDOMNodeImp]):
* bridge/EditorClient.h:
* bridge/mac/FrameViewMac.mm:
(WebCore::FrameView::updateBorder):
(WebCore::FrameView::updateDashboardRegions):
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject rendererForView:]):
* dom/Position.cpp:
(WebCore::Position::next):
* editing/CommandByName.cpp:
(WebCore::Frame::execCopy):
(WebCore::Frame::execCut):
(WebCore::Frame::execPaste):
* editing/Editor.cpp:
(WebCore::Editor::canEdit):
(WebCore::Editor::pasteWithPasteboard):
(WebCore::Editor::paste):
(WebCore::Editor::pasteAsPlainText):
* editing/Editor.h:
* editing/JSEditor.cpp:
* html/HTMLAppletElement.cpp:
(WebCore::HTMLAppletElement::getInstance):
* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::getInstance):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::formData):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::getInstance):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::clear):
(WebCore::FrameLoader::detachFromParent):
* loader/mac/ImageDocumentMac.mm:
(WebCore::finishImageLoad):
* loader/qt/DocumentLoaderQt.cpp:
* page/Chrome.cpp:
(WebCore::Chrome::shouldInterruptJavaScript):
* page/Chrome.h:
* page/ChromeClient.h:
* page/Frame.cpp:
(WebCore::Frame::~Frame):
(WebCore::Frame::markedTextRange):
(WebCore::Frame::shouldChangeSelection):
(WebCore::Frame::shouldDeleteSelection):
(WebCore::Frame::isContentEditable):
(WebCore::Frame::setSecureKeyboardEntry):
(WebCore::Frame::isSecureKeyboardEntry):
(WebCore::Frame::bindingRootObject):
(WebCore::Frame::createRootObject):
(WebCore::Frame::windowScriptNPObject):
(WebCore::Frame::cleanupScriptObjects):
(WebCore::FramePrivate::FramePrivate):
* page/Frame.h:
* page/FramePrivate.h:
* page/FrameView.h:
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::tabsToLinks):
(WebCore::EventHandler::tabsToAllControls):
(WebCore::EventHandler::focusDocumentView):
(WebCore::EventHandler::passMouseDownEventToWidget):
(WebCore::EventHandler::handleDrag):
(WebCore::EventHandler::sendFakeEventsAfterWidgetTracking):
(WebCore::EventHandler::keyboardUIMode):
* page/mac/FrameMac.h: Removed.
* page/mac/FrameMac.mm:
(WebCore::Frame::setBridge):
(WebCore::Frame::bridge):
(WebCore::Frame::searchForLabelsAboveCell):
(WebCore::Frame::searchForLabelsBeforeElement):
(WebCore::Frame::matchLabelsAgainstElement):
(WebCore::Frame::focusWindow):
(WebCore::Frame::unfocusWindow):
(WebCore::Frame::imageFromRect):
(WebCore::Frame::selectionImage):
(WebCore::Frame::snapshotDragImage):
(WebCore::Frame::fontAttributesForSelectionStart):
(WebCore::Frame::baseWritingDirectionForSelectionStart):
(WebCore::Frame::print):
(WebCore::Frame::issuePasteCommand):
(WebCore::Frame::issueTransposeCommand):
(WebCore::Frame::respondToChangedSelection):
(WebCore::Frame::textFieldDidBeginEditing):
(WebCore::Frame::textFieldDidEndEditing):
(WebCore::Frame::textDidChangeInTextField):
(WebCore::Frame::textDidChangeInTextArea):
(WebCore::Frame::doTextFieldCommandFromEvent):
(WebCore::Frame::textWillBeDeletedInTextField):
(WebCore::Frame::setSecureKeyboardEntry):
(WebCore::Frame::isSecureKeyboardEntry):
(WebCore::Frame::setMarkedTextRange):
(WebCore::Frame::dashboardRegionsDictionary):
(WebCore::Frame::dashboardRegionsChanged):
(WebCore::Frame::willPopupMenu):
(WebCore::Frame::isCharacterSmartReplaceExempt):
(WebCore::Frame::setNeedsReapplyStyles):
(WebCore::Frame::customHighlightLineRect):
(WebCore::Frame::paintCustomHighlight):
(WebCore::Frame::createScriptInstanceForWidget):
(WebCore::Frame::windowScriptObject):
(WebCore::Frame::cleanupPlatformScriptObjects):
* page/mac/WebCoreFrameBridge.h:
* page/mac/WebCoreFrameBridge.mm:
(createRootObject):
(bridge):
(-[WebCoreFrameBridge _frame]):
* page/qt/EventHandlerQt.cpp:
* page/qt/FrameQt.cpp:
(WebCore::Frame::unfocusWindow):
(WebCore::Frame::focusWindow):
(WebCore::Frame::issueTransposeCommand):
(WebCore::Frame::respondToChangedSelection):
(WebCore::Frame::print):
(WebCore::Frame::createScriptInstanceForWidget):
(WebCore::Frame::cleanupPlatformScriptObjects):
(WebCore::Frame::isCharacterSmartReplaceExempt):
* page/qt/FrameQt.h: Removed.
* platform/MimeTypeRegistry.h:
* platform/graphics/svg/SVGImage.cpp:
(WebCore::SVGImage::setData):
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyChromeClient::shouldInterruptJavaScript):
(WebCore::SVGEmptyEditorClient::shouldChangeSelectedRange):
* platform/mac/ClipboardMac.h:
* platform/mac/ClipboardMac.mm:
(WebCore::ClipboardMac::ClipboardMac):
* platform/mac/FileChooserMac.mm:
(-[OpenPanelController beginSheetWithFrame:]):
* platform/mac/MimeTypeRegistryMac.mm:
(WebCore::MimeTypeRegistry::getMIMETypeForPath):
* platform/mac/PopupMenuMac.mm:
(WebCore::PopupMenu::show):
* platform/mac/WidgetMac.mm:
(WebCore::Widget::setFocus):
(WebCore::Widget::setIsSelected):
* platform/network/mac/ResourceHandleMac.mm:
* platform/network/qt/ResourceHandleManagerQt.cpp:
* platform/network/qt/ResourceHandleQt.cpp:
(WebCore::ResourceHandle::start):
* platform/qt/MimeTypeRegistryQt.cpp:
(WebCore::MimeTypeRegistry::getMIMETypeForPath):
* platform/qt/PopupMenuQt.cpp:
* platform/qt/ScrollViewCanvasQt.cpp:
* platform/qt/ScrollViewQt.cpp:
* platform/win/TemporaryLinkStubs.cpp:
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintCustomHighlight):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintCustomHighlight):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::addHighlightOverflow):
(WebCore::RootInlineBox::paintCustomHighlight):
2007-02-18 Oliver Hunt <oliver@apple.com>
Reviewed by NOBODY (Buildfix).
Oops, missed a 'const'
* platform/qt/ClipboardQt.h:
2007-02-18 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
Adding stubbed out implementation of Clipboard for Qt to stop
it crashing whenever someone drags the mouse.
* WebCore.pro:
* page/qt/EventHandlerQt.cpp:
(WebCore::EventHandler::createDraggingClipboard):
* platform/qt/ClipboardQt.cpp: Added.
(WebCore::ClipboardQt::ClipboardQt):
(WebCore::ClipboardQt::clearData):
(WebCore::ClipboardQt::clearAllData):
(WebCore::ClipboardQt::getData):
(WebCore::ClipboardQt::setData):
(WebCore::ClipboardQt::types):
(WebCore::ClipboardQt::dragLocation):
(WebCore::ClipboardQt::dragImage):
(WebCore::ClipboardQt::setDragImage):
(WebCore::ClipboardQt::dragImageElement):
(WebCore::ClipboardQt::setDragImageElement):
(WebCore::ClipboardQt::createDragImage):
(WebCore::ClipboardQt::declareAndWriteDragImage):
(WebCore::ClipboardQt::writeURL):
(WebCore::ClipboardQt::writeRange):
(WebCore::ClipboardQt::hasData):
* platform/qt/ClipboardQt.h: Added.
(WebCore::ClipboardQt::~ClipboardQt):
(WebCore::ClipboardQt::isForDragging):
2007-02-18 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
Don't even attempt to do a document based drag if there isn't a document
Fixes rdar://problem/4960109
* page/DragController.cpp:
(WebCore::DragController::tryDocumentDrag):
Null check m_document
(WebCore::DragController::tryDHTMLDrag):
ASSERT(m_document) -- tryDocumentDrag is the only
thing that will ever call us, but lets play it safe
2007-02-18 Adam Roben <aroben@apple.com>
Reviewed by Hyatt.
A little preparation for <rdar://problem/5006872>.
* platform/PopupMenu.h:
2007-02-18 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Adele.
http://bugs.webkit.org/show_bug.cgi?id=12807
XPath incorrectly converts NaN to boolean
Test: fast/xpath/nan-to-boolean.html
* xml/XPathValue.cpp:
(WebCore::XPath::Value::toBoolean): Convert NaN to false.
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunSubstringAfter::doEvaluate): Fix substring-after to actually work.
2007-02-18 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12123
REGRESSION: Incomplete repaint of floats' overflows
Tests: fast/repaint/float-overflow.html
fast/repaint/float-overflow-right.html
fast/repaint/table-cell-vertical-overflow.html
- fix http://bugs.webkit.org/show_bug.cgi?id=10116
REGRESSION: Menu item drawn 2 pixels short on WWDC 2006 Attendee Site
Reflected in existing test results.
Unified floats and overflow for the purposes of painting and hit-testing.
Overhanging and overflowing floats are now factored into a block's overflow
unless their painting has been propagated to an ancestor.
Changed table cells to no longer expand to enclose overflow, thus making
it purely "visual overflow", having no effect on layout in WebCore. It
still determines scrolling dimensions.
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::placeBoxesHorizontally): Include inline blocks'
horizontal overflow in the inline box's dimensions.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock): Removed the expand to enclose overflows
behavior. Added code to add this block's floats (and their overflow) to its
overflow rect if it is not in a block formatting context. Otherwise, the
inclusion of floats in the overflow is deferred until this block's parent
examines its floats and possibly adopts overhanging floats.
(WebCore::RenderBlock::layoutBlockChildren):
(WebCore::RenderBlock::paint):
(WebCore::RenderBlock::floatRect): Made non-virtual and changed to return an empty
rect if there are no floats or the floats are clipped, instead of returning the border
box.
(WebCore::RenderBlock::addOverhangingFloats): Any floats of the child that
are not to be painted by the parent are added to the child's overflow rect.
(WebCore::RenderBlock::addVisualOverflow): Added. Adjusts the overflow
bounds to include the given rect.
(WebCore::RenderBlock::nodeAtPoint):
* rendering/RenderBlock.h:
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
(WebCore::RenderFlexibleBox::layoutHorizontalBox): After placing a normal
child, add its floats to its overflow, since painting of floats does not
propagate to flexible boxes.
(WebCore::RenderFlexibleBox::layoutVerticalBox): Ditto.
* rendering/RenderForeignObject.cpp:
(WebCore::RenderForeignObject::layout):
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::layout):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::layout):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::absoluteBoundingBox):
* rendering/RenderLayer.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::repaintAfterLayoutIfNeeded):
* rendering/RenderObject.h:
(WebCore::RenderObject::expandsToEncloseOverhangingFloats):
* rendering/RenderPath.cpp:
(WebCore::RenderPath::layout):
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::layout):
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::layout):
* rendering/RenderTable.h: Removed the override of overflowHeight() since now tables can have
vertical overflow.
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::paint): Made sure that overflow is repainted.
* rendering/RenderTableCell.h:
(WebCore::RenderTableCell::expandsToEncloseOverhangingFloats): Removed.
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::RenderTableSection):
(WebCore::RenderTableSection::layoutRows): Factor in vertical overflow from cells.
(WebCore::RenderTableSection::paint):
* rendering/RenderTableSection.h:
(WebCore::RenderTableSection::overflowHeight):
(WebCore::RenderTableSection::overflowTop):
2007-02-18 Oliver Hunt <oliver@apple.com>
Reviewed by NOBODY (Buildfix).
Build fix for the build fix -- can't call something that isn't a function
* platform/qt/CursorQt.cpp:
(WebCore::notAllowedCursor):
2007-02-18 Oliver Hunt <oliver@apple.com>
Reviewed by NOBODY (Build fix).
Adding platform/DragImage.cpp and platform/qt/DragImageQt.cpp to the Qt
project files
Stubbed method for WebCore::notAllowedCursor -- not sure what it should return,
have returned blank cursor, possibly needs to return something else
* WebCore.pro:
* platform/qt/CursorQt.cpp:
(WebCore::notAllowedCursor):
2007-02-18 Oliver Hunt <oliver@apple.com>
Reviewed by NOBODY (Buildfix).
Sigh, obnoxious occasional auto conversion from float to int
* platform/mac/ClipboardMac.mm:
(WebCore::ClipboardMac::createDragImage):
2007-02-18 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Hyatt.
http://bugs.webkit.org/show_bug.cgi?id=12799
REGRESSION: Webpage doesn't load correctly (www.cincinnati.com
redirects to the wrong URL)
Test: http/tests/misc/refresh-meta-with-newline.html
* platform/network/HTTPParsers.cpp:
(WebCore::skipWhiteSpace):
(WebCore::parseHTTPRefresh):
* platform/network/HTTPParsers.h:
In HTML, all characters with codes <= 0x20 are whitespace, while in
HTTP, only space and tab are such.
* dom/Document.cpp:
(WebCore::Document::processHttpEquiv):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::receivedFirstData):
Pass parseHTTPRefresh() a flag telling about the source of data.
2007-02-18 Oliver Hunt <oliver@apple.com>
Reviewed by NOBODY (Build fix).
Buld fix -- surprisingly RetainPtr doesn't exist on Qt
* platform/DragImage.h:
2007-02-18 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
More drag and drop migration, now the entirety of the
drag initiation logic has been rendered platform independent
This has required a number of new interfaces, and a reasonable
amount of logic migration.
As a side effect, this patch also fixes rdar://problem/4945341
There are some basic Qt stubs that should stop the build from failing,
however the absence of ClipboardQt means any attempt to initiate a drag
may cause a crash.
* WebCore.exp:
Exporting new symbols
* WebCore.xcodeproj/project.pbxproj:
New files
* dom/Clipboard.cpp:
(WebCore::Clipboard::canSaveAsWebArchive):
Migrated from WebKit
* dom/Clipboard.h:
Added more methods to allow Clipboard to be used as a
platform independent container for drag and drop
* page/DragClient.h:
(WebCore::DragClient::declareAndWriteDragImage):
This is a mac only helper function, so i've made it have an empty implementation,
that way we won't need a PLATFORM(MAC) block in SVGImageEmptyClients
* page/DragController.cpp:
(WebCore::DragController::dragExited):
(WebCore::DragController::performDrag):
(WebCore::DragController::tryDocumentDrag):
(WebCore::DragController::tryDHTMLDrag):
Using RefPtrs now
(WebCore::getCachedImage):
(WebCore::getImage):
Helper functions
(WebCore::dragLocForDHTMLDrag):
(WebCore::dragLocForSelectionDrag):
(WebCore::DragController::startDrag):
(WebCore::DragController::doImageDrag):
(WebCore::DragController::doSystemDrag):
Logic that generates drag images and clipboard content, and
initiates the actual system drag operation
* page/DragController.h:
Method and variable declarations
* page/EventHandler.cpp:
(WebCore::EventHandler::handleDrag):
handleDrag is now platform independent
(WebCore::EventHandler::handleTextInputEvent):
formatting
* page/EventHandler.h:
(WebCore::EventHandler::eventLoopHandleMouseDragged):
Forgot to define this stub function
* page/Frame.h:
Declaring dragImageForSelection to provide drag image for selected content
* page/mac/DragControllerMac.mm:
Defining drag images control vars
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::createDraggingClipboard):
Migrated old clipboard creation to here
* page/mac/FrameMac.mm:
(WebCore::Frame::dragImageForSelection):
Wrap FrameMac::selectionImage
* page/qt/DragControllerQt.cpp:
Defining drag images control vars
* page/qt/EventHandlerQt.cpp:
(WebCore::EventHandler::createDraggingClipboard):
stub
* page/qt/FrameQt.cpp:
(WebCore::Frame::dragImageForSelection):
stub
* platform/DragImage.cpp: Added.
(WebCore::fitDragImageToMaxSize):
(WebCore::createDragImageForSelection):
Platform independent processing for drag images
* platform/DragImage.h: Added.
Declaring typedefs and wrapper functions to abstract the handling
of drag images
* platform/Pasteboard.h:
Declaring extracted writeURL and writeSelection methods
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyDragClient::willPerformDragSourceAction):
(WebCore::SVGEmptyDragClient::startDrag):
(WebCore::SVGEmptyDragClient::createDragImageForLink):
Stubs FTW!
* platform/mac/ClipboardMac.h:
(WebCore::ClipboardMac::pasteboard):
Provide accessor for underlying NSPasteboard
* platform/mac/ClipboardMac.mm:
(WebCore::ClipboardMac::hasData):
(WebCore::ClipboardMac::writeRange):
(WebCore::ClipboardMac::writeURL):
(WebCore::ClipboardMac::declareAndWriteDragImage):
(WebCore::ClipboardMac::createDragImage):
Implemented new Clipboarid functionality.
(WebCore::ClipboardMac::dragNSImage):
Made this a const method
* platform/mac/DragImageMac.mm: Added.
(WebCore::dragImageSize):
(WebCore::deleteDragImage):
(WebCore::scaleDragImage):
(WebCore::dissolveDragImageToFraction):
(WebCore::createDragImageFromImage):
(WebCore::createDragImageIconForCachedImage):
Implemented platform specific DragImage functions
* platform/mac/PasteboardMac.mm:
(WebCore::writeSelection):
(WebCore::Pasteboard::writeSelection):
(WebCore::writeURL):
(WebCore::Pasteboard::writeURL):
Extracted member implementations of these functions, so that
Clipboard could also make use of this functionality.
Pasteboard methods now call the new non-member implementations.
Also fixed implementations to respect the list of requested types.
* platform/qt/DragImageQt.cpp: Added.
(WebCore::dragImageSize):
(WebCore::deleteDragImage):
(WebCore::scaleDragImage):
(WebCore::dissolveDragImageToFraction):
(WebCore::createDragImageFromImage):
(WebCore::createDragImageIconForCachedImage):
Stubs
2007-02-17 David Hyatt <hyatt@apple.com>
Fix textarea resizers to not fill with black by making sure the fill color starts off as
transparent instead of black.
Reviewed by aroben
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContextState::GraphicsContextState):
2007-02-17 Lars Knoll <lars@trolltech.com>
Reviewed by Adam.
fix http://bugs.webkit.org/show_bug.cgi?id=11476
<rdar://problem/4960247> REGRESSION: Nesting the IMG tag inside of a
MAP fails to render correctly in ToT
Test: fast/images/image-in-map.html
* html/HTMLMapElement.cpp:
(WebCore::HTMLMapElement::checkDTD):
2007-02-17 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12733
XPath namespace is attached to a wrong step
* xml/XPathGrammar.y: NAMETEST is different from other NodeTests in that its
resulting type is an expanded name, rather than a string. It is not really possible
to store the namespace inside Parser, because it gets used in wrong steps then.
* xml/XPathParser.cpp:
(WebCore::XPath::Parser::expandQName):
* xml/XPathParser.h:
Moved code that expands a QName from XPathGrammar.y. Removed m_currentNamespaceURI.
* xml/XPathStep.cpp:
(WebCore::XPath::Step::Step):
* xml/XPathStep.h:
Added a constructor that takes a namespace.
2007-02-17 Mitz Pettel <mitz@webkit.org>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=12479
ASSERTION FAILURE: resource->inCache() in WebCore::Cache::remove
Test: fast/loader/simultaneous-reloads-assert.html
* loader/Cache.cpp:
(WebCore::Cache::remove): Replaced the assertion with a check whether the
resource is in the cache. The resource could have been removed from the cache
as a result of a reload occurring simultaneously in a different document.
2007-02-12 Lars Naesbye Christensen <lars@naesbye.dk>
Reviewed by Adam.
Fix for http://bugs.webkit.org/show_bug.cgi?id=12711
Prettier and more distinct cursors
* Resources/crossHairCursor.png: Added.
* Resources/northEastSouthWestResizeCursor.png:
* Resources/northWestSouthEastResizeCursor.png:
* Resources/notAllowedCursor.png: Added.
* page/EventHandler.cpp: (WebCore::selectCursor):
* platform/Cursor.h:
* platform/mac/CursorMac.mm:
(WebCore::crossCursor):
(WebCore::notAllowedCursor):
2007-02-16 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12780
REGRESSION (r19341-r19385): Reproducible crash in "onselectstart" event
Test: fast/events/shadow-boundary-crossing.html
* dom/EventTargetNode.cpp:
(WebCore::EventTargetNode::dispatchGenericEvent): Changed to use the new
eventParentNode() function for constructing the chain of ancestors for
capture and bubbling.
* dom/Node.h:
(WebCore::Node::eventParentNode): Added. Returns the node's parent for the
purpose of of event capture and bubbling. The base class implementation is
to return the parent node.
* ksvg2/svg/SVGElement.h:
(WebCore::SVGElement::eventParentNode): Added. Since in SVG events bubble
to and can be captured across the shadow DOM boundary, returns the shadow parent
for shadow nodes.
2007-02-17 Dave Hyatt <hyatt@apple.com>
Change how textarea resizers paint to more closely match the way the main window resizer paints.
Reviewed by olliej
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintOverflowControls):
2007-02-17 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Fix crashes on ARM due to different struct packing. Based on a patch
from Mike Emmel.
* platform/DeprecatedString.cpp: compile-time assert to make sure sizeof(DeprecatedChar) == 2
* platform/DeprecatedString.h: pack DeprecatedChar struct to ensure that
sizeof(DeprecatedChar) == 2. Move _internalBuffer in DeprecatedStringData
to the end, to avoid crashes on ARM due to different struct packing.
2007-02-16 Adele Peterson <adele@apple.com>
Reviewed by Mitz.
Fix for http://bugs.webkit.org/show_bug.cgi?id=11534
<rdar://problem/4946947> REGRESSION: Readonly text fields don't scroll when selecting content
Test: fast/forms/input-readonly-autoscroll.html
Implemented autoscroll methods for RenderTextControl, so this works on non-editable text controls.
* rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::autoscroll):
* rendering/RenderTextControl.h: (WebCore::RenderTextControl::shouldAutoscroll):
2007-02-17 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Curl networking improvements inspired by Mike Emmel's patches in
http://bugs.webkit.org/show_bug.cgi?id=11332.
Fix FrameLoaderClientGdk due to changed FrameLoaderClient API.
* loader/gdk/FrameLoaderClientGdk.cpp: Massage for changed API.
(WebCore::FrameLoaderClientGdk::saveViewStateToItem):
(WebCore::FrameLoaderClientGdk::restoreViewState):
(WebCore::FrameLoaderClientGdk::generatedMIMETypeForURLScheme):
(WebCore::FrameLoaderClientGdk::willUseArchive):
* loader/gdk/FrameLoaderClientGdk.h: Ditto.
* platform/network/ResourceHandleInternal.h: Remember url and custom headers
for the request lifetime and free them at the end.
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
* platform/network/gdk/ResourceHandleCurl.cpp: Ditto.
(WebCore::ResourceHandleInternal::~ResourceHandleInternal):
* platform/network/gdk/ResourceHandleManager.cpp: url improvements:
- remove m_useSimple code-path since it wasn't used anywhere
- don't use hashmap for keeping track of outstanding jobs - curl does it anyway
- set custom headers from request
- enable gzip and deflate through Accept-Encoding
- setup curl to share cookies and DNS cache between requests
- enable persisting of cookies in a file (if client provides file name
for cookies via ResourceHandleManager::setCookieJarFileName())
(WebCore::ResourceHandleManager::ResourceHandleManager):
(WebCore::ResourceHandleManager::setCookieJarFileName):
(WebCore::ResourceHandleManager::downloadTimerCallback):
(WebCore::ResourceHandleManager::removeFromCurl):
(WebCore::ResourceHandleManager::setupPUT):
(WebCore::ResourceHandleManager::setupPOST):
(WebCore::ResourceHandleManager::add):
(WebCore::ResourceHandleManager::cancel):
* platform/network/gdk/ResourceHandleManager.h:
2007-02-17 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Gdk fixes.
* page/gdk/EventHandlerGdk.cpp: Comment out chatty message.
(WebCore::EventHandler::handleDrag):
* platform/gdk/EditorClientGdk.cpp: Enable entering text into text field.
(WebCore::EditorClientGdk::shouldInsertText):
2007-02-16 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Move Path implementation from TemporaryLinkStubs.cpp to
its own file.
Implement setLineCap, setLineJoin and setMiterLimit for
cairo's GraphicsContext.
* WebCoreSources.bkl:
* platform/gdk/TemporaryLinkStubs.cpp:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::setPlatformFillColor):
(WebCore::GraphicsContext::setPlatformStrokeColor):
(WebCore::GraphicsContext::setLineCap):
(WebCore::GraphicsContext::setLineJoin):
(WebCore::GraphicsContext::setMiterLimit):
* platform/graphics/cairo/PathCairo.cpp: Added.
(WebCore::Path::Path):
(WebCore::Path::~Path):
(WebCore::Path::contains):
(WebCore::Path::translate):
(WebCore::Path::boundingRect):
(WebCore::Path::operator=):
(WebCore::Path::clear):
(WebCore::Path::moveTo):
(WebCore::Path::addLineTo):
(WebCore::Path::addQuadCurveTo):
(WebCore::Path::addBezierCurveTo):
(WebCore::Path::addArcTo):
(WebCore::Path::closeSubpath):
(WebCore::Path::addArc):
(WebCore::Path::addRect):
(WebCore::Path::addEllipse):
(WebCore::Path::transform):
(WebCore::Path::apply):
2007-02-16 Ada Chan <adachan@apple.com>
Reviewed by Adam and Maciej.
Use a RefPtr to store the old hover node.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateHoverActiveState):
2007-02-16 Darin Adler <darin@apple.com>
Reviewed by Adele.
- fix <rdar://problem/4990864> ASSERT in FormDelegate.m while dragging text between frames
This symptom is specific to Safari, so no layout test.
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::doApply): Only call textWillBeDeletedInTextField if the
text field is focused.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::aboutToUnload): Only call textFieldDidEndEditing if the text
field is focused.
(WebCore::HTMLInputElement::dispatchBlurEvent): Remove unneeded type cast.
(WebCore::HTMLInputElement::defaultEventHandler): Only call doTextFieldCommandFromEvent if
the text field is focused.
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::subtreeHasChanged): Only call textDidChangeInTextArea,
textFieldDidBeginEditing, and textDidChangeInTextField if the element is focused.
2007-02-16 Anders Carlsson <acarlsson@apple.com>
Reviewed by Adam.
<rdar://problem/4943985>
REGRESSION: Dragging standalone images to Finder fails to download the image file
Set the data and response on the image resource. Also, since this is platform-independent we don't need to do it in
ImageDocumentMac.mm
* loader/ImageDocument.cpp:
(WebCore::ImageTokenizer::finish):
* loader/mac/ImageDocumentMac.h:
* loader/mac/ImageDocumentMac.mm:
(WebCore::finishImageLoad):
2007-02-16 David Harrison <harrison@apple.com>
Reviewed by Adam.
<rdar://problem/5004746> Need mechanism to protect against WebKit calls from secondary threads (DOM APIs)
* platform/mac/LoggingMac.mm:
(WebCore::_WebCoreThreadViolationCheck):
Change the default to log the violations.
2007-02-16 Adele Peterson <adele@apple.com>
Reviewed by Mitz.
Fixed: http://bugs.webkit.org/show_bug.cgi?id=12768
<rdar://problem/4995250> REGRESSION: Crash occurs at WebCore::RenderLayer::scrollToOffset() when leaving page that has focus in field
No test case added. This crash doesn't occur in DumpRenderTree because the B/F cache is turned off.
* dom/Node.cpp: (WebCore::Node::willRemove): Check that the document is not in the page cache before
* dom/Element.cpp: (WebCore::Element::updateFocusAppearance): Added restorePreviousSelection argument, with appropriate default values.
* dom/Element.h: ditto.
* html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::updateFocusAppearance): ditto.
* html/HTMLInputElement.h: ditto.
* html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::updateFocusAppearance): ditto.
* html/HTMLTextAreaElement.h: ditto.
* page/PageState.cpp: (WebCore::PageState::restore): Call updateFocusAppearance on the focused node for this page. Pass true for the
restorePreviousSelection argument.
* rendering/RenderLayer.cpp: Added ASSERTS and nil checks on the RenderView. It shouldn't be null, but if it is,
we'll fail silently on release builds.
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::scrollToOffset):
(WebCore::RenderLayer::windowClipRect):
(WebCore::RenderLayer::calculateClipRects):
(WebCore::RenderLayer::calculateRects):
(WebCore::RenderLayer::intersectsDamageRect):
(WebCore::RenderLayer::absoluteBoundingBox):
2007-02-16 Anders Carlsson <acarlsson@apple.com>
Reviewed by Darin.
<rdar://problem/4993055> auto_refcount_underflow_error: WebCore::FrameLoader::continueAfterNavigationPolicy () over-releases under GC
Add ::adoptNS and ::adoptCF methods to RetainPtr to indicate what type of reference to adopt.
* platform/cf/RetainPtr.h:
(WebCore::):
(WebCore::adoptNSReference):
(WebCore::RetainPtr::RetainPtr):
(WebCore::::adoptCF):
(WebCore::::adoptNS):
* platform/mac/FileChooserMac.mm:
(WebCore::FileChooser::FileChooser):
* platform/network/mac/ResourceErrorMac.mm:
(WebCore::ResourceError::operator NSError*):
* platform/network/mac/ResourceRequestMac.mm:
(WebCore::ResourceRequest::doUpdatePlatformRequest):
* platform/network/mac/ResourceResponseMac.mm:
(WebCore::ResourceResponse::nsURLResponse):
2007-02-15 Brady Eidson <beidson@apple.com>
Reviewed by Lost Objective-C Hippyness (or hippiness)
Oh boy, did I ever botch this one up...
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::saveScrollPositionAndViewStateToItem): Null check the FrameView
2007-02-15 Brady Eidson <beidson@apple.com>
Reviewed by Adam's complaint
Adam wanted me to do an early return, instead.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::saveScrollPositionAndViewStateToItem):
2007-02-15 Brady Eidson <beidson@apple.com>
Reviewed by Adele
Forgot to bring the null check with me when I backed this code out of
the FrameLoaderClient
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::saveScrollPositionAndViewStateToItem): null check the HistoryItem
2007-02-15 Brady Eidson <beidson@apple.com>
Reviewed by Adam
Save scroll state for back/forward navigation in FrameLoader, not the client
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::saveScrollPositionAndViewStateToItem): Actually save the scroll position
here instead of asking the FrameLoaderClient
(WebCore::FrameLoader::restoreScrollPositionAndViewState): Ditto
* loader/FrameLoaderClient.h: Renamed/repurposed 2 methods
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::restoreViewState): Ditto
(WebCore::SVGEmptyFrameLoaderClient::saveViewStateToItem): Ditto
2007-02-15 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/4989774>
REGRESSION: Pasting a image into a plain text message can place image on a new line
<span><img><span><img></span></span> will appear as two
images on different lines because of a layout/rendering
bug. This patch avoids the bug by producing cleaner
markup so that the paste code can safely remove the style
spans.
* editing/markup.cpp:
(WebCore::createMarkup): Get the default style from the
editable root or body instead of the document element.
This produces cleaner markup since we don't inline the
root's styles.
2007-02-15 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Add gdk version of ContextMenuClient based on qt version.
* WebCoreSources.bkl:
* page/gdk/ContextMenuClientGdk.cpp: Added.
(WebCore::ContextMenuClientGdk::contextMenuDestroyed):
(WebCore::ContextMenuClientGdk::getCustomMenuFromDefaultItems):
(WebCore::ContextMenuClientGdk::contextMenuItemSelected):
(WebCore::ContextMenuClientGdk::downloadURL):
(WebCore::ContextMenuClientGdk::copyImageToClipboard):
(WebCore::ContextMenuClientGdk::searchWithGoogle):
(WebCore::ContextMenuClientGdk::lookUpInDictionary):
(WebCore::ContextMenuClientGdk::speak):
(WebCore::ContextMenuClientGdk::stopSpeaking):
* page/gdk/ContextMenuClientGdk.h: Added.
* webcore-base.bkl: curl is needed when building webcore_base files.
2007-02-15 Kevin Decker <kdecker@apple.com>
Reviewed by Darin.
Fixed: <rdar://problem/4983883> Background of a .mov window should not be white
* loader/PluginDocument.cpp:
(WebCore::PluginTokenizer::createDocumentStructure): Set a background color of gray
for full frame plug-ins, which makes it easier on the eyes. It's also the same
gray that PDFKit uses, too.
2007-02-15 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12625
REGRESSION: Crash when closing the web inspector with text selected
The problem was that selectionRect() was being called on a render tree that
had pending style changes. The changes were committed as a side effect in
the middle of traversing the render tree, and the current object got
deleted as a result. The solution is to update the render tree before
starting to traverse it.
The inspector was affected because it makes style changes in response to
an AppKit notification that's sent right before the windowDidResignKey:
notification, under which WebKit calls selectionRect(). I couldn't recreate
the same conditions (having uncommitted style changes in the tree when the
window becomes inactive) using HTML/JS in Safari, hence the lack of
a regression test to go with this patch.
* rendering/RenderView.cpp:
(WebCore::RenderView::selectionRect): Added call to updateRendering().
2007-02-15 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=10127
REGRESSION: Crash undoing delete in textarea
Document::removeMarkers() was using a Vector iterator (which is just a
pointer) and inserting into the Vector at the same time, which made the
iterator invalid as the Vector's data buffer was relocated.
Replaced all instances of Vector<DocumentMarker>::iterator with indices.
* dom/Document.cpp:
(WebCore::Document::addMarker):
(WebCore::Document::copyMarkers):
(WebCore::Document::removeMarkers):
(WebCore::Document::repaintMarkers):
(WebCore::Document::shiftMarkers):
2007-02-15 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- http://bugs.webkit.org/show_bug.cgi?id=12777
REGRESSION (r18574): User profile pages display incorrectly at ebay.ca
Fixes existing layout tests: tables/mozilla/bugs/bug45486.html
tables/mozilla_expected_failures/core/col_span2.html
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::calcEffectiveWidth): Fixed a mismatch between which
columns count as percentage columns when adding up the total percent and
which columns count as percentage columns when converting non-percentage
columns to effectively-percentage.
2007-02-14 Mitz Pettel <mitz@webkit.org>
Reviewed by Sam Weinig!
- fix http://bugs.webkit.org/show_bug.cgi?id=12773
REGRESSION (r19490): Crash on ipx-server.de
* manual-tests/background-image-change-in-page-cache.html: Added.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::imageChanged): Bail out if the object is not in a view,
which can happen if the document is in the page cache and the same cached
image used for its background is also being used in another document that
is currently in view.
2007-02-14 Adam Roben <aroben@apple.com>
Reviewed by Darin.
Fix http://bugs.webkit.org/show_bug.cgi?id=12517
<rdar://problem/4971227> REGRESSION: Tab order incorrect when input
inside frame/iframe gets initial focus (12517)
Test: fast/events/frame-programmatic-focus.html
* dom/Element.cpp:
(WebCore::Element::focus): Call FocusController::setFocusedNode to set
the focus for the whole page.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::focus): Ditto.
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::focus): Ditto.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleTextInputEvent): Send the textInput
event to the same target that was sent the keypress event before it.
* page/FocusController.cpp:
(WebCore::FocusController::advanceFocus): Added a FIXME.
(WebCore::FocusController::setFocusedNode): Added. Sets the focused
node for a whole page.
* page/FocusController.h: Added declaration.
* platform/cf/RetainPtr.h: Removed unused pointer_cast functions.
2007-02-14 Justin Garcia <justin.garcia@apple.com>
Reviewed by adele
<rdar://problem/4976800>
Outdent combines 2 separate strings on 2 different lines
* editing/IndentOutdentCommand.cpp:
(WebCore::IndentOutdentCommand::outdentParagraph): Add line breaks
if removing the indented node causes content before or after it to
collapse into the same paragraph as its content.
2007-02-14 Justin Garcia <justin.garcia@apple.com>
Reviewed by adele
<rdar://problem/4960120>
REGRESSION: First Enter key ignored on initial focus of textarea after page load (11967)
We'd insert a newline, but into an empty div. We need two newlines
in that case.
* editing/InsertLineBreakCommand.cpp:
(WebCore::lineBreakExistsAtPosition): Returns true if there is a
br or a '\n' in text that preserves newlines at the incoming position.
(WebCore::InsertLineBreakCommand::doApply): Fixed to handle the empty
block case, the anonymous block case.
2007-02-14 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- test or http://bugs.webkit.org/show_bug.cgi?id=12417
<rdar://problem/4990046> REGRESSION: pressing "Return" in a <select>
box does not submit the form (12697)
Test: fast/forms/select-enter-key.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
Add code to submit when someone hits the Enter key.
2007-02-14 Anders Carlsson <acarlsson@apple.com>
Reviewed by Darin.
<rdar://problem/4960112>
http://bugs.webkit.org/show_bug.cgi?id=12417
REGRESSION: "Are you sure you want to send a form again?" sheet is displayed twice (validator.w3.org)
The problem was that doing a reload would cause the "Cache-Control" HTTP header to be set on the request _after_ the first
navigation policy delegate callback was called. This would break the request equality check that's used to prevent multiple policy
delegate callbacks from getting called for the same request. The solution is to set the header as early as possible.
This patch also fixes some bugs in the ResourceRequest equality operator.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::reload):
Set the "Cache-Control" header field on the request here.
* platform/network/FormData.h:
(WebCore::operator==):
Short-circuit if the pointers are the same.
* platform/network/ResourceRequest.cpp:
(WebCore::operator==):
Check the equality of the objects, not the pointers.
2007-02-14 David Hyatt <hyatt@apple.com>
Move setPlatformData out of FontFallbackListMac.mm and delete the file. The function was completely
cross-platform already.
Reviewed by Ada
* WebCore.xcodeproj/project.pbxproj:
* platform/FontFallbackList.cpp:
(WebCore::FontFallbackList::setPlatformFont):
2007-02-14 David Hyatt <hyatt@apple.com>
Make the Font constructor that takes a FontPlatformData cross-platform, since the implementation was already
completely cross-platform.
Reviewed by Ada
* platform/Font.cpp:
(WebCore::Font::Font):
* platform/Font.h:
* platform/mac/FontMac.mm:
2007-02-14 Antti Koivisto <antti@apple.com>
Reverting http://bugs.webkit.org/show_bug.cgi?id=11974, it causes repainting problems in some cases.
* rendering/RenderTextControl.h:
(WebCore::RenderTextControl::avoidsFloats):
2007-02-14 Antti Koivisto <antti@apple.com>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=11974
REGRESSION: Caret drawn over input when smaller than font size on initial focus
<rdar://problem/4960258>
Set controlClip for non-search text controls.
* rendering/RenderTextControl.h:
(WebCore::RenderTextControl::hasControlClip):
2007-02-14 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12726
REGRESSION (r12073): Text wraps in the middle of a word instead of wrapping at the space before the word
Test: fast/text/break-word.html
The wrapW variable used to keep track of the width of the characters scanned
so far by adding up the widths of individual characters. Because of the
rounding hack, the total ended up being bigger than the width of the same characters
when measured together as a single run.
The fix is to use wrapW only as an upper bound, and once it overflows the line's width,
fall back on measuring everything from the beginning of the line as one run.
* rendering/bidi.cpp:
(WebCore::RenderBlock::findNextLineBreak): Implemented the above fix, including not measuring
additional single characters once wrapW overflows the line. Also moved the assignment
to breakNBSP out of the loop since it is constant for the entire text object, made breakWords and
midWordBreak update only when they might change, and cleaned up a few things.
2007-02-14 Antti Koivisto <antti@apple.com>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=11923
REGRESSION: Placeholder text in password field shows as bullets
<rdar://problem/4960257>
Disable textSecurity when placeholder is visible.
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::updatePlaceholder):
2007-02-13 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Mark Rowe.
http://bugs.webkit.org/show_bug.cgi?id=12763
REGRESSION: button title is displayed incorrectly at quotes.burntelectrons.org
Test: fast/parser/entities-in-attributes.xhtml
* dom/XMLTokenizer.cpp:
(WebCore::getEntityHandler): Set a correct type for the found entity (I'm not really
sure if XML_INTERNAL_GENERAL_ENTITY is _the_ correct one, but it fixes the problem).
2007-02-13 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- removed some bogus names (Hyatt smacked me since this doesn't fix a P1)
* dom/EventNames.h: Removed half-implemented khtmlDragdrop and khtmlMove
(you could add listeners, but nobody ever sent the events). Renamed the
other two khtml-prefixed internal event names to use the webkit prefix.
* bindings/js/kjs_dom.cpp:
(KJS::DOMEventTargetNode::getValueProperty): Removed ondragdrop and onmove.
(KJS::DOMEventTargetNode::putValueProperty): Ditto.
* bindings/js/kjs_dom.h:
* bindings/js/kjs_window.cpp:
(KJS::Window::getValueProperty): Ditto.
(KJS::Window::put): Ditto.
* bindings/js/kjs_window.h:
* dom/BeforeTextInsertedEvent.cpp:
(WebCore::BeforeTextInsertedEvent::BeforeTextInsertedEvent): Renamed to webkit.
* editing/Editor.cpp:
(WebCore::dispatchEditableContentChangedEvents): Ditto.
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::ReplacementFragment): Ditto.
* html/HTMLTextFieldInnerElement.cpp:
(WebCore::HTMLTextFieldInnerTextElement::defaultEventHandler): Ditto.
2007-02-13 Darin Adler <darin@apple.com>
Rubber stamped by Maciej.
* dom/EventNames.h: Resort names. Removed unused names.
2007-02-13 Anders Carlsson <acarlsson@apple.com>
Reviewed by Kevin Decker.
<rdar://problem/4990049>
http://bugs.webkit.org/show_bug.cgi?id=12718
REGRESSION: Segmentation fault when loading abc.go.com (12718)
The problem is that redirecting to about:blank causes the delegate to be released even though the load wasn't finished.
This is usally not a problem since NSURLConnection retains its delegate. However, the proxy delegate does not retain _it's_
delegate. The solution is to make releaseDelegate clear out the proxy delegate's delegate.
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::releaseDelegate):
If there's a proxy, nil out its delegate too.
2007-02-13 Dex Deacon <occupant4@gmail.com>
Reviewed by Darin.
- fix for http://bugs.webkit.org/show_bug.cgi?id=12750
Vector operator== was not defined correctly. It returned void,
did not accept const Vectors, and used an int instead of size_t.
* rendering/RenderStyle.h: Added a != operator for StyleDashboardRegion.
The only reason this compiled before was that the comparing two vectors
with a != was simply comparing the pointers.
2007-02-13 Darin Adler <darin@apple.com>
- roll out fix for <rdar://problem/4874059> REGRESSION: Painter IX:register -
Crash in WebCore:: ResourceLoader::willSendRequest()
This fix was causing a crash in at least one layout test.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopAllLoaders):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
2007-02-13 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12746
REGRESSION (r13853): List item's first line overflows containing div
Test: fast/lists/item-not-in-list-line-wrapping.html
* rendering/bidi.cpp:
(WebCore::RenderBlock::findNextLineBreak): Use the list marker's isInside()
instead of looking at its style()->listStylePosition(), since if the
list item is not in a list, the marker is inside regardless of the style.
2007-02-13 Rob Buis <buis@kde.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12578
WebKit incorrectly strokes zero-width/height rectangles
Create an empty path when encountering zero-width/height rectangles, similar to circles with zero radius.
* platform/graphics/Path.cpp:
(WebCore::Path::createRectangle):
2007-02-13 Rob Buis <buis@kde.org>
Reviewed by Maciej.
Remove SVGDOMImplementation from the project.
* CMakeLists.txt:
* WebCore.pro:
* ksvg2/svg/SVGDOMImplementation.cpp: Removed.
* ksvg2/svg/SVGDOMImplementation.h: Removed.
2007-02-13 Brady Eidson <beidson@apple.com>
Reviewed by Maciej and Adam
Fixes <rdar://problem/4985497> - Crash when opening a new window to "Same Page"
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadItem): Null check documentLoader() since if we're a brand new
WebView, cloning the history of another view, we have no documentLoader()
2007-02-12 Antti Koivisto <antti@apple.com>
Reviewed by Maciej.
-fix REGRESSION: <select disabled size="5"> listbox cannot be scrolled
http://bugs.webkit.org/show_bug.cgi?id=11852
<rdar://problem/4960129>
Pass mouse press events to scrollbars even if event is swallowed.
No layout test, DumpRenderTree eventSender can't hit scrollbars.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent):
2007-02-12 David Hyatt <hyatt@apple.com>
Fix for bug 12149 (Radar Bug#4928692), external CSS causes incomplete
text field focus.
Make sure to clear out the focus node in willRemove() rather than in
detach(), since detach/attach caused by style recalc should not affect
the focused node.
Reviewed by aroben
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::willRemove):
* dom/Document.cpp:
(WebCore::Document::focusedNodeRemoved):
(WebCore::Document::setFocusedNode):
* dom/Document.h:
* dom/Element.cpp:
(WebCore::Element::updateFocusAppearance):
* dom/Node.cpp:
(WebCore::Node::willRemove):
(WebCore::Node::detach):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateFocusAppearance):
2007-02-12 Kevin McCullough <kmccullough@apple.com>
- reverting fix for rdar://problem/4922454 because it caused regressions
and performance problems
* bindings/objc/DOM.mm:
(-[DOMElement image]):
(-[DOMElement _imageTIFFRepresentation]):
* dom/XMLTokenizer.cpp:
(WebCore::XMLTokenizer::notifyFinished):
* html/HTMLImageLoader.cpp:
(WebCore::HTMLImageLoader::dispatchLoadEvent):
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::reset):
(WebCore::HTMLTokenizer::notifyFinished):
* ksvg2/misc/SVGImageLoader.cpp:
(WebCore::SVGImageLoader::dispatchLoadEvent):
* loader/Cache.cpp:
(WebCore::Cache::requestResource):
(WebCore::Cache::remove):
* loader/CachedImage.h:
(WebCore::CachedImage::canRender):
(WebCore::CachedImage::isErrorImage):
* loader/CachedResource.h:
* loader/CachedScript.h:
(WebCore::CachedScript::errorOccurred):
* loader/DocLoader.cpp:
(WebCore::DocLoader::requestResource):
(WebCore::DocLoader::setLoadInProgress):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::canLoad):
* page/EventHandler.cpp:
(WebCore::selectCursor):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::image):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::setCachedImage):
(WebCore::RenderImage::imageChanged):
(WebCore::RenderImage::paint):
(WebCore::RenderImage::layout):
(WebCore::RenderImage::calcAspectRatioWidth):
(WebCore::RenderImage::calcAspectRatioHeight):
* rendering/RenderImage.h:
(WebCore::RenderImage::isErrorImage):
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::setStyle):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::isImage):
2007-02-12 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12123
REGRESSION: Incomplete repaint of floats' overflows
Tests: fast/repaint/float-overflow.html
fast/repaint/float-overflow-right.html
- fix http://bugs.webkit.org/show_bug.cgi?id=10116
REGRESSION: Menu item drawn 2 pixels short on WWDC 2006 Attendee Site
Reflected in existing test results.
Unified floats and overflow for the purposes of painting and hit-testing.
Overhanging and overflowing floats are now factored into a block's overflow
unless their painting has been propagated to an ancestor.
Changed table cells to no longer expand to enclose overflow, thus making
it purely "visual overflow", having no effect on layout in WebCore. It
still determines scrolling dimensions.
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::placeBoxesHorizontally): Include inline blocks'
horizontal overflow in the inline box's dimensions.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock): Removed the expand to enclose overflows
behavior. Added code to add this block's floats (and their overflow) to its
overflow rect if it is not in a block formatting context. Otherwise, the
inclusion of floats in the overflow is deferred until this block's parent
examines its floats and possibly adopts overhanging floats.
(WebCore::RenderBlock::layoutBlockChildren):
(WebCore::RenderBlock::paint):
(WebCore::RenderBlock::floatRect): Changed to return an empty rect if there
are no floats or the floats are clipped, instead of returning the border box.
(WebCore::RenderBlock::addOverhangingFloats): Any floats of the child that
are not to be painted by the parent are added to the child's overflow rect.
(WebCore::RenderBlock::addVisualOverflow): Added. Adjusts the overflow
bounds to include the given rect.
(WebCore::RenderBlock::nodeAtPoint):
* rendering/RenderBlock.h:
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
(WebCore::RenderFlexibleBox::layoutHorizontalBox): After placing a normal
child, add its floats to its overflow, since painting of floats does not
propagate to flexible boxes.
(WebCore::RenderFlexibleBox::layoutVerticalBox): Ditto.
* rendering/RenderForeignObject.cpp:
(WebCore::RenderForeignObject::layout):
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::layout):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::layout):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::absoluteBoundingBox):
* rendering/RenderLayer.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::repaintAfterLayoutIfNeeded):
* rendering/RenderObject.h:
(WebCore::RenderObject::expandsToEncloseOverhangingFloats):
* rendering/RenderPath.cpp:
(WebCore::RenderPath::layout):
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::layout):
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::layout):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout):
* rendering/RenderTableCell.h:
(WebCore::RenderTableCell::expandsToEncloseOverhangingFloats):
2007-02-12 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12668
<rdar://problem/4893344> REGRESSION: underline not visible for the international
input inline hole in most text fields (12668)
- fix bug where overline and line-through were 1px lower than we intended
* platform/graphics/GraphicsContext.h: Removed unneeded y offset parameter.
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawLineForText): Removed bogus y offset and +1.
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawLineForText): Ditto.
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::drawLineForText): Ditto.
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::paintTextDecorations): Added the "+1" that used to be
inside drawLineForText to the underline-drawing code. Changed the other callers
of drawLineForText to include the y offset in the y coordinate.
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintDecoration): Ditto. Also renamed _tx and _ty to
remove the gratuitious underscores.
(WebCore::InlineTextBox::paintMarkedTextUnderline): Made the default thickness
be 1px instead of 0 (which ends up being roughly 1px in the CG code path anyway).
Fixed the code computing the position to put the underline at the bottom of the
line (different from regular underlines which are put 1px under the baseline).
The old code used to put the underline 1px further down in the thick case, and
2px further down in the non-thick case. Both of those are bad, because they
could be completely clipped out in many cases.
2007-02-12 Anders Carlsson <acarlsson@apple.com>
Reviewed by Darin.
<rdar://problem/4846962>
Aperture: Aperture 1.5 - DOM exception occurs when exporting a web gallery
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::replaceChild):
Call checkReplaceChild here.
* dom/Document.cpp:
(WebCore::Document::canReplaceChild):
* dom/Document.h:
Add implementation of canReplaceChild that makes sure that doing the replacement won't cause
more than one element and document type node to end up in the document.
* dom/Node.cpp:
(WebCore::Node::canReplaceChild):
Base implementation of canReplaceChild.
(WebCore::Node::checkReplaceChild):
New function that does what checAddChild does but calls canReplaceChild.
2007-02-12 Kevin Decker <kdecker@apple.com>
Reviewed by Anders.
Fixed: <rdar://problem/4874059> REGRESSION: Painter IX:register - Crash in WebCore:: ResourceLoader::willSendRequest()
What happened here was that a WebDataSource was being dealloced *while* a load for that resource is still in progress.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopAllLoaders): Calling stopAllLoaders cancels loads and informs the frame load delegate accordingly.
The delegate however may decide to kick off a new provisional load as the result of the cancel. Therefore a local variable
for the provisional and main doucment loader is introduced, and we now only nil out the provisional loader if the local and
member provisional variables represent the exact same load.
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy): Added the same check here, too.
2007-02-12 Lars Knoll <lars@trolltech.com>
Reviewed by Mitz.
Do not create child renderers for table column groups
if the child has not a table column display type.
* dom/Node.cpp:
(WebCore::Node::createRendererIfNeeded):
* rendering/RenderObject.h:
(WebCore::RenderObject::isChildAllowed):
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::isChildAllowed):
* rendering/RenderTableCol.h:
2007-02-12 Antti Koivisto <antti@apple.com>
Reviewed by Mitz
Fix assertion failure in layout test.
* html/HTMLMapElement.cpp:
(WebCore::HTMLMapElement::parseMappedAttribute):
2007-02-12 Kevin McCulough <kmccullough@apple.com>
Reviewed by Brady.
- Fixing a performance regression caused by r19500. The heart of the matter
is that we now call canLoad on every resource request even ones in the cache,
to avoid a security issue. So I could not take out the canLoad call, but I
but I could try to make it more efficient.
* loader/DocLoader.cpp:
(WebCore::DocLoader::requestResource):
(WebCore::DocLoader::setLoadInProgress):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::canLoad):
2007-02-12 Darin Adler <darin@apple.com>
Reviewed by Oliver.
- fix http://bugs.webkit.org/show_bug.cgi?id=12677
<rdar://problem/4759563> REGRESSION: Return key is always sent when you confirm
a clause in kotoeri (12677)
- fix http://bugs.webkit.org/show_bug.cgi?id=12596
<rdar://problem/4794346> REGRESSION: Tab key shifts form field focus instead of
navigating prediction window (12596)
- fix http://bugs.webkit.org/show_bug.cgi?id=10010
<rdar://problem/4822935> REGRESSION: Pressing Return with unconfirmed text in
Hangul inserts carriage return (10010)
- fix http://bugs.webkit.org/show_bug.cgi?id=12531
<rdar://problem/4975126> REGRESSION: Inline text input types repeated keys in
latest nightly (r19336) (12531)
- fix http://bugs.webkit.org/show_bug.cgi?id=12539
<rdar://problem/4975130> REGRESSION: Pressing Backspace while in inline input
area moves to the previous page in history (12539)
This area still needs work because keypress events are being sent for all the
events before they go to the input methods, and it seems that this is not
compatible with what other browsers do and with what sites assume. That's covered
by this bug:
http://bugs.webkit.org/show_bug.cgi?id=10871
<rdar://problem/4823129> REGRESSION: IME key events different in nightly (10871)
which is still open.
* bindings/objc/ExceptionHandlers.h: Remove selectRange helper that doesn't really
belong here, and also isn't needed since the callers don't want to raise ObjC
exceptions.
* bindings/objc/ExceptionHandlers.mm: Ditto. Also removed unneeded external globals
that aren't exported anyway and unneeded includes.
* bridge/EditorClient.h: Added Mac-specific function, markedTextAbandoned. Long term
this might move into platform instead, but it's fine to have it on the client for now
as long as it doesn't cause trouble for platforms other than Mac.
* dom/EventTargetNode.cpp: (WebCore::EventTargetNode::defaultEventHandler): Since
all the event handling code in this function is intended to run on the node itself,
not parent nodes, check and do nothing if this event is bubbling up from another
node. Added code to call a function on EventHandler for default handling of text
input events.
* dom/KeyboardEvent.h:
* dom/KeyboardEvent.cpp: (WebCore::findKeyboardEvent): Added. Just like the
findUIEventWithKeyState function, but specific to keyboard events.
* dom/TextEvent.h: Added isLineBreak and isBackTab flags so that we can carry
additional information about what a text input event is trying to do, but still
go through the DOM event machinery.
* dom/TextEvent.cpp: Ditto.
* editing/Editor.h:
* editing/Editor.cpp:
(WebCore::Editor::handleKeyPress): Removed unneeded check of isCaretOrRange, since
isContentEditable already checks that.
(WebCore::Editor::canEdit): Ditto.
(WebCore::Editor::canEditRichly): Ditto.
(WebCore::Editor::canPaste): Changed to call canEdit for brevity.
(WebCore::Editor::replaceSelectionWithText): Changed to take a const String&.
(WebCore::Editor::shouldInsertText): Ditto.
(WebCore::hasEditableSelection): Removed unneeded check of isCaretOrRange, since
isContentEditable already checks that.
(WebCore::Editor::Editor): Initialize the new m_ignoreMarkedTextSelectionChange
flag. Moved here from WebHTMLView.
(WebCore::Editor::insertText): Moved most of the code from -[WebHTMLView insertText:]
here, since this needs to be done in response to a text input event and we don't want
to go back over the WebKit side for that.
(WebCore::Editor::insertLineBreak): Added. Moved here from -[WebHTMLView insertLineBreak:]
for the same reason -- needs to be done in response to text input events.
(WebCore::Editor::insertParagraphSeparator): Ditto.
(WebCore::Editor::selectMarkedText): Added. Used by insertText.
(WebCore::Editor::discardMarkedText): Added. Used by insertText.
(WebCore::Editor::unmarkText): Added. Used by insertText.
* editing/mac/EditorMac.mm:
(WebCore::Editor::unmarkText): Added. Used by insertText.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::canHaveSelection): Changed to use isTextField to avoid repeating
the switch statement.
(WebCore::HTMLInputElement::selectionStart): Ditto.
(WebCore::HTMLInputElement::selectionEnd): Ditto.
(WebCore::HTMLInputElement::setSelectionStart): Ditto.
(WebCore::HTMLInputElement::setSelectionEnd): Ditto.
(WebCore::HTMLInputElement::select): Ditto.
(WebCore::HTMLInputElement::setSelectionRange): Ditto.
(WebCore::HTMLInputElement::createRenderer): Resorted cases alphaebtically.
(WebCore::HTMLInputElement::defaultEventHandler): Added code to make hitting return cause the
form to be submitted when it comes through as a text input event. This is now the normal case
on Macintosh, because enter key presses normally turn into this. In addition, change the other
event handling to run only after trying the base defaultEventHandler. That makes the key
handling done in EventTargetNode take precedence over the event handling here for editable text
fields, which is what we want. This gets rid of the need for the hack where we check
inputManagerHasMarkedText and suppress the handling of the enter key.
* page/EventHandler.h: Removed unneeded includes. Moved EventHandlerDragState down into the
private part of the class. Changed sendContextMenuEvent to take a const&. Added new
handleTextInputEvent and defaultTextInputEventHandler functions. Made eventLoopHandleMouseUp
and eventLoopHandleMouseDragged private. Added private defaultTabEventHandler function.
* page/EventHandler.cpp:
(WebCore::EventHandler::sendContextMenuEvent): Changed parameter to be a const&.
(WebCore::EventHandler::defaultKeyboardEventHandler): Rearranged things so that the key bindings
handling in handleKeyPress comes before special tab event handling. In cases where the tab turns
into text to insert, we now handle it in the text input event handler.
(WebCore::EventHandler::handleTextInputEvent): Added. Creates and dispatches a text input event.
(WebCore::EventHandler::defaultTextInputEventHandler): Added. Inserts text, but has special cases
for the tab and newline character cases.
(WebCore::EventHandler::defaultTabEventHandler): Added. Shared by the tab-handling code in
the keyboard event and text input event handlers.
* page/mac/EventHandlerMac.mm: Tweak formatting, remove some unused functions.
* page/FocusController.h: Removed unnneded includes and forwards, and added an overload of
advanceFocus that takes a FocusDirection parameter.
* page/FocusController.cpp: (WebCore::FocusController::advanceFocus): Changed to allow a 0 for
the event pointer. Also added a version where the direction is passed explicitly, to be used
for cases where we want to tab backward even if the event doesn't have a shift modifier key set.
* platform/graphics/svg/SVGImageEmptyClients.h: Updated for change to EditorClient.
This should really probably just use 0 for the EditorClient.
* WebCore.exp: Update both for newly used and no-longer-used entry points.
* page/mac/WebCoreFrameBridge.h:
* page/mac/WebCoreFrameBridge.mm: Removed two unused methods.
2007-02-12 Antti Koivisto <antti@apple.com>
Reviewed by Darin.
- fixed Imagemap not clickable in www.toptenbooks.net/
http://bugs.webkit.org/show_bug.cgi?id=12738
Make imagemap names case insensitive in HTML mode
* dom/Document.cpp:
(WebCore::Document::getImageMap):
* html/HTMLMapElement.cpp:
(WebCore::HTMLMapElement::parseMappedAttribute):
2007-02-12 Maciej Stachowiak <mjs@apple.com>
Reviewed by Antti.
- fixed <rdar://problem/4928675> REGRESSION: Crash in CGBlt_copyBytes under WebCore::Font::drawGlyphs (12083)
http://bugs.webkit.org/show_bug.cgi?id=12083
Test: fast/text/text-shadow-extreme-value.html
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::setShadow): Clamp shadow value to 1000px, anything more seems to
make CG unhappy.
2007-02-11 Brady Eidson <beidson@apple.com>
Reviewed by Maciej.
First in what will be a series of HistoryItem enhancements to help debugging
* history/HistoryItem.cpp:
(WebCore::HistoryItem::showTree):
(WebCore::HistoryItem::showTreeWithIndent):
(showTree): Outside of WebCore namespace, and extern "C" - to make even the
DWARF debugger able to find it... *sigh*
* history/HistoryItem.h:
2007-02-11 Eric Seidel <eric@webkit.org>
Reviewed by Anders.
- fixed <rdar://problem/4975133> ASSERT failure and crash right-clicking on image in SVG use test
http://bugs.webkit.org/show_bug.cgi?id=12580
Test: svg/cust/use-events-crash.svg
* bindings/js/kjs_dom.cpp:
(KJS::toJS):
* ksvg2/svg/SVGElementInstance.cpp:
(WebCore::SVGElementInstance::toNode):
* ksvg2/svg/SVGElementInstance.h:
2007-02-11 Mitz Pettel <mitz@webkit.org>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=10144
REGRESSION: Reproducible assertion failure in DeleteSelectionCommand::fixupWhitespace()
Test: fast/text/delete-hard-break-character.html
The bug was caused by not updating a line whose line break object and offset
has been deleted. When deleting text, all lines containing the deleted text
are marked dirty. However, if the first character being deleted is a newline
which serves as a hard line break for the previous line, then that line will
not be marked, and since it will be a clean line ending with a line break,
relayout will begin at the next line. The fix is to check for this when
determining where to relayout from.
* rendering/bidi.cpp:
(WebCore::RenderBlock::determineStartPosition): Changed the condition for
including the last clean line in relayout to include the case where the
last clean line ends with a line break, but that line break is a newline that
has been deleted.
2007-02-12 Antti Koivisto <antti@apple.com>
Reviewed by Maciej.
REGRESSION: Google Calendar cell highlight misplaced
http://bugs.webkit.org/show_bug.cgi?id=12687
Make offsetLeft/offsetTop/offsetParent behavior match Firefox.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::offsetLeft):
(WebCore::RenderObject::offsetTop):
(WebCore::RenderObject::offsetParent):
2007-02-10 Antti Koivisto <antti@apple.com>
Reviewed by Maciej.
- fixed REGRESSION: No day/week scrollbar in Google Calendar
http://bugs.webkit.org/show_bug.cgi?id=11985
Make sure overflow:auto scrollbars are always enabled. If they were overflow:scroll
and dynamically changed to auto they might still be disabled.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateScrollInfoAfterLayout):
2007-02-11 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Hyatt.
http://bugs.webkit.org/show_bug.cgi?id=12581
XPath //title shouldn't match <title> in XHTML
Test: fast/xpath/ensure-null-namespace.xhtml
* xml/XPathStep.cpp:
(WebCore::XPath::Step::nodeTestMatches): Only let a null namespace match any for HTML.
2007-02-10 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Adam.
http://bugs.webkit.org/show_bug.cgi?id=12701
REGRESSION: After javascript, onChange not triggered when selecting same option
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::setSelectedIndex): Remember m_lastOnChangeIndex value,
as it can change from setSelected() now.
(WebCore::HTMLSelectElement::notifyOptionSelected): Update m_lastOnChangeIndex.
* manual-tests/select-onchange-after-js.html: Added. Also tests for bug 11402.
2007-02-10 David Carson <dacarson@gmail.com>`
Reviewed by Maciej.
Manual tests for http://bugs.webkit.org/show_bug.cgi?id=12636
Call different Java methods that take a variety of Array parameters
from Javascript, passing a Javascript array.
* manual-tests/liveconnect-applet-array-parameters.html: Added.
* manual-tests/resources/ArrayParameterTestApplet.class: Added.
* manual-tests/resources/ArrayParameterTestApplet.java: Added.
2007-02-10 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12724
Crash when enumerating XPath namespace axis
* xml/XPathStep.cpp:
(WebCore::XPath::Step::nodesInAxis): Namespace axis enumeration was broken in that it crashed, and also in that
it returned attribute nodes instead of XPath namespace ones. Removed it altogether.
2007-02-10 Mitz Pettel <mitz@webkit.org>
Reviewed by Adam.
- fix http://bugs.webkit.org/show_bug.cgi?id=12565
ASSERTION failure on some declarative animations <rdar://problem/4975132>
* ksvg2/svg/SVGAnimationElement.cpp:
(WebCore::parseValues): Changed the string length math to avoid truncating
the last character of each value.
* manual-tests/svg-animation-parseValues.svg: Added.
2007-02-10 Mitz Pettel <mitz@webkit.org>
Reviewed by Adam.
- fix http://bugs.webkit.org/show_bug.cgi?id=11621
REGRESSION (Native slider): slider thumb not updated when the mouse is dragged/released out of range
No automated test case because dumping the render tree updates layer positions anyway.
* manual-tests/slider-thumb-tracking.html: Added.
* rendering/RenderSlider.cpp:
(WebCore::RenderSlider::setCurrentPosition): Added call to updateLayerPosition()
for the thumb's layer.
2007-02-09 Brady Eidson <beidson@apple.com>
Reviewed by Maciej
<rdar://problem/4965133> WebKit sends file:// url referrers
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::create): In SubresourceLoader::create(), we make a copy of the original request
to use for the load. We then call FrameLoader::canLoad() which tells us if we should hide the referer. Before
this fix if it said to hide the referrer, we would simply not apply a new referrer to our copy of the request.
But if the original request already had a referrer, so did our copy. We simply have to clear the referrer from
the copied request.
2007-02-10 Maciej Stachowiak <mjs@apple.com>
Reviewed by me, patch from Ian Eng (cleaned up by me some).
- fixed <rdar://problem/4988091> objects attached to Window not cleared (memory leak)
Test case: fast/dom/Window/window-appendages-cleared.html
* bindings/js/kjs_window.cpp:
(KJS::Window::clearHelperObjectProperties):
(KJS::Window::clear):
* bindings/js/kjs_window.h:
2007-02-09 Brady Eidson <beidson@apple.com>
Reviewed by Tim Hatcher
<rdar://problem/4985497> - Plugs a potential null DocumentLoader deref when
transitioning out of the Bookmarks View
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::recursiveGoToItem): add a null check
2007-02-09 Beth Dakin <bdakin@apple.com>
Rubber-stamped by John . . . and Adam.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected): Missing
break.
2007-02-09 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/4975120>
REGRESSION: double-cursor after switching window away/back (11770)
<http://bugs.webkit.org/show_bug.cgi?id=11328>
Gmail Editor: Caret can simultaneously appear in both the TO: and message body fields
* page/mac/WebCoreFrameBridge.h: Removed two unused methods
left over from the old form control implementation.
2007-02-09 John Sullivan <sullivan@apple.com>
* rendering/bidi.cpp:
(WebCore::bidiNext):
At Darin's suggestion, moved the "next = 0" line from my previous patch to the start of the loop body
2007-02-09 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/4960116>
REGRESSION: Nightly Safari crashes in WebCore::SelectionController::xPosForVerticalArrowNavigation (12416)
* editing/SelectionController.cpp:
(WebCore::SelectionController::xPosForVerticalArrowNavigation):
Null check. VisiblePosition creation can fail if a node that
contains the selection was made invisible after the selection
was made and before this function is called during a selection
modification operation.
2007-02-09 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/4983858>
REGRESSION: In a new mail message, attempting to select a single word causes the selection to extend to the previous line
* editing/TextIterator.cpp:
(WebCore::SimplifiedBackwardsTextIterator::exitNode):
We recently split shouldEmitNewlineForNode into
shouldEmitNewline{Before, After}Node, so this function now
needs an implementation that is different from
SimplifiedBackwardsTextIterator::handleNonTextNode. The
difference is that we must call shouldEmit*BeforeNode
instead of shouldEmit*AfterNode since we are a) exiting
nodes and b) moving backward.
2007-02-09 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/4916541>
Some of the selection isn't preserved during an Indent opreration
* editing/IndentOutdentCommand.cpp:
(WebCore::indexForVisiblePosition): Added.
(WebCore::IndentOutdentCommand::indentRegion): Use rangeLength
and rangeFromLocationAndLength to restore the selection after
the repeated moveParagraph calls necessary to perform indent are
finished.
2007-02-09 John Sullivan <sullivan@apple.com>
Reviewed by Kevin Decker
- fixed <rdar://problem/4960095> REPRODUCIBLE HANG: WebKit freezes when printing as PDF
a certain kind of code (12449)
No test case because I don't know how to make the bug occur without printing.
* rendering/bidi.cpp:
(WebCore::bidiNext):
reset loop's "next" variable after using it; we were setting "current" to the same value
of "next" each subsequent time through the loop, which is not helpful.
2007-02-09 Darin Adler <darin@apple.com>
Reviewed by Adele.
- Add TextEvent to the DOM (based on the proposed DOM level 3)
to be used to fix some international input bugs soon.
At this point, we don't send any text events.
- Remove some obsolete files.
* CMakeLists.txt:
* WebCore.pro:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
Add new files, remove obsolete files.
* DerivedSources.make: Add TextEvent to the Objective-C and JavaScript bindings lists.
* WebCore.exp: Export DOMTextEvent Objective-C wrapper.
* bindings/js/kjs_events.cpp: (KJS::toJS): Added TextEvent to the list of Event subclasses
so we make the right kind of JS wrapper.
* bindings/objc/DOMEvents.mm: (+[DOMEvent _eventWith:]): Same thing, for Objective-C.
* bindings/objc/DOMInternal.h: Added DOMTextEventInternal.h.
* dom/DOMImplementation.cpp: (WebCore::DOMImplementation::hasFeature):
Added "TextEvents", "3.0" to the list of things we'll answer true for
(as specified in the DOM Level 3 documentation).
This isn't so great until we actually send textInput events, but that's coming soon.
* dom/Document.cpp: (WebCore::Document::createEvent): Add "TextEvent" as a way to make
a TextEvent (as specified in the DOM Level 3 documentation).
* dom/Event.h:
* dom/Event.cpp: (WebCore::Event::isTextEvent): Added virtual function to be used
for runtime type checking of Event objects (as for other event types).
* dom/TextEvent.cpp: Added.
* dom/TextEvent.h: Added.
* dom/TextEvent.idl: Added.
* platform/mac/WebCoreWidgetHolder.h: Removed.
* rendering/CounterListItem.h: Removed.
* rendering/CounterResetNode.cpp: Removed.
* rendering/CounterResetNode.h: Removed.
2007-02-09 Anders Carlsson <acarlsson@apple.com>
Reviewed by Geoff.
<rdar://problem/4816376>
REGRESSION: NetNewsWire 3.0 - Crashes in WebDocumentLoaderMac::attachToFrame() (12674)
The bug was that the NNW policy delegate never calls back on the policy listener so we'll try to do a load
while there's a policy decision underway. The extra call to setPolicyDocumentLoader would cause a detached (and deallocated)
WebDataSource to be reattached and thus causing a crash.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::load):
Remove extra call to setPolicyDocumentLoader.
2007-02-09 Beth Dakin <bdakin@apple.com>
Reviewed by Darin.
Fix for <rdar://problem/4674537> REGRESSION: Adobe Acrobat 8 - Text
blinks when mouse is moved, and is invisible otherwise
Acrobat 8 was relying on a WebKit bug that was fixed about a year
ago with r12753. The bug was that we would not reload a page if the
source of an iframe was set to the same value it already was. Now
that we have fixed the bug, Acrobat constantly reloads their EULA,
making it blinky and impossible to read.
No layout test since the fix is to add an Acrobat-specific quirk.
* WebCore.exp:
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::setLocation): If the new url is the
same as the old one and we are honoring the Acrobat quirk, don't do
anything.
* page/Settings.cpp:
(WebCore::Settings::Settings):
(WebCore::Settings::setNeedsAcrobatFrameReloadingQuirk):
* page/Settings.h:
(WebCore::Settings::needsAcrobatFrameReloadingQuirk):
2007-02-09 Brady Eidson <beidson@apple.com>
Rubberstamped by Dave Harrison
Disable the thread-check assertion in WebCore, as well as Webkit
* WebCore.xcodeproj/project.pbxproj:
2007-02-08 Anders Carlsson <acarlsson@apple.com>
Reviewed by Geoff.
No need to pause timeout checks anymore.
* bindings/js/kjs_window.cpp:
(KJS::WindowFunc::callAsFunction):
2007-02-09 John Sullivan <sullivan@apple.com>
Reviewed by Beth
- WebCore part of fix for radar 4939636, problems with context menu items and binaries linked
against WebKit 2.0.
* platform/ContextMenuItem.h:
(WebCore::):
Tweaked comment; bumped enum value for new SPI tags to avoid conflict with pre-3.0 SPI tag values.
2007-02-09 Nicholas Shanks <webkit@nickshanks.com>
Reviewed by Dave Hyatt.
Removed broken recognition of :last-* and :only-* selectors
* css/CSSGrammar.y:
* css/CSSSelector.cpp:
(WebCore::CSSSelector::extractPseudoType):
* css/CSSSelector.h:
(WebCore::CSSSelector::):
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::checkOneSelector):
2007-02-09 Maciej Stachowiak <mjs@apple.com>
Reviewed by Mark.
<rdar://problem/4980176>
* page/Frame.cpp:
(WebCore::Frame::pageDestroyed): Since this frame is getting
disconnected from its page, ensure it is not the focus node.
2007-02-09 Krzysztof <kkowalczyk@gmail.com>
Reviewed by Maciej.
gdklauncher crashes when compiled with NDEBUG defined.
* Projects/gdk/webcore-gdk.bkl:
2007-02-09 Maciej Stachowiak <mjs@apple.com>
Reviewed by Mitz.
<rdar://problem/4971224> REGRESSION: ASSERT in WebCore with Mail (12491)
http://bugs.webkit.org/show_bug.cgi?id=12491
No test case. Not testable since there is no way to do substitute
data loads from layout tests.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::continueAfterContentPolicy): Don't dispatch data load
callback when loading empty data.
2007-02-09 Mark Rowe <mrowe@apple.com>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12705
REGRESSION: Crash with user stylesheet set
Allow the Frame::canLoad check to skipped so that user stylesheets can be loaded in remote documents.
* ChangeLog:
* loader/DocLoader.cpp:
(WebCore::DocLoader::requestCSSStyleSheet): Skip canLoad check if this is a user stylesheet.
(WebCore::DocLoader::requestUserCSSStyleSheet):
(WebCore::DocLoader::requestResource): Allow canLoad check to be skipped.
* loader/DocLoader.h:
* page/Frame.cpp:
(WebCore::UserStyleSheetLoader::UserStyleSheetLoader):
2007-02-08 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Darin.
Linux/gdk build fixes.
* Projects/gdk/webcore-gdk.bkl: Account for file renaming.
* platform/gdk/KeyEventGdk.cpp: Make gdk's tab key recognized as tab so that
keyboard link walking works on gdk.
(WebCore::keyIdentifierForGdkKeyCode):
2007-02-08 Adele Peterson <adele@apple.com>
Reviewed by Brady.
Fix for http://bugs.webkit.org/show_bug.cgi?id=12599
<rdar://problem/4973507> REGRESSION: When replying in Gmail, the caret disappears when you start to type (12599)
When a frame's window was focused, the page didn't get updated about the new frame getting focus.
This was causing handleKeyPress to fail because it kept getting a selection for the wrong frame (which wasn't editable).
Test: fast/frames/iframe-window-focus.html
* page/Frame.cpp:
(WebCore::Frame::focusWindow):
(WebCore::Frame::unfocusWindow):
* page/Frame.h:
* page/mac/FrameMac.mm:
(WebCore::FrameMac::focusWindow):
(WebCore::FrameMac::unfocusWindow):
2007-02-08 Adele Peterson <adele@apple.com>
Reviewed by Brady.
Fix for http://bugs.webkit.org/show_bug.cgi?id=12480
<rdar://problem/4971222> REGRESSION (NativeListBox): Deselecting option causes list to jump to top
Test: fast/forms/listbox-deselect-scroll.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::activeSelectionStartListIndex): Added. Returns the index for the active selection. If there is no active selection,
it returns the first selected index.
(WebCore::HTMLSelectElement::activeSelectionEndListIndex): Added. If there is no active selection, it returns the last selected index.
* html/HTMLSelectElement.h:
* rendering/RenderListBox.cpp: (WebCore::RenderListBox::scrollToRevealSelection): Instead of using the first and last selected indices,
use the active selection indices to determine which item to reveal. This way, when you're selecting with the keyboard, or the mouse,
no unnecessary scrolling will occur if the end of your active selection is already visible.
2007-02-08 Adele Peterson <adele@apple.com>
Reviewed by Hyatt.
Fix for <rdar://problem/4963411> Items of SELECT element are incorrectly highlighted when display:block is set
Test: fast/forms/select-block-background.html
* rendering/RenderListBox.cpp: (WebCore::RenderListBox::paintObject):
Paint the item backgrounds during the PaintPhaseChildBlockBackground or PaintPhaseChildBlockBackgrounds phase.
2007-02-08 Mitz Pettel <mitz@webkit.org>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=11047
REGRESSION: Empty options cause the entire select to collapse
Test: fast/forms/select-empty-option-height.html
- fix http://bugs.webkit.org/show_bug.cgi?id=10783
REGRESSION (r16044): Clicking a popup changes layout around it
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::setText): If the option text is empty, use a RenderBR
as inner text, to ensure that the inner div has line height.
2007-02-08 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
Added a hard counter for SubresourceLoaders because the leaks tool now
ignores them.
* loader/SubresourceLoader.cpp:
(WebCore::):
(WebCore::SubresourceLoaderCounter::~SubresourceLoaderCounter):
(WebCore::SubresourceLoader::SubresourceLoader):
(WebCore::SubresourceLoader::~SubresourceLoader):
* page/Frame.cpp: Removed unnecessary #define
2007-02-08 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
Fixed <rdar://problem/4982374> CSSComputedStyleDeclaration::getPropertyCSSValue
leak reported by buildbot
The leak was a typo: "new" instead of "return new". I also generously
deployed RefPtr in places that were holding ref-counted objects in
bare pointers.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForShadow):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2007-02-08 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Linux/gdk build fixes.
* platform/gdk/EditorClientGdk.cpp: Added. Based on qt version.
(WebCore::EditorClientGdk::shouldDeleteRange):
(WebCore::EditorClientGdk::shouldShowDeleteInterface):
(WebCore::EditorClientGdk::isContinuousSpellCheckingEnabled):
(WebCore::EditorClientGdk::isGrammarCheckingEnabled):
(WebCore::EditorClientGdk::spellCheckerDocumentTag):
(WebCore::EditorClientGdk::shouldBeginEditing):
(WebCore::EditorClientGdk::shouldEndEditing):
(WebCore::EditorClientGdk::shouldInsertText):
(WebCore::EditorClientGdk::shouldApplyStyle):
(WebCore::EditorClientGdk::didBeginEditing):
(WebCore::EditorClientGdk::respondToChangedContents):
(WebCore::EditorClientGdk::didEndEditing):
(WebCore::EditorClientGdk::didWriteSelectionToPasteboard):
(WebCore::EditorClientGdk::didSetSelectionTypesForPasteboard):
(WebCore::EditorClientGdk::selectWordBeforeMenuEvent):
(WebCore::EditorClientGdk::isEditable):
(WebCore::EditorClientGdk::registerCommandForUndo):
(WebCore::EditorClientGdk::registerCommandForRedo):
(WebCore::EditorClientGdk::clearUndoRedoOperations):
(WebCore::EditorClientGdk::canUndo):
(WebCore::EditorClientGdk::canRedo):
(WebCore::EditorClientGdk::undo):
(WebCore::EditorClientGdk::redo):
(WebCore::EditorClientGdk::shouldInsertNode):
(WebCore::EditorClientGdk::pageDestroyed):
(WebCore::EditorClientGdk::smartInsertDeleteEnabled):
(WebCore::EditorClientGdk::toggleContinuousSpellChecking):
(WebCore::EditorClientGdk::toggleGrammarChecking):
(WebCore::EditorClientGdk::handleKeyPress):
(WebCore::EditorClientGdk::EditorClientGdk):
(WebCore::EditorClientGdk::setPage):
* platform/gdk/EditorClientGdk.h: Added. Ditto.
* platform/gdk/FrameGdk.cpp: Add exitAfterLoading and dumpRenderTreeAfterLoading
as small debugging features. Remove FrameGdkClient as no other platform has Frame*Client
anymore. Adjust for new APIs.
(WebCore::FrameGdk::FrameGdk):
(WebCore::FrameGdk::onDidFinishLoad):
(WebCore::FrameGdk::dumpRenderTree):
(WebCore::FrameGdk::keyPress):
(WebCore::FrameGdk::handleGdkEvent):
(WebCore::FrameGdk::focusWindow):
(WebCore::FrameGdk::unfocusWindow):
(WebCore::FrameGdk::getObjectInstanceForWidget):
(WebCore::FrameGdk::getEmbedInstanceForWidget):
(WebCore::FrameGdk::bindingRootObject):
(WebCore::FrameGdk::print):
(WebCore::FrameGdk::getAppletInstanceForWidget):
(WebCore::FrameGdk::issueCutCommand):
(WebCore::FrameGdk::issueCopyCommand):
(WebCore::FrameGdk::issuePasteCommand):
(WebCore::FrameGdk::issueTransposeCommand):
(WebCore::FrameGdk::issuePasteAndMatchStyleCommand):
(WebCore::FrameGdk::markedTextRange):
(WebCore::FrameGdk::shouldChangeSelection):
(WebCore::FrameGdk::respondToChangedSelection):
(WebCore::FrameGdk::mimeTypeForFileName):
* platform/gdk/FrameGdk.h: Ditto.
(WebCore::FrameGdk::setExitAfterLoading):
(WebCore::FrameGdk::exitAfterLoading):
(WebCore::FrameGdk::setDumpRenderTreeAfterLoading):
(WebCore::FrameGdk::dumpRenderTreeAfterLoading):
(WebCore::GdkFrame):
* platform/gdk/TemporaryLinkStubs.cpp: Adjust to new APIs. Small cleanups.
(FrameView::updateBorder):
(Widget::setEnabled):
(Widget::isEnabled):
(Widget::enableFlushDrawing):
(Widget::removeFromParent):
(Widget::paint):
(Widget::setIsSelected):
(Widget::invalidate):
(Widget::invalidateRect):
(PlatformMouseEvent::PlatformMouseEvent):
(WebCore::findWordBoundary):
(ChromeClientGdk::chromeDestroyed):
(ChromeClientGdk::closeWindowSoon):
(ChromeClientGdk::canTakeFocus):
(ChromeClientGdk::takeFocus):
(ChromeClientGdk::canRunBeforeUnloadConfirmPanel):
(ChromeClientGdk::addMessageToConsole):
(ChromeClientGdk::runBeforeUnloadConfirmPanel):
(ChromeClientGdk::runJavaScriptAlert):
(ChromeClientGdk::runJavaScriptConfirm):
(ChromeClientGdk::runJavaScriptPrompt):
(ChromeClientGdk::setStatusbarText):
(ChromeClientGdk::shouldInterruptJavaScript):
(WebCore::inputElementAltText):
(WebCore::resetButtonDefaultLabel):
(WebCore::searchableIndexIntroduction):
(WebCore::fileButtonChooseFileLabel):
(WebCore::fileButtonNoFileSelectedLabel):
(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):
(PlugInInfoStore::createPluginInfoForPluginAtIndex):
(PlugInInfoStore::pluginCount):
(WebCore::PlugInInfoStore::supportsMIMEType):
(WebCore::refreshPlugins):
(SearchPopupMenu::saveRecentSearches):
(SearchPopupMenu::loadRecentSearches):
(SearchPopupMenu::SearchPopupMenu):
(Path::apply):
(PlatformScrollbar::PlatformScrollbar):
(PlatformScrollbar::~PlatformScrollbar):
(PlatformScrollbar::width):
(PlatformScrollbar::height):
(PlatformScrollbar::setEnabled):
(PlatformScrollbar::paint):
(PlatformScrollbar::updateThumbPosition):
(PlatformScrollbar::updateThumbProportion):
(PlatformScrollbar::setRect):
(ResourceHandle::willLoadFromCache):
(ResourceHandle::loadsBlocked):
(ResourceHandle::loadResourceSynchronously):
(PageCache::close):
(Editor::ignoreSpelling):
(Editor::learnSpelling):
(Editor::isSelectionUngrammatical):
(Editor::isSelectionMisspelled):
(Editor::guessesForMisspelledSelection):
(Editor::guessesForUngrammaticalSelection):
(Editor::markMisspellingsAfterTypingToPosition):
(Editor::newGeneralClipboard):
(Pasteboard::generalPasteboard):
(Pasteboard::writeSelection):
(Pasteboard::writeURL):
(Pasteboard::clear):
(Pasteboard::canSmartReplace):
(Pasteboard::documentFragment):
(Pasteboard::plainText):
(Pasteboard::Pasteboard):
(Pasteboard::~Pasteboard):
(ContextMenu::ContextMenu):
(ContextMenu::~ContextMenu):
(ContextMenu::appendItem):
(ContextMenu::setPlatformDescription):
(ContextMenu::platformDescription):
(ContextMenuItem::ContextMenuItem):
(ContextMenuItem::~ContextMenuItem):
(ContextMenuItem::releasePlatformDescription):
(ContextMenuItem::type):
(ContextMenuItem::setType):
(ContextMenuItem::action):
(ContextMenuItem::setAction):
(ContextMenuItem::title):
(ContextMenuItem::setTitle):
(ContextMenuItem::platformSubMenu):
(ContextMenuItem::setSubMenu):
(ContextMenuItem::setChecked):
(ContextMenuItem::setEnabled):
(WebCore::systemBeep):
(WebCore::userIdleTime):
2007-02-08 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Linux/gdk build fixes.
* platform/GlyphPageTreeNode.h: Fix header guard name.
* platform/gdk/ChromeClientGdk.h:
* platform/gdk/CursorGdk.cpp:
(WebCore::verticalTextCursor):
(WebCore::cellCursor):
(WebCore::contextMenuCursor):
(WebCore::noDropCursor):
(WebCore::copyCursor):
(WebCore::progressCursor):
(WebCore::aliasCursor):
* platform/gdk/MouseEventGdk.cpp:
(WebCore::PlatformMouseEvent::PlatformMouseEvent):
* platform/gdk/PageGdk.cpp: Removed. No longer used.
* platform/gdk/RenderThemeGdk.cpp:
(WebCore::RenderThemeGdk::getThemeData):
(WebCore::RenderThemeGdk::setCheckboxSize):
(WebCore::RenderThemeGdk::paintCheckbox):
(WebCore::RenderThemeGdk::setRadioSize):
(WebCore::RenderThemeGdk::paintRadio):
(WebCore::RenderThemeGdk::paintButton):
(WebCore::RenderThemeGdk::adjustTextFieldStyle):
(WebCore::RenderThemeGdk::paintTextField):
(WebCore::RenderThemeGdk::paintTextArea):
(WebCore::RenderThemeGdk::systemFont):
* platform/gdk/RenderThemeGdk.h:
* platform/gdk/ScreenGdk.cpp:
(WebCore::screenDepth):
(WebCore::screenDepthPerComponent):
(WebCore::screenIsMonochrome):
(WebCore::screenRect):
(WebCore::screenAvailableRect):
2007-02-08 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Linux/gdk build fixes for cairo.
* platform/graphics/GraphicsContext.cpp:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::strokeArc):
(WebCore::GraphicsContext::drawFocusRing):
(WebCore::GraphicsContext::setFocusRingClip):
(WebCore::GraphicsContext::clearFocusRingClip):
(WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
(WebCore::GraphicsContext::origin):
(WebCore::GraphicsContext::setPlatformFillColor):
(WebCore::GraphicsContext::setPlatformStrokeColor):
(WebCore::GraphicsContext::setPlatformStrokeThickness):
(WebCore::GraphicsContext::setPlatformStrokeStyle):
(WebCore::GraphicsContext::setPlatformFont):
(WebCore::GraphicsContext::setURLForRect):
(WebCore::GraphicsContext::addRoundedRectClip):
(WebCore::GraphicsContext::addInnerRoundedRectClip):
(WebCore::GraphicsContext::setShadow):
(WebCore::GraphicsContext::clearShadow):
(WebCore::GraphicsContext::beginTransparencyLayer):
(WebCore::GraphicsContext::endTransparencyLayer):
(WebCore::GraphicsContext::clearRect):
(WebCore::GraphicsContext::strokeRect):
(WebCore::GraphicsContext::setLineCap):
(WebCore::GraphicsContext::setLineJoin):
(WebCore::GraphicsContext::setMiterLimit):
(WebCore::GraphicsContext::setAlpha):
(WebCore::toCairoOperator):
(WebCore::GraphicsContext::setCompositeOperation):
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::rotate):
(WebCore::GraphicsContext::scale):
(WebCore::GraphicsContext::clipOut):
(WebCore::GraphicsContext::clipOutEllipseInRect):
(WebCore::GraphicsContext::fillRoundedRect):
2007-02-08 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Linux/gdk build fixes.
* Projects/gdk/webcore-gdk.bkl:
* WebCoreSources.bkl:
* webcore-base.bkl:
2007-02-08 Brady Eidson <beidson@apple.com>
Reviewed by Tim Hatcher
Tweaked the thread violation behavior to be disabled by default, and to provide
an easy breakpoint to set.
The possibilities for the "WebCoreThreadCheck" user defaults key are -
- The value "None" disables thread checking
- The value "Log" causes an NSLog on a violation
- The value "Exception" causes exceptions to be raised on a violation
* platform/Logging.h:
* platform/mac/LoggingMac.mm:
(WebCore::_WebCoreThreadViolationCheck):
(WebCoreReportThreadViolation): In the global namespace, making breakpoints cake!
2007-02-08 Brady Eidson <beidson@apple.com>
Reviewed by Tim Hatcher
<rdar://problem/4983515> Need mechanism to protect against WebKit calls from secondary threads
This initial landing is a conservative move until we can be certain of performance impact.
By writing to the user defaults key @"WebCoreThreadCheck" for the WebKit app you're running -
- The value "None" disables thread checking
- The value "Exception" causes exceptions to be raised on a violation
- The default is to do the check, and NSLog each violation
* bindings/objc/ExceptionHandlers.h: Add a "Is Main Thread" assert macro
* bindings/scripts/CodeGeneratorObjC.pm: Use new mechanism in allocs and deallocs for now
* platform/Logging.h: Added WebCoreThreadViolationCheck macro
* platform/mac/LoggingMac.mm:
(WebCore::_WebCoreThreadViolationCheck): Check for main-threadedness, and do some stuff
2007-02-08 Kevin McCullough <KMcCullough@apple.com>
Reviewed by Maciej, Darin, and Mark.
rdar://problem/4922454
- Prevents remote sites from executing local scripts.
* bindings/objc/DOM.mm: - renamed a function that is now in the base class
(-[DOMElement image]):
(-[DOMElement _imageTIFFRepresentation]):
* dom/XMLTokenizer.cpp: - removed needless asserts
(WebCore::XMLTokenizer::notifyFinished):
* html/HTMLImageLoader.cpp: - renamed a function that is now in the base class
(WebCore::HTMLImageLoader::dispatchLoadEvent):
* html/HTMLTokenizer.cpp: - removed needless asserts
(WebCore::HTMLTokenizer::reset):
(WebCore::HTMLTokenizer::notifyFinished):
* ksvg2/misc/SVGImageLoader.cpp: - renamed a function that is now in the base class
(WebCore::SVGImageLoader::dispatchLoadEvent):
* loader/Cache.cpp: - return early if an error occured
(WebCore::Cache::requestResource):
(WebCore::Cache::remove):
* loader/CachedImage.h: - renamed a function that is now in the base class
(WebCore::CachedImage::canRender):
* loader/CachedResource.h: - renamed a function that is now in the base class
(WebCore::CachedResource::errorOccurred):
* loader/CachedScript.h: - renamed a function that is now in the base class
(WebCore::CachedScript::schedule):
* loader/DocLoader.cpp: - The heart of the fix, prevents resources from being created or retrieved from the cache if a remote site is requesting the local resource.
(WebCore::DocLoader::requestResource):
(WebCore::DocLoader::setLoadInProgress):
* page/EventHandler.cpp: - renamed a function that is now in the base class
(WebCore::selectCursor):
* rendering/HitTestResult.cpp: - renamed a function that is now in the base class
(WebCore::HitTestResult::image):
* rendering/RenderImage.cpp: - renamed a function that is now in the base class
(WebCore::RenderImage::setCachedImage):
(WebCore::RenderImage::imageChanged):
(WebCore::RenderImage::paint):
(WebCore::RenderImage::layout):
(WebCore::RenderImage::calcAspectRatioWidth):
(WebCore::RenderImage::calcAspectRatioHeight):
* rendering/RenderImage.h: - renamed a function that is now in the base class
(WebCore::RenderImage::errorOccurred):
* rendering/RenderListItem.cpp: - renamed a function that is now in the base class
(WebCore::RenderListItem::setStyle):
* rendering/RenderListMarker.cpp: - renamed a function that is now in the base class
(WebCore::RenderListMarker::isImage):
2007-02-07 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Maciej.
Add updateGeometry() to gdk's ScrollView. Needed to fix resizing of the window
in gdk.
* platform/ScrollView.h:
* platform/gdk/ScrollViewGdk.cpp:
(WebCore::ScrollView::updateGeometry):
(WebCore::ScrollView::setDrawable):
2007-02-07 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Maciej.
Linux/gdk build fixes.
* platform/ContextMenuItem.h:
* platform/PlatformMenuDescription.h:
* platform/gdk/PopupMenuGdk.cpp: Added. Renamed from RenderPopupMenuGdk.cpp for
consistency with other platforms.
(WebCore::PopupMenu::PopupMenu):
(WebCore::PopupMenu::~PopupMenu):
* platform/gdk/RenderPopupMenuGdk.cpp: Removed.
* platform/gdk/RenderPopupMenuGdk.h: Removed.
2007-02-07 Mitz Pettel <mitz@webkit.org>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=12608
Incorrect min. width calculation of a series of floats with clear:both and white-space:nowrap
Test: fast/block/float/nowrap-clear-min-width.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::calcInlineMinMaxWidth):
2007-02-07 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=10522
REGRESSION: Incomplete repaint after table relayout that decreases height
Test: fast/repaint/intermediate-layout-position.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock): Adjust the old bounds by the layout delta,
to get the block's absolute bounds as they were before its ancestors moved it
during layout.
(WebCore::RenderBlock::collapseMargins): Update the layout delta for the child
when moving it.
(WebCore::RenderBlock::clearFloatsIfNeeded): Ditto.
(WebCore::RenderBlock::determineHorizontalPosition): Ditto.
(WebCore::RenderBlock::layoutBlockChildren): Ditto.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock): Adjust the old bounds by the current
layout delta.
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::layout): Ditto.
* rendering/RenderImage.cpp:
(WebCore::RenderImage::layout): Ditto.
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout): Ditto.
* rendering/RenderView.h:
(WebCore::RenderView::layoutDelta): Added. Keeps track of the offset between
the position of the object currently being laid out and its position at the
end of the last layout.
(WebCore::RenderView::addLayoutDelta): Added.
2007-02-07 Christopher Brichford <chrisb@adobe.com>
Reviewed by Brady.
http://bugs.webkit.org/show_bug.cgi?id=6286
Very large (~500MB) images cause reproducible Safari crash
* loader/CachedImage.cpp:
(WebCore::CachedImage::bufferData): Detect failure to create a
large Vector<> and call error() when that happens.
2007-02-07 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=5399
no-repeat on negatively positioned background images are ignored
Test: fast/backgrounds/repeat/negative-offset-repeat.html
- fix http://bugs.webkit.org/show_bug.cgi?id=5821
Changing background of <col> doesn't repaint the column
Test: fast/repaint/table-col-background.html
- fix http://bugs.webkit.org/show_bug.cgi?id=11720
REGRESSION: large amounts of CPU consumed viewing this site
* rendering/RenderBox.cpp:
(WebCore::RenderBox::imageChanged): Added. Finds the border and/or background
layer(s) that use the image and invalidates only the rect in which the image
actually paints. There are two special cases in this function: 1) for the body
element, the background is propagated to the root; 2) inline flows do a full
repaint.
(WebCore::RenderBox::calculateBackgroundImageGeometry): Added. Factored out,
simplified and corrected the calculation of the rectangle into which the background
image paints, the tile size and the pattern phase.
(WebCore::RenderBox::paintBackgroundExtended):
* rendering/RenderBox.h:
* rendering/RenderObject.cpp:
* rendering/RenderObject.h:
(WebCore::RenderObject::imageChanged): Moved the implementation to RenderBox.
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::getAbsoluteRepaintRect): Overridden to return the
table's repaint rect.
(WebCore::RenderTableCol::imageChanged): Overridden to do a full repaint, which
currently repaints the entire table.
* rendering/RenderTableCol.h:
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::imageChanged): Overridden to do a full repaint
of the row, since the backgrounds are painted by the cells.
* rendering/RenderTableRow.h:
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::imageChanged): Overridden to do a full
repaint of the section, since the backgrounds are painted by the cells.
* rendering/RenderTableSection.h:
2007-02-07 Anders Carlsson <acarlsson@apple.com>
Reviewed by Maciej.
Move shouldInterruptJavaScript to the Chrome.
* bindings/js/kjs_binding.cpp:
(KJS::ScriptInterpreter::shouldInterruptScript):
* page/Chrome.cpp:
(WebCore::Chrome::shouldInterruptJavaScript):
* page/Chrome.h:
* page/ChromeClient.h:
* page/Frame.h:
* page/mac/FrameMac.h:
* page/mac/FrameMac.mm:
* page/mac/WebCoreFrameBridge.h:
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyChromeClient::shouldInterruptJavaScript):
2007-02-07 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- <rdar://problem/4826861> WebKit tests show memory leaks in NSHTMLReader, caused by method named "hash"
* bindings/scripts/CodeGeneratorObjC.pm: Added a list of method names we should never use, since they
are in base classes WebScriptObject and NSObject. Luckily, only "hash" is causing trouble. Added
"hash" to the existing special case for "id". Now "hash" is "hashName" just as "id" is "idName".
2007-02-07 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Linux/gdk build fixes for graphics-related stuff.
* platform/graphics/cairo/ImageCairo.cpp:
(WebCore::BitmapImage::checkForSolidColor):
* platform/graphics/cairo/ImageSourceCairo.cpp:
(WebCore::ImageSource::setData):
* platform/graphics/gdk/ImageGdk.cpp:
(WebCore::BitmapImage::initPlatformData):
(WebCore::BitmapImage::invalidatePlatformData):
(WebCore::Image::loadPlatformResource):
(WebCore::Image::drawPattern):
2007-02-07 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Maciej.
Linux/gdk build fixes related to networking.
* platform/network/ResourceHandleInternal.h: Add accessor for m_client.
(WebCore::ResourceHandleInternal::client):
* platform/network/gdk/ResourceHandleCurl.cpp: Add missing functions and
massage for changed APIs.
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::cancel):
(WebCore::ResourceHandle::bufferedData):
(WebCore::ResourceHandle::supportsBufferedData):
(WebCore::ResourceHandle::setDefersLoading):
* platform/network/gdk/ResourceHandleManager.cpp: Rename get() to
sharedInstance(). Massaged for changed APIs.
(WebCore::ResourceHandleManager::sharedInstance):
(WebCore::writeCallback):
(WebCore::ResourceHandleManager::downloadTimerCallback):
(WebCore::ResourceHandleManager::remove):
* platform/network/gdk/ResourceHandleManager.h: Ditto.
2007-02-07 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Maciej.
Mismatched type of alloc/free function crashes gdk build.
* platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::JPEGImageReader::close):
2007-02-07 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Linux/gdk build fixes - add file based on qt implementation.
* platform/DragData.h:
* platform/gdk/DragDataGdk.cpp: Added.
2007-02-07 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Linux/gdk build fixes - add new files based on qt implementation.
* page/gdk/DragControllerGdk.cpp: Added.
(WebCore::DragController::dragOperation):
* page/gdk/EventHandlerGdk.cpp: Added.
(WebCore::EventHandler::focusDocumentView):
(WebCore::EventHandler::passWidgetMouseDownEventToWidget):
(WebCore::EventHandler::handleDrag):
(WebCore::EventHandler::eventActivatedView):
2007-02-07 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Linux/gdk build fixes - add new files based on Qt implementation.
* loader/gdk/DocumentLoaderGdk.cpp: Added.
(WebCore::DocumentLoader::getResponseModifiedHeader):
* loader/gdk/FrameLoaderClientGdk.cpp: Added.
(WebCore::FrameLoaderClientGdk::FrameLoaderClientGdk):
(WebCore::FrameLoaderClientGdk::frame):
(WebCore::FrameLoaderClientGdk::userAgent):
(WebCore::FrameLoaderClientGdk::createDocumentLoader):
(WebCore::FrameLoaderClientGdk::dispatchWillSubmitForm):
(WebCore::FrameLoaderClientGdk::committedLoad):
(WebCore::FrameLoaderClientGdk::dispatchDidReceiveAuthenticationChallenge):
(WebCore::FrameLoaderClientGdk::dispatchDidCancelAuthenticationChallenge):
(WebCore::FrameLoaderClientGdk::dispatchWillSendRequest):
(WebCore::FrameLoaderClientGdk::assignIdentifierToInitialRequest):
(WebCore::FrameLoaderClientGdk::postProgressStartedNotification):
(WebCore::FrameLoaderClientGdk::postProgressEstimateChangedNotification):
(WebCore::FrameLoaderClientGdk::postProgressFinishedNotification):
(WebCore::FrameLoaderClientGdk::frameLoaderDestroyed):
(WebCore::FrameLoaderClientGdk::dispatchDidReceiveResponse):
(WebCore::FrameLoaderClientGdk::dispatchDecidePolicyForMIMEType):
(WebCore::FrameLoaderClientGdk::dispatchDecidePolicyForNewWindowAction):
(WebCore::FrameLoaderClientGdk::dispatchDecidePolicyForNavigationAction):
(WebCore::FrameLoaderClientGdk::createPlugin):
(WebCore::FrameLoaderClientGdk::createFrame):
(WebCore::FrameLoaderClientGdk::redirectDataToPlugin):
(WebCore::FrameLoaderClientGdk::createJavaAppletWidget):
(WebCore::FrameLoaderClientGdk::objectContentType):
(WebCore::FrameLoaderClientGdk::overrideMediaType):
(WebCore::FrameLoaderClientGdk::windowObjectCleared):
(WebCore::FrameLoaderClientGdk::setMainFrameDocumentReady):
(WebCore::FrameLoaderClientGdk::hasWebView):
(WebCore::FrameLoaderClientGdk::hasFrameView):
(WebCore::FrameLoaderClientGdk::dispatchDidFinishLoad):
(WebCore::FrameLoaderClientGdk::frameLoadCompleted):
(WebCore::FrameLoaderClientGdk::privateBrowsingEnabled):
(WebCore::FrameLoaderClientGdk::makeDocumentView):
(WebCore::FrameLoaderClientGdk::makeRepresentation):
(WebCore::FrameLoaderClientGdk::forceLayout):
(WebCore::FrameLoaderClientGdk::forceLayoutForNonHTML):
(WebCore::FrameLoaderClientGdk::setCopiesOnScroll):
(WebCore::FrameLoaderClientGdk::detachedFromParent1):
(WebCore::FrameLoaderClientGdk::detachedFromParent2):
(WebCore::FrameLoaderClientGdk::detachedFromParent3):
(WebCore::FrameLoaderClientGdk::detachedFromParent4):
(WebCore::FrameLoaderClientGdk::loadedFromPageCache):
(WebCore::FrameLoaderClientGdk::dispatchDidHandleOnloadEvents):
(WebCore::FrameLoaderClientGdk::dispatchDidReceiveServerRedirectForProvisionalLoad):
(WebCore::FrameLoaderClientGdk::dispatchDidCancelClientRedirect):
(WebCore::FrameLoaderClientGdk::dispatchWillPerformClientRedirect):
(WebCore::FrameLoaderClientGdk::dispatchDidChangeLocationWithinPage):
(WebCore::FrameLoaderClientGdk::dispatchWillClose):
(WebCore::FrameLoaderClientGdk::dispatchDidReceiveIcon):
(WebCore::FrameLoaderClientGdk::dispatchDidStartProvisionalLoad):
(WebCore::FrameLoaderClientGdk::dispatchDidReceiveTitle):
(WebCore::FrameLoaderClientGdk::dispatchDidCommitLoad):
(WebCore::FrameLoaderClientGdk::dispatchDidFinishDocumentLoad):
(WebCore::FrameLoaderClientGdk::dispatchDidFirstLayout):
(WebCore::FrameLoaderClientGdk::dispatchShow):
(WebCore::FrameLoaderClientGdk::cancelPolicyCheck):
(WebCore::FrameLoaderClientGdk::dispatchDidLoadMainResource):
(WebCore::FrameLoaderClientGdk::revertToProvisionalState):
(WebCore::FrameLoaderClientGdk::clearUnarchivingState):
(WebCore::FrameLoaderClientGdk::willChangeTitle):
(WebCore::FrameLoaderClientGdk::didChangeTitle):
(WebCore::FrameLoaderClientGdk::finishedLoading):
(WebCore::FrameLoaderClientGdk::finalSetupForReplace):
(WebCore::FrameLoaderClientGdk::setDefersLoading):
(WebCore::FrameLoaderClientGdk::isArchiveLoadPending):
(WebCore::FrameLoaderClientGdk::cancelPendingArchiveLoad):
(WebCore::FrameLoaderClientGdk::clearArchivedResources):
(WebCore::FrameLoaderClientGdk::canHandleRequest):
(WebCore::FrameLoaderClientGdk::canShowMIMEType):
(WebCore::FrameLoaderClientGdk::representationExistsForURLScheme):
(WebCore::FrameLoaderClientGdk::generatedMIMETypeForURLScheme):
(WebCore::FrameLoaderClientGdk::restoreScrollPositionAndViewState):
(WebCore::FrameLoaderClientGdk::provisionalLoadStarted):
(WebCore::FrameLoaderClientGdk::didFinishLoad):
(WebCore::FrameLoaderClientGdk::prepareForDataSourceReplacement):
(WebCore::FrameLoaderClientGdk::setTitle):
(WebCore::FrameLoaderClientGdk::setDocumentViewFromPageCache):
(WebCore::FrameLoaderClientGdk::dispatchDidReceiveContentLength):
(WebCore::FrameLoaderClientGdk::dispatchDidFinishLoading):
(WebCore::FrameLoaderClientGdk::dispatchDidFailLoading):
(WebCore::FrameLoaderClientGdk::dispatchDidLoadResourceFromMemoryCache):
(WebCore::FrameLoaderClientGdk::dispatchDidFailProvisionalLoad):
(WebCore::FrameLoaderClientGdk::dispatchDidFailLoad):
(WebCore::FrameLoaderClientGdk::download):
(WebCore::FrameLoaderClientGdk::cancelledError):
(WebCore::FrameLoaderClientGdk::cannotShowURLError):
(WebCore::FrameLoaderClientGdk::interruptForPolicyChangeError):
(WebCore::FrameLoaderClientGdk::cannotShowMIMETypeError):
(WebCore::FrameLoaderClientGdk::fileDoesNotExistError):
(WebCore::FrameLoaderClientGdk::shouldFallBack):
(WebCore::FrameLoaderClientGdk::willUseArchive):
(WebCore::FrameLoaderClientGdk::saveScrollPositionAndViewStateToItem):
(WebCore::FrameLoaderClientGdk::saveDocumentViewToPageCache):
(WebCore::FrameLoaderClientGdk::canCachePage):
(WebCore::FrameLoaderClientGdk::dispatchCreatePage):
(WebCore::FrameLoaderClientGdk::dispatchUnableToImplementPolicy):
(WebCore::FrameLoaderClientGdk::setMainDocumentError):
(WebCore::FrameLoaderClientGdk::startDownload):
(WebCore::FrameLoaderClientGdk::updateGlobalHistoryForStandardLoad):
(WebCore::FrameLoaderClientGdk::updateGlobalHistoryForReload):
(WebCore::FrameLoaderClientGdk::shouldGoToHistoryItem):
* loader/gdk/FrameLoaderClientGdk.h: Added.
(WebCore::FrameLoaderClientGdk::~FrameLoaderClientGdk):
(WebCore::FrameLoaderClientGdk::setFrame):
2007-02-07 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Maciej.
Linux/gdk fixes related to fonts.
* platform/gdk/FontDataGdk.cpp:
(WebCore::FontData::platformInit): remove a work-around for older cairo versions
since Ubuntu 6.10 ships with cairo that is new enough
* platform/gdk/FontGdk.cpp:
(WebCore::Font::drawGlyphs):
* platform/gdk/FontPlatformDataGdk.cpp: Remove unused variables.
(WebCore::FontPlatformData::FontPlatformData):
2007-02-07 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12582
REGRESSION: Unclosed <title> makes the window display garbage or empty title
Automatic testing is not possible, and manual testing probably doesn't make sense.
* loader/DocumentLoader.cpp:
(WebCore::canonicalizedTitle): Bail out early if the passed in string is all whitespace.
2007-02-06 Anders Carlsson <acarlsson@apple.com>
Reviewed by John Sullivan.
<rdar://problem/4977952>
REGRESSION: Yahoo Messenger IM is totally blank
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::checkContentPolicy):
Don't ask the policy delegate for content that has valid substitute data.
(WebCore::FrameLoader::checkNavigationPolicy):
If the loader has substitute data but doesn't have an unreachable URL, let the policy
delegate decide what to do.
2007-02-07 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
Restoring some of the functionality I removed in r19445. It's insufficient for
each page to cancel keepAlive only for its child frames, because a frame
can be removed from the page before we get a chance to cancel its keepAlive.
So, the page destructor has to cancel keepAlive for all frames. This is safe
because we prohibit closing a WebView while JavaScript is executing.
* page/Frame.cpp:
(WebCore::keepAliveSet):
(WebCore::Frame::keepAlive):
(WebCore::Frame::cancelAllKeepAlive):
(WebCore::Frame::lifeSupportTimerFired):
* page/Frame.h:
* page/Page.cpp:
(WebCore::Page::~Page):
2007-02-07 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12603
A crash when trying to use XPath functions normalize-space(), string-length() and number()
Test: fast/xpath/implicit-node-args.html
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunNumber::doEvaluate): Implemented zero parameter case.
(WebCore::XPath::FunctionMapping::): Corrected descriptions of these functions, as they
do allow zero parameters.
(WebCore::XPath::createFunction): Combined the two failure cases to ensure that this
function never returns 0.
2007-02-07 Zack Rusin <zrusin@trolltech.com>
Fix compilation
* page/qt/EventHandlerQt.cpp:
(WebCore::EventHandler::eventActivatedView):
2007-02-06 Alice Liu <alice.liu@apple.com>
Reviewed by Maciej.
Added editing command functions for scrolling by page and moving the caret
* editing/Editor.cpp:
(WebCore::execMoveUpByPageAndModifyCaret):
(WebCore::execMoveDownByPageAndModifyCaret):
(WebCore::CommandEntry::):
2007-02-06 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/4922367>
WebView selectLine: followed by deleteBackward: deletes TABLE element of following line
* editing/AppendNodeCommand.cpp:
(WebCore::AppendNodeCommand::doApply): Don't ASSERT when manipulating
non-editable content that is embedded in editable content. We'll do
this kind of manipulation when removing redundant style spans after
pasting content that has non-editable pieces.
* editing/InsertNodeBeforeCommand.cpp:
(WebCore::InsertNodeBeforeCommand::doApply): Ditto.
* editing/htmlediting.cpp:
(WebCore::isContentEditable): Added, wrapper for Node::isContentEditable
(WebCore::rangeCompliantEquivalent): Although legal,
[{table, select, etc.}, {0, numChildren}] don't refer to children of the element,
but positions before and after the element. So, rangeCompliantEquivalent is
really responsible for converting illegal positions *and* legal positions
that have a special meaning internally.
* editing/htmlediting.h:
2007-02-06 Anders Carlsson <acarlsson@apple.com>
Reviewed by Brady.
* platform/String.cpp:
(WebCore::String::ascii):
Fix dumping null Strings.
2007-02-06 Anders Carlsson <acarlsson@apple.com>
Reviewed by Geoff.
Fix <rdar://problem/4979484>
* css/CSSPrimitiveValue.cpp:
(WebCore::isCSSTokenizerIdentifier):
Do the range check before calling isalpha or isalnum.
2007-02-06 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
Fixed Frame/RenderObject/Node leak report seen while running SVG image tests.
(We'll need this fix if we ever re-enable SVG image.)
The extra reference belonged to the Frame keepAlive timer (so this was
not a "real" leak, in the end). The Page destructor has code to cancel all
Frame keepAlive timers upon the destruction of the last Page, but an SVG
image puts a Page within a Page, making this condition impossible to meet.
The fix here is to have each individual page cancel the keepAlive timers
belonging to its child frames.
* page/Frame.cpp: Changed the FrameCounter to use WTF logging.
(WebCore::): Nixed the lifeSupportSet, since it's no longer used.
(WebCore::Frame::cancelKeepAlive): Renamed from "endLifeSupport" to match
the name "keepAlive".
* page/Page.cpp:
(WebCore::Page::~Page): Made each page cancel its child keepAlive timers
and clear its mainFrame, since we may never reach the condition of having 0 Pages.
2007-02-06 Adam Roben <aroben@apple.com>
Rubberstamped by Brady.
Revert the log channel constants to their old values for all you pretty
people out there who were using the old ones. I also renamed
LogResources to LogPlatformLeaks to be a bit more specific.
* platform/Logging.cpp:
(WebCore::):
* platform/Logging.h:
2007-02-05 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/4959067>
Bullets get erased or moved down to another line
<rdar://problem/4912529>
Seed: Bulleted list in Note in Mail.app does not work with Japanese input mode
Do not expand the selection to include fully selected
special elements when insering text over a selection.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::deleteSelection): Pass
expandForSpecialElements through to DeleteSelectionCommand's constructor.
(WebCore::CompositeEditCommand::moveParagraphs): Use the
convenience function.
* editing/CompositeEditCommand.h:
* editing/DeleteSelectionCommand.h:
* editing/InsertTextCommand.cpp:
(WebCore::InsertTextCommand::input): Do not expand the selection
to be deleted for special elements.
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::doApply): Added a FIXME about
when we should expand the selection.
2007-02-06 Geoffrey Garen <ggaren@apple.com>
Reviewed by Anders Carlsson.
Disabled support for SVG image because it crashes all the time.
* loader/CachedImage.cpp:
(WebCore::CachedImage::createImage):
2007-02-06 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12518
Betsson.com crashes browser
Test: fast/layers/generated-layer-scrollbar-crash.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::createScrollbar): Changed element()->document() to
document() to work with anonymous objects.
(WebCore::RenderLayer::updateOverflowStatus): Ditto.
2007-02-06 Eric Seidel <eric@webkit.org>
Reviewed by mitz.
WebKit ignores floating point values for stroke-miterlimit
http://bugs.webkit.org/show_bug.cgi?id=12577
Test: svg/W3C-SVG-1.1/painting-stroke-07-t.svg
* ksvg2/css/SVGCSSParser.cpp:
(WebCore::CSSParser::parseSVGValue):
* ksvg2/css/SVGCSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applySVGProperty):
* ksvg2/css/SVGRenderStyle.h:
* ksvg2/css/SVGRenderStyleDefs.h:
(WebCore::StyleStrokeData::operator!=):
2007-02-06 Adam Roben <aroben@apple.com>
Reviewed by Ada and Oliver.
Adding a new LogResources channel for tracking platform resource usage.
* platform/Logging.cpp: Added new channel, cleaned up constants to be more readable.
* platform/Logging.h: Declare new channel.
2007-02-06 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Geoff.
http://bugs.webkit.org/show_bug.cgi?id=12619
Non-abbreviated XPaths don't work
Test: fast/xpath/ancestor-axis.html
* xml/XPathParser.cpp:
(WebCore::XPath::Parser::lex): Fix axis name parsing to actually work.
* xml/XPathStep.cpp:
(WebCore::XPath::Step::nodeTestMatches): Fix "*" node test to actually work.
2007-02-06 Mark Rowe <mrowe@apple.com>
Roll out incomplete support for font-stretch (r19350) at Dave Hyatt's request.
See http://bugs.webkit.org/show_bug.cgi?id=12530#c9 for more info.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/cssparser.cpp:
(WebCore::CSSParser::parseValue):
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::applyDeclarations):
(WebCore::CSSStyleSelector::applyProperty):
* platform/FontCache.cpp:
(WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
(WebCore::FontPlatformDataCacheKey::operator==):
(WebCore::computeHash):
(WebCore::FontPlatformDataCacheKeyTraits::deletedValue):
(WebCore::FontPlatformDataCacheKeyTraits::emptyValue):
(WebCore::FontCache::getCachedFontPlatformData):
* platform/FontDescription.h:
(WebCore::FontDescription::FontDescription):
(WebCore::FontDescription::weight):
(WebCore::FontDescription::setWeight):
(WebCore::FontDescription::operator==):
* platform/mac/FontCacheMac.mm:
(WebCore::FontCache::createFontPlatformData):
* platform/mac/WebFontCache.mm:
(acceptableChoice):
(betterChoice):
(+[WebFontCache fontWithFamily:traits:size:]):
2007-02-05 Adele Peterson <adele@apple.com>
Reviewed by Darin.
A few small updates to my bidi patch.
* rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::paintObject): Moved the declaration of the CharacterBuffer outside the if statement since we use its data outside that scope.
* rendering/RenderListBox.cpp: (WebCore::RenderListBox::paintItemForeground): ditto.
* rendering/bidi.cpp: (WebCore::RenderBlock::bidiReorderCharacters): Used a PassRefPtr for the BidiContext.
2007-02-05 Adele Peterson <adele@apple.com>
Reviewed by Adam.
Fix for assertion failure in fast/events/objc-keyboard-event-creation.html
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::selectionStart): Check that the selection offsets are not equal to -1 (which is means the selection has never been set) instead of checking for >= 0.
(WebCore::HTMLInputElement::selectionEnd): ditto.
(WebCore::HTMLInputElement::setValue): ditto.
(WebCore::HTMLInputElement::selection): Return an empty selection if the input is not a text field or if no selection has ever been set in the text field.
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::selectionStart): Check that the selection offsets are not equal to -1.
(WebCore::HTMLTextAreaElement::selectionEnd): ditto.
(WebCore::HTMLTextAreaElement::setValue): ditto.
(WebCore::HTMLTextAreaElement::selection): Return an empty selection if no selection has ever been set in the textarea.
* dom/Position.cpp: Added FIXMEs that we should catch the negative offset earlier.
(WebCore::Position::previous):
(WebCore::Position::next):
2007-02-05 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/4947387>
REGRESSION Shift Command Left should only select to the beginning of the line
* editing/Editor.cpp:
(WebCore::CommandEntry::): Never copy/paste code.
2007-02-05 Darin Adler <darin@apple.com>
Reviewed by John Sullivan.
- fix http://bugs.webkit.org/show_bug.cgi?id=11535
<rdar://problem/4946959> REGRESSION: onclick="this.select();" not working on new forms (11535)
Test: fast/forms/input-select-on-click.html
* page/EventHandler.h: Added m_mouseDownWasSingleClickInSelection boolean.
Organized other booleans a bit more logically.
* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler): Rearrange order to match EventHandler.h, add
m_mouseDownWasSingleClickInSelection initialization.
(WebCore::EventHandler::handleMousePressEventSingleClick): Set m_mouseDownWasSingleClickInSelection
to true in the appropriate special case.
(WebCore::EventHandler::handleMousePressEvent): Set m_mouseDownWasSingleClickInSelection to false.
(WebCore::EventHandler::handleMouseReleaseEvent): Change code to clear selection or set to caret to
only fire if m_mouseDownWasSingleClickInSelection was true rather than firing for any
m_mouseDownMayStartSelect case.
2007-02-05 George Staikos <staikos@kde.org>
Reviewed by Maciej.
Send HTTP cookies.
* platform/network/qt/ResourceHandleManagerQt.cpp:
(WebCore::RequestQt::RequestQt):
2007-02-05 Adele Peterson <adele@apple.com>
Reviewed by Mitz and Anders.
Fix for http://bugs.webkit.org/show_bug.cgi?id=11811
<rdar://problem/4947184> REGRESSION (r11783): Hebrew text in list boxes is reversed
http://bugs.webkit.org/show_bug.cgi?id=11812
<rdar://problem/4960269> REGRESSION (Native file upload): Hebrew filenames are reversed
Tests:
fast/text/international/bidi-listbox.html
fast/text/international/bidi-listbox-atsui.html
* rendering/RenderBlock.h: Added static bidiReorderCharacters that will run the bidi algorithm on a character buffer.
* rendering/bidi.cpp:
(WebCore::RenderBlock::bidiReorderCharacters): Added. Creates an anonymous RenderBlock and RenderText to feed into bidiReorderLines.
(WebCore::RenderBlock::constructLine): Uses the new convenience methods on BidiRun.
* rendering/bidi.h:
(WebCore::BidiRun::reversed): Added convenience method.
(WebCore::BidiRun::dirOverride): ditto.
* rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::paintObject): Creates a buffer and calls bidiReorderCharacters
to get a correctly ordered character buffer for drawText.
* rendering/RenderListBox.cpp: (WebCore::RenderListBox::paintItemForeground): ditto.
2007-02-05 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12590
REGRESSION: Text selection is weird in textareas in Trac wiki editing pages
Test: fast/repaint/selection-gap-overflow-scroll.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::selectionGapRects): Adjust for overflow scroll.
2007-02-05 Mitz Pettel <mitz@webkit.org>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=11916
REGRESSION (SearchField): RTL search fields are mixed up
Test: fast/forms/search-rtl.html
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::createInnerBlockStyle): Always make the inner
block LTR so that the results button will be on the left and the cancel
button will be on the right.
(WebCore::RenderTextControl::createInnerTextStyle): Inherit the direction
property directly from the control so that it won't be masked by the inner
block's LTR override.
(WebCore::RenderTextControl::nodeAtPoint): Removed code that swapped the
results and cancel buttons for RTL.
(WebCore::RenderTextControl::forwardEvent): Ditto.
(WebCore::RenderTextControl::clientPaddingLeft): Ditto.
(WebCore::RenderTextControl::clientPaddingRight): Ditto.
2007-02-05 Mitz Pettel <mitz@webkit.org>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=12618
REGRESSION (SearchField): Dragging across the text and releasing over the clear button clears the field
Test: fast/forms/search-cancel-button-mouseup.html
Made the cancel button capturing.
* html/HTMLTextFieldInnerElement.cpp:
(WebCore::HTMLSearchFieldCancelButtonElement::HTMLSearchFieldCancelButtonElement):
(WebCore::HTMLSearchFieldCancelButtonElement::defaultEventHandler):
* html/HTMLTextFieldInnerElement.h:
2007-02-05 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=6626
Arabic & Farsi rendered with no shaping (all glyphs separate, unreadable!)
No test possible since Mac OS X only ships with fonts that contain shaping
information.
* icu/unicode/ushape.h: Added from
http://www.opensource.apple.com/darwinsource/10.4.8.ppc/ICU-6.2.9/icuSources/common/unicode/
* platform/FontData.h:
(WebCore::FontData::shapesArabic): Added. Returns whether the font contains
shaping information for Arabic or not.
* platform/mac/FontDataMac.mm:
(WebCore::FontData::platformInit):
(WebCore::FontData::checkShapesArabic): Added. Checks whether the font contains
a glyph metamorphosis table. The heuristic is that if a font contains Arabic glyphs
and a metamorphosis table, then it includes shaping information for Arabic.
* platform/mac/FontMac.mm:
(WebCore::overrideLayoutOperation): Changed to use the same character buffer passed
to ATSUI instead of the original character buffer and to give zero-width spaces zero
width.
(WebCore::isArabicLamWithAlefLigature): Added. Checks if the character is one
of the Arabic presentation forms of Lam with Alef.
(WebCore::shapeArabic): Added. This is a wrapper around the ICU Arabic shaping routine
that replaces each space following a Lam with Alef ligature resulting from shaping
with a zero-width space.
(WebCore::ATSULayoutParameters::initialize): Changed to allocate the auxiliary buffer
lazily for mirroring and Arabic shaping. Added a call to shapeArabic() when required.
2007-02-05 Eric Seidel <eric@webkit.org>
No review, build fix only.
* ksvg2/svg/SVGStyleElement.cpp: add forgotten header.
2007-02-05 Eric Seidel <eric@webkit.org>
Reviewed by bdash.
Fix style name testcase which I broke in my last commit.
* ksvg2/svg/SVGStyleElement.cpp:
(WebCore::SVGStyleElement::xmlspace):
(WebCore::SVGStyleElement::title): override Element::title()
(WebCore::SVGStyleElement::parseMappedAttribute):
* ksvg2/svg/SVGStyleElement.h:
2007-02-04 Eric Seidel <eric@webkit.org>
Reviewed by darin.
Fix hand cursor on link hover for SVG
Fix status text on link hover for SVG
Fix tooltips on link hover for SVG
Fix link dragging for SVG
http://bugs.webkit.org/show_bug.cgi?id=12575
Test: added manual-tests/svg-links.svg
* dom/Document.cpp:
(WebCore::Document::prepareMouseEvent):
* dom/Element.cpp:
(WebCore::Element::title):
* dom/Element.h:
* html/HTMLElement.cpp:
(WebCore::HTMLElement::setId):
(WebCore::HTMLElement::title):
(WebCore::HTMLElement::setTitle):
(WebCore::HTMLElement::setLang):
* html/HTMLElement.h:
* ksvg2/svg/SVGAElement.cpp:
(WebCore::SVGAElement::title):
(WebCore::SVGAElement::parseMappedAttribute):
(WebCore::SVGAElement::defaultEventHandler):
* ksvg2/svg/SVGAElement.h:
* ksvg2/svg/SVGTitleElement.cpp:
* ksvg2/svg/SVGTitleElement.h:
* manual-tests/svg-links.svg: Added.
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::title):
(WebCore::HitTestResult::absoluteImageURL):
(WebCore::HitTestResult::absoluteLinkURL):
(WebCore::HitTestResult::isLiveLink):
(WebCore::HitTestResult::titleDisplayString):
2007-02-04 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12602
XPath functions string(), normalize-space() and string-length() don't work
without arguments
Test: fast/xpath/implicit-node-args.html
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunString::doEvaluate):
(WebCore::XPath::FunStringLength::doEvaluate):
(WebCore::XPath::FunNormalizeSpace::doEvaluate):
Don't try to pass RefPtr<Node> to the Value ctor.
2007-02-04 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=8791
XPath should support custom node resolvers
* bindings/js/JSCustomXPathNSResolver.cpp: Added.
(WebCore::JSCustomXPathNSResolver::create):
(WebCore::JSCustomXPathNSResolver::JSCustomXPathNSResolver):
(WebCore::JSCustomXPathNSResolver::~JSCustomXPathNSResolver):
(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
* bindings/js/JSCustomXPathNSResolver.h: Added.
* bindings/objc/DOMCustomXPathNSResolver.h: Added.
* bindings/objc/DOMCustomXPathNSResolver.mm: Added.
(WebCore::DOMCustomXPathNSResolver::DOMCustomXPathNSResolver):
(WebCore::DOMCustomXPathNSResolver::~DOMCustomXPathNSResolver):
(WebCore::DOMCustomXPathNSResolver::lookupNamespaceURI):
Wrappers for JS/ObjC objects that can be used as resolvers.
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/CodeGeneratorObjC.pm:
Use the above wrappers to support custom resolvers.
* xml/XPathNSResolver.cpp:
* xml/XPathNSResolver.h:
Turned this class into an abstract one.
* xml/NativeXPathNSResolver.cpp: Added.
(WebCore::NativeXPathNSResolver::NativeXPathNSResolver):
(WebCore::NativeXPathNSResolver::~NativeXPathNSResolver):
(WebCore::NativeXPathNSResolver::lookupNamespaceURI):
* xml/NativeXPathNSResolver.h: Added.
A XPathNSResolver subclass, doing what XPathNSResolver used to do.
* xml/XPathEvaluator.cpp:
(WebCore::XPathEvaluator::createNSResolver): Create a NativeXPathNSResolver.
* WebCore.xcodeproj/project.pbxproj: Added new files.
2007-02-04 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
Tidying up EventHandler, and moving more of
EventHandlerMac.mm to EventHandler.cpp
Also added EventHandler::eventLoopHandleMouse[Dragged,Up]
these are basically helper functions to allow correct event
handling on MacOS.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseUp):
(WebCore::EventHandler::dragSourceMovedTo):
(WebCore::EventHandler::dragSourceEndedAt):
(WebCore::EventHandler::dispatchDragSrcEvent):
Moved from EventHandlerMac to EventHandler
* page/EventHandler.h:
(WebCore::EventHandler::eventLoopHandleMouseUp):
(WebCore::EventHandler::eventLoopHandleMouseDragged):
Null implementations of two Mac helper functions
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::eventLoopHandleMouseDragged):
(WebCore::EventHandler::handleDrag):
Much tidying, reduced nesting, made less dependent on NS types
(WebCore::EventHandler::eventLoopHandleMouseDragged):
(WebCore::EventHandler::eventLoopHandleMouseUp):
Helper functions to let us process events properly on MacOS
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge dragSourceEndedAt:operation:]):
2007-02-04 George Staikos <staikos@kde.org>
Reviewed by Zack.
Some Qt hacks and cleanups - makes rendering of forms much better on
OS X
* platform/qt/PlatformKeyboardEventQt.cpp: Add Key_Return/Enter
(WebCore::keyIdentifierForQtKeyCode):
(WebCore::windowsKeyCodeForKeyEvent):
* platform/qt/RenderThemeQt.cpp: Hacks and fix buttons
(WebCore::RenderThemeQt::addIntrinsicMargins):
(WebCore::RenderThemeQt::setCheckboxSize):
(WebCore::RenderThemeQt::supportsFocus):
(WebCore::RenderThemeQt::applyTheme):
2007-02-03 Maciej Stachowiak <mjs@apple.com>
Rubber stamped by Adam.
- remove obsolete code that has an annoying space in the directory name
* WebCore.vcproj/Image Viewer/Image Viewer.cpp: Removed.
* WebCore.vcproj/Image Viewer/Image Viewer.h: Removed.
* WebCore.vcproj/Image Viewer/Image Viewer.rc: Removed.
* WebCore.vcproj/Image Viewer/Image Viewer.reg: Removed.
* WebCore.vcproj/Image Viewer/Image Viewer.vcproj: Removed.
* WebCore.vcproj/Image Viewer/ImageDocument.cpp: Removed.
* WebCore.vcproj/Image Viewer/ImageDocument.h: Removed.
* WebCore.vcproj/Image Viewer/ImageMainFrame.cpp: Removed.
* WebCore.vcproj/Image Viewer/ImageMainFrame.h: Removed.
* WebCore.vcproj/Image Viewer/ImageView.cpp: Removed.
* WebCore.vcproj/Image Viewer/ImageView.h: Removed.
* WebCore.vcproj/Image Viewer/Resource.h: Removed.
* WebCore.vcproj/Image Viewer/res/Image Viewer.ico: Removed.
* WebCore.vcproj/Image Viewer/res/Image ViewerDoc.ico: Removed.
* WebCore.vcproj/Image Viewer/res/ImageViewer.rc2: Removed.
* WebCore.vcproj/Image Viewer/res/Toolbar.bmp: Removed.
* WebCore.vcproj/Image Viewer/stdafx.cpp: Removed.
* WebCore.vcproj/Image Viewer/stdafx.h: Removed.
2007-02-04 Mitz Pettel <mitz@webkit.org>
Reviewed by Oliver.
- fix http://bugs.webkit.org/show_bug.cgi?id=12564
REGRESSION: Uncaught AppKit exception when using the scrollwheel while Gmail is loading
* platform/mac/PlatformMouseEventMac.mm:
(WebCore::eventNumberForEvent): Scroll wheel events don't have an event number.
2007-02-04 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Sam.
Add support for xml:space="preserve" for SVG text.
It can be modeled by using white-space="pre" and replace \n by spaces.
Handle xml:space="default" correctly.
Always remove tabs from SVG text - as demanded by spec.
Added test: svg/custom/text-whitespace-handling.svg
* css/svg.css:
* ksvg2/svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::parseMappedAttribute):
* rendering/RenderText.cpp:
(WebCore::RenderText::setStyle):
(WebCore::RenderText::setTextInternal):
* rendering/bidi.cpp:
(WebCore::shouldPreserveNewline):
(WebCore::RenderBlock::skipWhitespace):
(WebCore::RenderBlock::findNextLineBreak):
2007-02-03 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12560
W3C XPath test Text_Nodes.svg fails
Covered by dom/svg/level3/xpath/Text_Nodes.svg
* xml/XPathStep.cpp:
(WebCore::XPath::Step::nodeTestMatches): Only include the first text sibling in text() matches.
2007-02-03 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12485
XPath id() function doesn't work as root in paths
Test: fast/xpath/id-path.html
* xml/XPathPath.cpp:
(WebCore::XPath::Path::doEvaluate): Implemented.
(WebCore::XPath::LocationPath::evaluate): A new overload that takes an initial NodeVector.
(WebCore::XPath::LocationPath::doEvaluate): Moved most of the logic to the new evaluate().
* xml/XPathPath.h: Added a new evaluate() overload and a using declaration to keep the
generic one visible.
2007-02-03 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12559
REGRESSION: Crash in checkForHeadCharset() under GuardMalloc
No tests possible.
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::checkForHeadCharset): Fix end of buffer checks; sprinkle a number
of new ones over the function.
2007-02-03 David Kilzer <ddkilzer@webkit.org>
Reviewed by NOBODY (no-svg build fix).
* page/EventHandler.cpp: Include FloatPoint.h.
2007-02-03 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Mitz.
http://bugs.webkit.org/show_bug.cgi?id=12549
Wrong character encoding at www.ravmilim.co.il
Test: fast/encoding/meta-charset.html
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::checkForHeadCharset): Fix an off by one error.
2007-02-02 Maciej Stachowiak <mjs@apple.com>
Reviewed by Hyatt & Adele.
- <rdar://problem/4896972> TV guide listings page doesn't finish loading (11674)
Test case: fast/forms/disabled-select-change-index.html
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::setSelected): Allow changing selected state of a disabled
option.
2007-02-03 Nikolas Zimmermann <zimmermann@kde.org>
Build fix, not reviewed.
Blind attempt to fix Qt build.
* WebCore.pro: Add RenderSVGGradientStop.cpp / RenderSVGHiddenContainer.cpp
2007-02-03 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Eric & Maciej.
Fix serveral <use> issues:
- When events are dispatch to a referenced element, the actual event.target
has to be set to the corresponding SVGElementInstance object
- Node::shadowAncestorNode() should _not_ return the shadowParentNode for SVG elements
This is only needed for the HTML forms concept and breaks event dispatching for SVG shadow tree elements.
- Add SVGElementInstance as possible EventTarget in bindings/js/kjs_dom.cpp
(Now event.target returns the actual SVGElementInstance object for a shadow tree element)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12502 (Reproducible crash when browsing SVG map.)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12511 (<use> has event dispatching issues)
Added test: svg/custom/use-event-handler-on-use-element.svg
Added test: svg/custom/use-event-handler-on-referenced-element.svg
Added test: svg/custom/use-elementInstance-event-target.svg
Added test: svg/custom/use-elementInstance-methods.svg
* bindings/js/kjs_dom.cpp:
(KJS::toJS):
* dom/EventTarget.cpp:
(WebCore::EventTarget::toSVGElementInstance):
* dom/EventTarget.h:
* dom/EventTargetNode.cpp:
(WebCore::EventTargetNode::handleLocalEvents):
(WebCore::EventTargetNode::dispatchGenericEvent):
(WebCore::EventTargetNode::dispatchEvent):
* dom/EventTargetNode.h:
* dom/Node.cpp:
(WebCore::Node::shadowAncestorNode):
* ksvg2/svg/SVGElement.cpp:
(WebCore::shadowTreeParentElementForShadowTreeElement):
(WebCore::SVGElement::dispatchEvent):
* ksvg2/svg/SVGElement.h:
* ksvg2/svg/SVGElementInstance.cpp:
(WebCore::SVGElementInstance::toSVGElementInstance):
* ksvg2/svg/SVGElementInstance.h:
* ksvg2/svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::notifyAttributeChange):
(WebCore::SVGUseElement::instanceForShadowTreeElement):
* ksvg2/svg/SVGUseElement.h:
2007-02-02 Oliver Hunt <oliver@apple.com>
Reviewed by Geoff.
Add guard around accessing [NSEvent eventNumber] to ensure
we don't attempt to access it on on non-mouse related NSEvent.
* platform/mac/PlatformMouseEventMac.mm:
(WebCore::eventNumberForEvent):
(WebCore::PlatformMouseEvent::PlatformMouseEvent):
2007-02-02 Adam Roben <aroben@apple.com>
Reviewed by Anders.
Try to be a little less selfish about DocumentLoader.
Spotted while working on <rdar://problem/4957747>.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected):
Everyone can open frames in new windows.
2007-02-02 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Eric.
Move xml:space/xml:lang from svgattrs.in to xmlattrs.in where they actually belong.
Now they are actually recognized by SVGLangSpace::parseMappedAttribute.
Patch implementing xml:space="preserve" coming soon, which acts as test for this stuff.
Always build XMLNames.cpp (not only for SVG) and replace all occourences of
"http://www.w3.org/XML/1998/namespace" by "XMLNames::xmlNamespaceURI".
* DerivedSources.make:
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument):
* ksvg2/svg/SVGLangSpace.cpp:
(WebCore::SVGLangSpace::SVGLangSpace):
(WebCore::SVGLangSpace::parseMappedAttribute):
* ksvg2/svg/SVGLangSpace.h:
* ksvg2/svg/svgattrs.in:
* page/Frame.cpp:
(WebCore::Frame::Frame):
* xml/XPathNSResolver.cpp:
(WebCore::XPathNSResolver::lookupNamespaceURI):
* xml/xmlattrs.in:
2007-02-02 Beth Dakin <bdakin@apple.com>
Reviewed by Maciej.
Working on a layout test.
Fix for <rdar://problem/4966100> REGRESSION: Reproducible ASSERT
hit at Walgreens.com
* page/Frame.cpp:
(WebCore::Frame::setView): If we are setting the view to 0 and
detaching the document, call unscheduleRealyout() on the old view
before setting it to 0.
2007-02-01 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
Added support for selectively ignoring WebCore::Node leaks during layout
tests, so that we can ignore known leaks in other components.
* WebCore.exp:
* dom/Node.cpp:
(WebCore::Node::isSupported): Moved isSupported up with the rest of the static functions.
(WebCore::): Added an ignoreSet, which collects WebCore::Nodes whose lifetime
we want to ignore. We need to track which nodes to ignore rather than, say,
just suspending the count, because node destruction depends on lots of
different variables, so it would be nearly impossible to know when exactly
to suspend the count and when exactly to resume it.
(WebCore::NodeCounter::~NodeCounter): Changed to use WTFLog instead of fprintf.
(WebCore::Node::startIgnoringLeaks): Do the ignoring.
(WebCore::Node::stopIgnoringLeaks): ditto
(WebCore::Node::Node): ditto
(WebCore::Node::~Node): ditto
* dom/Node.h: Moved isSupported up with the rest of the static functions.
* platform/mac/LoggingMac.mm:
(WebCore::initializeWithUserDefault): Renamed from "initializeLoggingChannel"
because the real goal here is to honor a user default -- WTFLoggingChannels
need no run-time initialization. Also replaced "off by default, on if a
user default says so" behavior with "only override existing setting if a
user default says so" behavior. It seemed like a bug that you would specify
a channel's on/off state in its definition, but this function would unconditionally
blow that state away.
(WebCore::InitializeLoggingChannelsIfNecessary):
2007-02-02 Eric Seidel <eric@webkit.org>
Reviewed by mitz.
Fix gradient stop style resolution to be less of a hack, fixing style invalidation:
http://bugs.webkit.org/show_bug.cgi?id=12193
and fix stop-color and stop-opacity not to inherit:
http://bugs.webkit.org/show_bug.cgi?id=12193
Tests:
* svg/custom/gradient-stops-style-change.svg: added
* svg/W3C-SVG-1.1/pservers-grad-18-b.svg: updated
* WebCore.xcodeproj/project.pbxproj:
* ksvg2/css/SVGCSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applySVGProperty):
* ksvg2/css/SVGRenderStyle.cpp:
(WebCore::SVGRenderStyle::inheritedNotEqual):
(WebCore::SVGRenderStyle::inheritFrom):
* ksvg2/css/SVGRenderStyle.h:
* ksvg2/svg/SVGDefsElement.cpp:
(WebCore::SVGDefsElement::createRenderer):
* ksvg2/svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::createRenderer):
(WebCore::SVGGradientElement::buildStops):
* ksvg2/svg/SVGGradientElement.h:
(WebCore::SVGGradientElement::rendererIsNeeded):
* ksvg2/svg/SVGStopElement.cpp:
(WebCore::SVGStopElement::createRenderer):
* ksvg2/svg/SVGStopElement.h:
(WebCore::SVGStopElement::rendererIsNeeded):
* rendering/RenderSVGGradientStop.cpp: Added.
* rendering/RenderSVGGradientStop.h: Added.
* rendering/RenderSVGHiddenContainer.cpp: Added.
* rendering/RenderSVGHiddenContainer.h: Added.
* rendering/RenderSVGContainer.cpp:
* rendering/RenderSVGContainer.h:
2007-02-02 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Fix scrolling-on-selection bug by correctly
scrolling to the offset instead of trying to
ensure visibility with margins.
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::scrollPointRecursively):
2007-02-02 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Fix drawing of dashed and colored lines. Pen
has to be inherited for stroke to stay consistent.
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::setAlpha):
(WebCore::GraphicsContext::setPlatformStrokeColor):
(WebCore::GraphicsContext::setPlatformStrokeStyle):
2007-02-01 Nicholas Shanks <webkit@nickshanks.com>
Reviewed by Mark.
Add support for CSS2 font-stretch property.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/cssparser.cpp:
(WebCore::CSSParser::parseValue):
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::applyDeclarations):
(WebCore::CSSStyleSelector::applyProperty):
* platform/FontCache.cpp:
(WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
(WebCore::FontPlatformDataCacheKey::operator==):
(WebCore::computeHash):
(WebCore::FontPlatformDataCacheKeyTraits::deletedValue):
(WebCore::FontPlatformDataCacheKeyTraits::emptyValue):
(WebCore::FontCache::getCachedFontPlatformData):
* platform/FontDescription.h:
(WebCore::):
(WebCore::FontDescription::FontDescription):
(WebCore::FontDescription::stretch):
(WebCore::FontDescription::narrowerStretch):
(WebCore::FontDescription::widerStretch):
(WebCore::FontDescription::setStretch):
(WebCore::FontDescription::operator==):
* platform/mac/FontCacheMac.mm:
(WebCore::FontCache::createFontPlatformData):
* platform/mac/WebFontCache.mm:
(acceptableChoice):
(betterChoice):
(+[WebFontCache fontWithFamily:traits:size:]):
2007-02-01 Timothy Hatcher <timothy@apple.com>
Reviewed by Mark Rowe.
<rdar://problem/4969201> REGRESSION: Safari applies the wrong font to BODY element at http://www.apple.com/downloads/dashboard/
* platform/mac/WebFontCache.mm:
(+[WebFontCache fontWithFamily:traits:size:]): Don't call [NSFont fontWithName:] with the desiredFamily on Tiger.
2007-02-01 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12506
REGRESSION: Safari doesn't display hebrew text on a web page,
displayed correctly on Tiger
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::checkForHeadCharset): Advance the pointer when necessary.
2007-02-01 George Staikos <staikos@kde.org>
Reviewed by Zack and Lars.
Add a cookie interface for the Qt build.
* WebCore.pro:
* platform/qt/CookieJarQt.cpp:
(WebCore::setCookies):
(WebCore::cookies):
(WebCore::cookiesEnabled):
2007-02-01 Maciej Stachowiak <mjs@apple.com>
Reviewed by Adele.
- fixed <rdar://problem/4922764> ASSERTION: (!m_contentFunction) in PolicyCheck::call trying to visit feed URL (CNN, Apple, etc.)
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopPolicyCheck): Call new cancel method instead of call(false) on old check.
(WebCore::PolicyCheck::cancel): call any callback function that is set with false or PolicyIgnore as
appropriate.
* loader/FrameLoader.h:
2007-02-01 Beth Dakin <bdakin@apple.com>
Reviewed by Hyatt.
Fix for http://bugs.webkit.org/show_bug.cgi?id=10517 REGRESSION
(r12065-r12082): Navigation graphic wraps to the next line on
duart.com and <rdar://problem/4960505> REGRESSION: The Awesome
Windows Vista page has a layout error in the header table (10517)
The problem is that we never supported a quirk that other browsers
support where, under very specific circumstances, a table cell will
grow to fit an image inside of it. This is only a regression
because a bug was fixed were we were 1 pixel off in the calculation
of overflow in some cases.
* rendering/RenderBlock.cpp:
(WebCore::shouldGrowTableCellForImage):
(WebCore::RenderBlock::calcInlineMinMaxWidth):
2007-02-01 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Implement native look for comboboxes
and fix/implement popup menus.
* platform/PopupMenu.h:
* platform/qt/PopupMenuQt.cpp:
(WebCore::PopupMenu::PopupMenu):
(WebCore::PopupMenu::~PopupMenu):
(WebCore::PopupMenu::clear):
(WebCore::PopupMenu::populate):
(WebCore::PopupMenu::show):
(WebCore::PopupMenu::hide):
(WebCore::PopupMenu::updateFromElement):
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::adjustMenuListStyle):
(WebCore::RenderThemeQt::paintButton):
(WebCore::RenderThemeQt::paintTextField):
(WebCore::RenderThemeQt::paintMenuList):
2007-02-01 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fix <rdar://problem/4887428> REGRESSION: Implement slight delay for firing incremental onSearch event
* rendering/RenderTextControl.h:
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::RenderTextControl): Set up timer.
(WebCore::RenderTextControl::subtreeHasChanged): Start timer here instead of immediately sending event.
(WebCore::RenderTextControl::searchEventTimerFired): Added. Sends search event.
(WebCore::RenderTextControl::stopSearchEventTimer): Added.
(WebCore::RenderTextControl::startSearchEventTimer): Added. Sends search event right away if there is
no text. If there is some text, sets the timer using the same delay rule as NSSearchField. If you keep
typing, then the timer keeps getting reset 0.2 seconds into the future until you pause.
* html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::onSearch): Tell the renderer to
stop the timer, since we're sending a search event. This helps when a caller other than
the timer decides to send an explicit search event.
2007-02-01 Maciej Stachowiak <mjs@apple.com>
Fix by Darin, reviewed by Maciej.
- fix ~10% performance regression from encoding fix
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::checkForHeadCharset): Fix a logic
error which made huge strings accidentally.
2007-02-01 Lars Knoll <lars@trolltech.com>
Fix the Qt build
* page/qt/EventHandlerQt.cpp:
2007-01-31 Darin Adler <darin@apple.com>
Reviewed by Adam and Geoff.
- fix <rdar://problem/4786767> REGRESSION: <select> controls are not resized when zooming text
Test: fast/forms/select-width-font-change.html
* rendering/RenderMenuList.h: Cleaned up formatting a bit. Removed unneeded include of PopupMenu.h.
Made a lot more things private, including the PopupMenuClient base class, all of the virtual
functions from PopupMenuClient, and the setTextFromOption function. Added updateOptionsWidth.
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::setStyle): Added code to call updateOptionsWidth when the font changes.
(WebCore::RenderMenuList::updateOptionsWidth): Added. Factored code out of updateFromElement.
Changed to do nothing when m_optionsWidth is already correct.
(WebCore::RenderMenuList::updateFromElement): Moved code to recomputed options width to the new
updateOptionsWidth function.
(WebCore::RenderMenuList::text): Made const.
2007-01-31 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
Migrate more drag and drop logic to WebCore, start preparing
to move EventHandler::handleDrag from EventHandlerMac to EventHandler
* WebCore.exp:
updating methods
* dom/Clipboard.cpp:
* dom/Clipboard.h:
(WebCore::Clipboard::Clipboard):
(WebCore::Clipboard::setDragHasStarted):
(WebCore::Clipboard::dragStarted):
Moving from ClipboardMac to Clipboard
* dom/EventTargetNode.cpp:
(WebCore::EventTargetNode::dispatchMouseEvent):
PlatformMouseEvent no longer lies about button state, however
DOM Events don't allow NoButton, so we need to convert NoButton
to LeftButton when we create a DOM Event from PlatformMouseEvent
* page/DragClient.h:
Tidying comment
* page/DragController.cpp:
(WebCore::createMouseEvent):
Updated for new PlatformMouseEvent constructors
(WebCore::DragController::mayStartDragAtEventLocation):
Migrated from WebKit
* page/DragController.h:
Added above function declarations
* page/EventHandler.cpp:
(WebCore::EventHandler::dragState):
(WebCore::EventHandler::dragHysteresisExceeded):
(WebCore::EventHandler::freeClipboard):
(WebCore::EventHandler::shouldDragAutoNode):
Moved from EventHandlerMac
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::eventMayStartDrag):
(WebCore::EventHandler::handleMousePressEvent):
Use DragController
* page/EventHandler.h:
Added DragState struct definition to EventHandler
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::eventActivatedView):
(WebCore::EventHandler::handleDrag):
(WebCore::EventHandler::handleMouseUp):
(WebCore::EventHandler::mouseDown):
Update to use DragController and PlatformMouseEvent
* page/mac/WebCoreFrameBridge.h:
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge dragSourceMovedTo:]):
(-[WebCoreFrameBridge dragSourceEndedAt:operation:]):
Use DragController for state
* platform/PlatformMouseEvent.h:
(WebCore::):
(WebCore::PlatformMouseEvent::PlatformMouseEvent):
(WebCore::PlatformMouseEvent::eventType):
(WebCore::PlatformMouseEvent::timestamp):
(WebCore::PlatformMouseEvent::eventNumber):
(WebCore::PlatformMouseEvent::setClickCount):
Exposing necessary data for Drag logic
* platform/mac/ClipboardMac.h:
* platform/mac/ClipboardMac.mm:
(WebCore::ClipboardMac::ClipboardMac):
(WebCore::ClipboardMac::setDragImage):
Have moved a number of fields from ClipboardMac to Clipboard
so need to use accessors in a few places now
* platform/mac/PlatformMouseEventMac.mm:
(WebCore::mouseButtonForEvent):
(WebCore::mouseEventForNSEvent):
(WebCore::PlatformMouseEvent::PlatformMouseEvent):
Determine MouseEventType, and provide event time info
2007-01-31 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12506
REGRESSION: Safari doesn't display hebrew text on a web page,
displayed correctly on Tiger
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::checkForHeadCharset): Skip over
quoted attributes.
2007-01-31 David Carson <dacarson@gmail.com>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12510
Initialize the variable m_totalLoops
Is tested by LayoutTests/fast/css/MarqueeLayoutTest.html
* rendering/RenderLayer.cpp:
(WebCore::Marquee::Marquee):
2007-01-31 Anders Carlsson <acarlsson@apple.com>
Reviewed by Maciej.
<rdar://problem/4886776>
REGRESSION: After opening a web archive, location shows the actual URL, not the webarchive file
* WebCore.exp:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::continueLoadWithData):
* loader/FrameLoader.h:
New function which continues a load but using a given buffer instead.
2007-01-31 Adele Peterson <adele@apple.com>
Reviewed by Adam.
Fix for http://bugs.webkit.org/show_bug.cgi?id=12516
REGRESSION (r19313): All keyboard navigation has stopped working
For non-editable selections, handleKeyPress doesn't need to call _interceptEditingKeyEvent.
* editing/Editor.cpp:
(WebCore::selectionForEvent): Moved this to the top of the file.
(WebCore::Editor::handleKeyPress): Do the equivalent of the _canEdit check that used to be in WebKit WebEditorClient::handleKeyPress.
2007-01-31 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
Added a Range counter to detect leaks. Tweaked the Node counter.
Also fixed a TextIterator destructive modification bug that I noticed along the
way. No test case for this bug because no clients have been bitten by it
yet.
* dom/Node.cpp: Renamed NodeImplCounter to NodeCounter, changed counter
to unsigned, fixed formatting to match style guidelines.
(WebCore::NodeCounter::~NodeCounter):
(WebCore::Node::Node):
(WebCore::Node::~Node):
* dom/Range.cpp:
(WebCore::RangeCounter::~RangeCounter): Added.
(WebCore::Range::Range):
(WebCore::Range::~Range):
(WebCore::Range::ownerDocument): New accessor, used by TextIterator to avoid
annoying NULL checks.
* dom/Range.h:
* editing/TextIterator.cpp:
(WebCore::TextIterator::subrange):
(1) Don't initialize result with entireRange -- doing so would create a
PassRefPtr that pointed to entireRange, so this function would destructively
modify the Range you passed it. Initialize it with a new Range instead.
(2) Don't use a PassRefPtr as a local variable, because they have sneaky
semantics. Use a RefPtr instead.
(3) Don't call CharacterIterator::range() willy-nilly, since it does
non-trivial work. Use a local variable instead.
2007-01-31 Adele Peterson <adele@apple.com>
Reviewed by Darin.
WebCore part of fix for <rdar://problem/4521461> REGRESSION: when keyPress event changes form focus, inserted key goes to wrong control
Test: fast/events/keypress-focus-change.html
* editing/Editor.cpp:
(WebCore::selectionForEvent): Added. This computes a selection that considers the case where an event handler
has moved the selection outside of a text control. In that case, we use the target control's selection.
(WebCore::Editor::insertText): This gets the selectionForEvent, checks that the selection is editable,
and calls TypingCommand::insertText with the correct selection.
* editing/TypingCommand.h: Added a version of insertText that takes a selection. The old version of insertText will call this, and pass
in the frame's selection.
* editing/TypingCommand.cpp: (WebCore::TypingCommand::insertText): Added. Uses the passed in selection to
set the starting and ending selections correctly so that the editing machinery will insert the text in the correct place.
* page/Page.h: Added convenience method to get selection from focused or main frame.
* page/Page.cpp: (WebCore::Page::selection):
* html/HTMLInputElement.h: Added selection methods to get selection for text controls.
* html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::selection):
* html/HTMLTextAreaElement.h:
* html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::selection):
* rendering/RenderTextControl.h:
* rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::selection):
2007-01-31 Darin Adler <darin@apple.com>
- fix build
* ForwardingHeaders/wtf/ListHashSet.h: Added.
2007-01-31 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Return the correct selection color.
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::supportsFocusRing):
(WebCore::RenderThemeQt::platformActiveSelectionBackgroundColor):
(WebCore::RenderThemeQt::platformInactiveSelectionBackgroundColor):
(WebCore::RenderThemeQt::platformActiveSelectionForegroundColor):
(WebCore::RenderThemeQt::platformInactiveSelectionForegroundColor):
2007-01-31 Maciej Stachowiak <mjs@apple.com>
Reviewed by Mark.
- fixed <rdar://problem/4751164> REGRESSION: Safari places text on incorrect button when returning to a page via back [10541]
http://bugs.webkit.org/show_bug.cgi?id=10541
* dom/Document.cpp:
(WebCore::Document::formElementsState):
* dom/Document.h:
I couldn't figure out the back/forward support in the tests enough
to make an automated test, but this maual test reproduces the
problem 100% without this patch:
* manual-tests/back.html: Added.
* manual-tests/form-control-madness.html: Added.
2007-01-31 David Kilzer <ddkilzer@kilzer.net>
Reviewed by Mitz.
- fix http://bugs.webkit.org/show_bug.cgi?id=12490
Clean up canPlaceOnLine logic in bidi.cpp
No test cases since there is no change in functionality.
* rendering/bidi.cpp:
(WebCore::RenderBlock::findNextLineBreak): Simplify canFitOnLine expression.
2007-01-31 Zack Rusin <zack@kde.org>
Adding comments explaining how the focus ring implementation
works on the Qt platform and just move focus ring rendering
related code to the same spot.
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::setFocusRingColorChangeFunction):
(WebCore::focusRingColor):
(WebCore::GraphicsContext::drawFocusRing):
* platform/qt/TemporaryLinkStubs.cpp:
2007-01-31 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Properly propagate key events.
* page/qt/FrameQt.cpp:
* page/qt/FrameQt.h: Remove redundant method.
* platform/qt/ScrollViewCanvasQt.cpp:
(WebCore::ScrollViewCanvasQt::handleKeyEvent):
2007-01-31 George Staikos <staikos@kde.org>
Reviewed by Zack and Lars.
Fix double delete on cancel as well as assertion with proxy.
* platform/network/qt/ResourceHandleManagerQt.cpp:
(WebCore::WebCoreHttp::getConnection):
(WebCore::WebCoreHttp::onRequestFinished):
(WebCore::WebCoreHttp::cancel):
2007-01-31 Mark Rowe <mrowe@apple.com>
Reviewed by Oliver.
* dom/Document.h: Change #if XSLT_SUPPORT to #ifdef XSLT_SUPPORT.
2007-01-31 Lars Knoll <lars@trolltech.com>
Fix the Qt build.
* platform/network/qt/ResourceHandleQt.cpp:
(WebCore::ResourceHandle::setDefersLoading):
2007-01-31 Zack Rusin <zack@kde.org>
Reviewed by Eric.
Implement SVGImage on the Qt platform.
* WebCore.pro:
* loader/CachedImage.cpp:
(WebCore::CachedImage::createImage):
* platform/graphics/ImageBuffer.h:
* platform/graphics/qt/ImageBufferQt.cpp:
(WebCore::ImageBuffer::create):
(WebCore::ImageBuffer::ImageBuffer):
(WebCore::ImageBuffer::~ImageBuffer):
(WebCore::ImageBuffer::context):
(WebCore::ImageBuffer::pixmap):
* platform/graphics/svg/SVGImage.cpp:
(WebCore::SVGImage::nativeImageForCurrentFrame):
(WebCore::SVGImage::setData):
2007-01-30 Maciej Stachowiak <mjs@apple.com>
Reviewed by Brady.
- fixed <rdar://problem/4939366> REGRESSION: Assertion failure and crash when going back in history (12314)
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::createWindow): special case a frame name of "_blank"
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy): ditto
2007-01-30 Maciej Stachowiak <mjs@apple.com>
Reviewed by Anders.
- fixed <rdar://problem/4963871> REGRESSION: Crash occurs at WebCore::Frame::loader() when attempting to open a saved archive file
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::request): Removed obsolete FIXME.
(WebCore::DocumentLoader::initialRequest): Ditto.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::MainResourceLoader): Handle data loads from a timer, otherwise bad things happen.
(WebCore::MainResourceLoader::handleDataLoadNow):
(WebCore::MainResourceLoader::handleDataLoadSoon):
(WebCore::MainResourceLoader::loadNow):
(WebCore::MainResourceLoader::didCancel): cancel data load timer
* loader/MainResourceLoader.h:
2007-01-30 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin.
<rdar://problem/4961953> Stop using NSString deprecated methods like initWithCString:
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/svg/filters/cg/WKArithmeticFilter.m:
(-[WKArithmeticFilter init]):
* platform/graphics/svg/filters/cg/WKComponentMergeFilter.m:
(-[WKComponentMergeFilter init]):
* platform/graphics/svg/filters/cg/WKDiffuseLightingFilter.m:
(-[WKDiffuseLightingFilter init]):
* platform/graphics/svg/filters/cg/WKDiscreteTransferFilter.m:
(-[WKDiscreteTransferFilter init]):
* platform/graphics/svg/filters/cg/WKDisplacementMapFilter.m:
(-[WKDisplacementMapFilter init]):
* platform/graphics/svg/filters/cg/WKDistantLightFilter.m:
(-[WKDistantLightFilter init]):
* platform/graphics/svg/filters/cg/WKGammaTransferFilter.m:
(-[WKGammaTransferFilter init]):
* platform/graphics/svg/filters/cg/WKLinearTransferFilter.m:
(-[WKLinearTransferFilter init]):
* platform/graphics/svg/filters/cg/WKNormalMapFilter.m:
(-[WKNormalMapFilter init]):
* platform/graphics/svg/filters/cg/WKPointLightFilter.m:
(-[WKPointLightFilter init]):
* platform/graphics/svg/filters/cg/WKSpecularLightingFilter.m:
(-[WKSpecularLightingFilter init]):
* platform/graphics/svg/filters/cg/WKSpotLightFilter.m:
(-[WKSpotLightFilter init]):
* platform/graphics/svg/filters/cg/WKTableTransferFilter.m:
(-[WKTableTransferFilter init]):
2007-01-30 David Hyatt <hyatt@apple.com>
Fix for Radar bug #4679426, golden gate bridge Web site layout broken.
This is a regression caused by the addition of :lang support. This
feature caused us to accept any pseudo-class/element with function
arguments, even ones we couldn't handle. The site used such a construct
in conjunction with :not, which turned :not(something-crazy) into not(false).
This ended up being "true", and so we started matching a rule we used to
reject.
The fix is to now aggressively parse pseudo-elements and classes and to
cause the rejection of an entire rule if any pseudoclass or element within
any simple selector of that rule is unrecognized.
Reviewed by darin
fast/css/invalid-pseudo-classes.html
* css/CSSGrammar.y:
* css/CSSSelector.cpp:
(WebCore::CSSSelector::extractPseudoType):
* css/CSSSelector.h:
(WebCore::CSSSelector::):
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::checkOneSelector):
2007-01-30 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12487
REGRESSION: Repro crash when a second background image is animated
Test: fast/images/animated-background-image-crash.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::arenaDelete): Deref() all background images and the
border image.
2007-01-30 Darin Adler <darin@apple.com>
Reviewed by Maciej.
* dom/EventTarget.h:
* dom/EventTarget.cpp: (WebCore::EventTarget::toNode):
Use EventTargetNode instead of Node. Removed unneeded includes.
Make EventTarget's destructor protected to make it clear that you
should never delete one.
* dom/EventTargetNode.h:
(WebCore::EventTargetNode::toNode):
Tweaked formatting. Updated for change to return value.
* platform/graphics/BitmapImage.h: Updated comment for clarity.
Marked FrameData Noncopyable.
* platform/graphics/Image.h: Tweaked formatting.
* platform/graphics/ImageAnimationObserver.h:
Make ImageAnimationObserver's destructor protected to make it clear that you
should never delete one.
2007-01-30 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin (by way of Hyatt).
- fix http://bugs.webkit.org/show_bug.cgi?id=12373
ASSERTION FAILURE: !child->needsLayout() on paypal.com
Test: fast/table/inline-form-assert.html
* rendering/RenderContainer.cpp:
(WebCore::RenderContainer::layout): Changed the assertion to ignore inlines.
2007-01-30 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12486
XPathNSResolver.lookupNamespaceURI should return null if no URI is found
* xml/XPathNSResolver.idl: added [ConvertNullStringTo=Null].
2007-01-30 Anders Carlsson <acarlsson@apple.com>
Reviewed by Maciej.
Revert the parts of 19244 that removed deferring NSURLConnections, that was not a correct change.
Remove ASSERTS from loader.cpp that aren't true anymore since the callbacks are invoked without a handle
when loading a subresource from an archive.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::loadNow):
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::releaseResources):
(WebCore::ResourceLoader::load):
(WebCore::ResourceLoader::setDefersLoading):
* loader/loader.cpp:
(WebCore::Loader::didFail):
(WebCore::Loader::didReceiveResponse):
(WebCore::Loader::didReceiveData):
* platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::ResourceHandle):
(WebCore::ResourceHandle::create):
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::setDefersLoading):
2007-01-30 Darin Adler <darin@apple.com>
Reviewed by John.
- fix for <rdar://problem/4911504> REGRESSION: With a image selected, ctrl-clicking
on page displays the wrong contextual menu items "Search in Google", "Search in Spotlight"
and "Look up in Dictionary"
* platform/ContextMenu.cpp:
(WebCore::selectionContainsPossibleWord): Added. Returns true if there are some
non-whitespace characters in the selection.
(WebCore::ContextMenu::populate): Don't add SearchSpotlightItem, SearchWebItem,
or LookInDictionaryItem if selectionContainsPossibleWord returns false.
2007-01-30 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Oliver.
Respect stroke-width in absolute repaint rect calculations for SVG text.
Added test: svg/custom/text-repaint-including-stroke.svg
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::relativeBBox):
2007-01-30 Steve Falkenburg <sfalken@apple.com>
Reviewed by Oliver.
Add missing includes.
* ksvg2/svg/SVGElementInstance.cpp:
2007-01-30 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12452
XPath id() function is not supported
* xml/XPathFunctions.cpp:
(WebCore::XPath::isWhitespace): A helper to detect XML whitespace.
(WebCore::XPath::FunId::isConstant):
(WebCore::XPath::FunId::doEvaluate):
(WebCore::XPath::FunctionMapping::):
Implemented id().
2007-01-30 Zack Rusin <zrusin@trolltech.com>
Reviewed by Sam.
Make the gradients work on the Qt platform.
* platform/graphics/svg/SVGPaintServerGradient.h:
* platform/graphics/svg/SVGPaintServerLinearGradient.h:
* platform/graphics/svg/SVGPaintServerRadialGradient.h:
* platform/graphics/svg/qt/SVGPaintServerGradientQt.cpp:
(WebCore::SVGPaintServerGradient::fillColorArray):
(WebCore::SVGPaintServerGradient::setup):
* platform/graphics/svg/qt/SVGPaintServerLinearGradientQt.cpp:
(WebCore::SVGPaintServerLinearGradient::setupGradient):
* platform/graphics/svg/qt/SVGPaintServerRadialGradientQt.cpp:
(WebCore::SVGPaintServerRadialGradient::setupGradient):
2007-01-30 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Eric & Oliver. Leak related fixes reviewed by Mark.
Finally make the SVG <use> implementation use the proper "shadow tree" concept,
which is also used by the HTML forms implementation. It's the first time in ksvg
history that <use> is not implement as a crude hack, but proper & sane.
Implement deep expansion of use trees both for the instance & shadow tree.
(<use> on a <symbol> containing a <g> containg a <use> element referencing a <rect>)
The shadow tree is free of any symbol/use tags, but is properly expanded to the
actual referenced content. The instance tree (SVGElementInstance objects) now exactly
exposes the "expanded" shadow tree, as required by the specification. Previously
we cloned referenced <use> elements, so our faked use shadow tree itself contained
<use> elements. That lead to very nasty bugs - finally these dirty pieces are gone.
Checked twice that the updating logic works for all weird "deep expansions" cases. Example:
<rect id="someRect"/> <g id="g"> <symbol> <use xlink:href="#someRect"/> </g> <use xlink:href="#g" id="use"/>
If you walk through the instanceRoot using JavasScript, and explicitely modify some propertties of "someRect"
-> all instances get updated correctly. For such simple cases it doesn't even involve recloning the shadow tree!
SVGElementInstance is now an EventTarget, as demanded by the specification - sending events to <use> instances
will be implemented in a follow-up patch - as well as the "share event listeners with referenced target" logic.
Fixes all updating/stability issues with svg/carto.net/window.svg.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=6000 (<use> does not handle recursion safely)
Added test: svg/custom/use-on-use.svg (deep use referencing)
Added test: svg/custom/use-on-g-containing-use.svg (nested deep use referencing)
Added test: svg/custom/use-modify-target-container.svg (instanceRoot scripting, modifying <g> target)
Added test: svg/custom/use-modify-target-symbol.svg (instanceRoot scripting, modfiying <symbol> target)
Added test: svg/custom/use-modify-container-in-target.svg (modify <g> within referenced use target -> needs to update instances)
Added test: svg/custom/use-recursion-1.svg (referencing container, whose children reference itself)
Added test: svg/custom/use-recursion-2.svg (<use> self referencing)
Added test: svg/custom/use-recursion-3.svg (<use> self rerencing, within <use> target)
Added test: svg/custom/use-recursion-4.svg (cyclic referencing, within <use> target)
* bindings/scripts/CodeGeneratorJS.pm:
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::initForStyleResolve):
(WebCore::CSSStyleSelector::adjustRenderStyle):
* ksvg2/misc/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::removeTimeContainer):
* ksvg2/svg/SVGElement.cpp:
(WebCore::SVGElement::SVGElement):
(WebCore::SVGElement::viewportElement):
* ksvg2/svg/SVGElement.h:
(WebCore::SVGElement::isShadowNode):
(WebCore::SVGElement::shadowParentNode):
(WebCore::SVGElement::setShadowParentNode):
* ksvg2/svg/SVGElementInstance.cpp:
(WebCore::SVGElementInstance::SVGElementInstance):
(WebCore::SVGElementInstance::correspondingUseElement):
(WebCore::SVGElementInstance::shadowTreeElement):
(WebCore::SVGElementInstance::setShadowTreeElement):
(WebCore::containsUseChildNode):
(WebCore::SVGElementInstance::updateInstance):
(WebCore::SVGElementInstance::addEventListener):
(WebCore::SVGElementInstance::removeEventListener):
(WebCore::SVGElementInstance::dispatchEvent):
* ksvg2/svg/SVGElementInstance.h:
(WebCore::SVGElementInstance::refEventTarget):
(WebCore::SVGElementInstance::derefEventTarget):
(WebCore::SVGElementInstance::hasOneRef):
(WebCore::SVGElementInstance::refCount):
(WebCore::SVGElementInstance::setParent):
(WebCore::SVGElementInstance::parent):
* ksvg2/svg/SVGElementInstance.idl:
* ksvg2/svg/SVGGElement.cpp:
(WebCore::SVGGElement::localMatrix):
* ksvg2/svg/SVGGElement.h:
* ksvg2/svg/SVGHiddenElement.h: Removed.
* ksvg2/svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::~SVGSVGElement):
* ksvg2/svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::updateElementInstance):
* ksvg2/svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::removedFromDocument):
(WebCore::SVGUseElement::notifyAttributeChange):
(WebCore::dumpInstanceTree):
(WebCore::SVGUseElement::buildPendingResource):
(WebCore::SVGUseElement::attach):
(WebCore::SVGUseElement::buildInstanceTree):
(WebCore::SVGUseElement::handleDeepUseReferencing):
(WebCore::SVGUseElement::buildShadowTree):
(WebCore::SVGUseElement::expandUseElementsInShadowTree):
(WebCore::SVGUseElement::attachShadowTree):
(WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
(WebCore::SVGUseElement::transferUseAttributesToReplacedElement):
* ksvg2/svg/SVGUseElement.h:
2007-01-30 Maciej Stachowiak <mjs@apple.com>
Reviewed by Eric.
<rdar://problem/4928646> REGRESSION: manual-tests/remove-input-file-onchange.html crashes
* platform/FileChooser.h:
(WebCore::FileChooser::disconnected): New method, so the RenderFileControl can tell when it's
gotten disconected.
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::valueChanged): Avoid calling repainted() when onChange()
handler destroyed us.
2007-01-30 Simon Hausmann <hausmann@kde.org>
Reviewed by Zack.
Combine libJavaScriptCore into libWebKitQt.
Build with ELF visibility if possible.
* WebCore.pro:
2007-01-30 Zack Rusin <zack@kde.org>
The method has been removed from the header
(make it compile)
* platform/network/qt/ResourceHandleQt.cpp:
2007-01-30 Zack Rusin <zrusin@trolltech.com>
Reviewed by aroben
Compile fix.
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::releaseResources):
(WebCore::ResourceLoader::setDefersLoading):
2007-01-29 Zack Rusin <zack@kde.org>
Reviewed by Lars
Propagate the allows-scrolling property on the frames
correctly. If the frame has been constructed as non-
scrolling, respect that and don't show scrollbars.
* platform/ScrollView.h:
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::ScrollView):
(WebCore::ScrollView::setHScrollbarMode):
(WebCore::ScrollView::setVScrollbarMode):
(WebCore::ScrollView::setAllowsScrolling):
2007-01-29 Geoffrey Garen <ggaren@apple.com>
I am the chosen one! I have seen the faces of the final five! I will
save the WebKit build!
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::load):
2007-01-30 Graham Dennis <graham.dennis@gmail.com>
Reviewed by Maciej.
Part of fix for http://bugs.webkit.org/show_bug.cgi?id=10725
Image data in from RTFD clipboard data thrown away
ResourceHandles no longer need to be able to defer loading as that is
now handled by the ResourceLoader.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::loadNow): updated to remove defersLoading argument.
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::releaseResources): release the deferred request.
(WebCore::ResourceLoader::load): defer creating the ResourceHandle instead of
asking the ResourceHandle to defer loading.
(WebCore::ResourceLoader::setDefersLoading): create the ResourceHandle if we have deferred creating it.
* loader/ResourceLoader.h:
* platform/network/ResourceHandle.cpp: ResourceHandle's don't need to know about deferLoading.
(WebCore::ResourceHandle::ResourceHandle):
(WebCore::ResourceHandle::create):
* platform/network/ResourceHandle.h: ditto.
* platform/network/ResourceHandleInternal.h: ditto.
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
* platform/network/mac/ResourceHandleMac.mm: ditto.
(WebCore::ResourceHandle::start):
2007-01-29 Brady Eidson <beidson@apple.com>
Reviewed by Alice
Lets use smart pointers, shall we?
* platform/network/ResourceHandleInternal.h:
2007-01-29 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/4960137>
ASSERTION FAILURE calling SelectionController::setBaseAndExtent (11833)
* editing/SelectionController.cpp:
(WebCore::SelectionController::setSelection): Hand off the selection
to the selectionController responsible for it, instead of asserting.
A selection object can't be constructed with endpoints in different
documents, so this code is only necessary for one endpoint.
2007-01-29 Ada Chan <adachan@apple.com>
Reviewed by Brady.
Moved the update of the title of the current entry in the backforward list to WebCore.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didChangeTitle):
2007-01-29 Adele Peterson <adele@apple.com>
Reviewed by Darin.
More preparation for event handling fixes.
* bridge/EditorClient.h: Removed EventTargetNode parameter from handleKeyPress since we can just get that from the event.
* dom/EventTargetNode.cpp: (WebCore::EventTargetNode::defaultEventHandler): ditto.
* page/EventHandler.cpp: (WebCore::EventHandler::defaultKeyboardEventHandler): ditto.
* page/EventHandler.h: ditto.
* platform/graphics/svg/SVGImageEmptyClients.h: (WebCore::SVGEmptyEditorClient::handleKeyPress): ditto.
* editing/Editor.h:
* editing/Editor.cpp:
(WebCore::Editor::handleKeyPress): Removed EventTargetNode parameter.
(WebCore::Editor::execCommand): Made commandMap use AtomicStringImpls instead of Strings.
(WebCore::Editor::insertText): Moved from the bridge.
* page/mac/WebCoreFrameBridge.h: Moved insertText method to Editor.
* page/mac/WebCoreFrameBridge.mm:
* WebCore.exp: Updated exports.
2007-01-29 Anders Carlsson <acarlsson@apple.com>
Reviewed by Geoff.
<rdar://problem/4960097>
http://bugs.webkit.org/show_bug.cgi?id=12444
Assertion failure in -[WebCoreFrameBridge installInFrame:]
The problem was that the XML tokenizer didn't create elements with
createdByParser set to true.
* dom/Document.cpp:
(WebCore::Document::createElement):
New method which takes a QName. This is used by both the XML tokenizer and createElementNS.
(WebCore::Document::createElementNS):
Call new createElement method.
* dom/XMLTokenizer.h:
* dom/XMLTokenizer.cpp:
(WebCore::XMLTokenizer::XMLTokenizer):
(WebCore::XMLTokenizer::~XMLTokenizer):
Use an OwnPtr for the pending callbacks object. Also, use String instead of StringImpl in the hash map.
(WebCore::toString):
(WebCore::XMLTokenizer::startElementNs):
Call createElement.
2007-01-29 Brady Eidson <beidson@apple.com>
Reviewed by Oliver
http://bugs.webkit.org/show_bug.cgi?id=12465
Only set the iconURL port for non-zero ports
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::iconURL):
2007-01-29 John Sullivan <sullivan@apple.com>
* platform/network/mac/ResourceRequestMac.mm:
Build fix -- removed #import of no-longer-extant WebDataProtocol.h (and also one of the
two #imports for WebCoreSystemInterface.h, while I was at it)
2007-01-29 Anders Carlsson <acarlsson@apple.com>
Reviewed by Oliver.
* page/DragController.cpp:
(WebCore::DragController::dragEnteredOrUpdated):
Only try a drag operation if the drag client explicitly specified that it is OK
2007-01-29 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
Migrated more drag logic and state to WebCore
* page/DragClient.h:
* page/DragController.cpp:
(WebCore::DragController::delegateDragSourceAction):
New forwarding method for the UI delegate
* page/DragController.h:
(WebCore::DragController::dragOffset):
Now store the drag offset -- the offset of the cursor relative to the drag image)
in DragController
* page/EventHandler.cpp:
(WebCore::EventHandler::allowDHTMLDrag):
Moved from WebFrameBridge
* page/EventHandler.h:
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::eventMayStartDrag):
(WebCore::EventHandler::handleDrag):
EventHandlerMac now uses EventHandler::allowDHTMLDrag rather than the
implementation in WebFrameBridge
* page/mac/WebCoreFrameBridge.h:
removed definition of allowDHTMLDrag from WebFrameBridge
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyDragClient::dragSourceActionMaskForPoint):
Updated empty DragClient
2007-01-29 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12359
XPathEvaluator may return some nodes more than once in a result set
Test: fast/xpath/nodeset-duplicates.html
* xml/XPathPath.cpp:
(WebCore::XPath::LocationPath::doEvaluate): Ensure uniqueness of elements
in the node-set.
* xml/XPathPredicate.cpp:
(WebCore::XPath::Union::doEvaluate): Fixed a uniqueness algorithm that was
already present here. Added a FIXME about incorrect result ordering.
2007-01-29 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12340
XPathEvaluator behavior does not match Firefox - name() and attribute nodes
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunName::doEvaluate): Do not try to append a prefix if it doesn't exist.
2007-01-29 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=11815
XPathEvaluator behavior does not match Firefox - substring() and empty element
Test: fast/xpath/empty-string-substring.html
* xml/XPathValue.cpp:
(WebCore::XPath::Value::Value):
* xml/XPathValue.h:
Added a constructor taking const char*, so that string literals and arrays don't
get converted to boolean values.
2007-01-29 Zack Rusin <zrusin@trolltech.com>
Cosmetic fixes - don't resize the widget in the constructor
(it was a hack from the initial port) and fix the paint
signature.
* platform/qt/ScrollViewCanvasQt.cpp:
(WebCore::ScrollViewCanvasQt::ScrollViewCanvasQt):
* platform/qt/WidgetQt.cpp:
(WebCore::Widget::paint):
2007-01-29 Maciej Stachowiak <mjs@apple.com>
- change from struct to class to make picky compilers happy
* loader/SubstituteData.h:
2007-01-30 Mark Rowe <mrowe@apple.com>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12458
Bug 12458: Crash in W3C-SVG-1.1/animate-elem-09-t.svg running layout tests under guard malloc
* ksvg2/svg/SVGAnimationElement.cpp:
(WebCore::parseValues): ptr either points to a ';' or off the end of the buffer. We're
interested in what comes before the ';', so start there instead.
2007-01-29 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars.
Take the scrollbars into considation when computing
the contents size of the main frame.
* platform/qt/PlatformScrollBarQt.cpp:
(WebCore::PlatformScrollbar::paint):
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::visibleWidth):
(WebCore::ScrollView::visibleHeight):
(WebCore::ScrollView::visibleContentRect):
* platform/qt/WidgetQt.cpp:
(WebCore::Widget::invalidate):
(WebCore::Widget::invalidateRect):
2007-01-29 Maciej Stachowiak <mjs@apple.com>
- fix includes
* loader/SubstituteData.h:
2007-01-29 Maciej Stachowiak <mjs@apple.com>
- added new file that I forgot in the last commit
* loader/SubstituteData.h: Added.
(WebCore::SubstituteData::SubstituteData):
(WebCore::SubstituteData::isValid):
(WebCore::SubstituteData::content):
(WebCore::SubstituteData::mimeType):
(WebCore::SubstituteData::textEncoding):
(WebCore::SubstituteData::failingURL):
2007-01-29 Maciej Stachowiak <mjs@apple.com>
Reviewed by Mark.
- made data loading cross-platform
- fixed <rdar://problem/4910106>
* WebCore.exp:
* WebCore.xcodeproj/project.pbxproj:
* loader/CachedResource.cpp:
* loader/CachedResource.h:
* loader/DocLoader.cpp:
(WebCore::DocLoader::requestResource):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::setRequest):
(WebCore::DocumentLoader::urlForHistory):
(WebCore::DocumentLoader::unreachableURL):
* loader/DocumentLoader.h:
(WebCore::DocumentLoader::substituteData):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::shouldReloadToHandleUnreachableURL):
(WebCore::FrameLoader::reloadAllowingStaleData):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::startLoadingMainResource):
(WebCore::FrameLoader::startLoading):
(WebCore::FrameLoader::checkNavigationPolicy):
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::willSendRequest):
(WebCore::MainResourceLoader::continueAfterContentPolicy):
(WebCore::MainResourceLoader::handleEmptyLoad):
(WebCore::MainResourceLoader::handleDataLoad):
(WebCore::MainResourceLoader::loadNow):
(WebCore::MainResourceLoader::load):
* loader/MainResourceLoader.h:
* loader/mac/DocumentLoaderMac.mm:
* loader/mac/WebDataProtocol.h: Removed.
* loader/mac/WebDataProtocol.mm: Removed.
* loader/qt/DocumentLoaderQt.cpp:
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::createDocumentLoader):
2007-01-29 Zack Rusin <zrusin@trolltech.com>
Order the build files alphabetically instead of
the random mess we had before.
* WebCore.pro:
2007-01-29 Zack Rusin <zack@kde.org>
Reviewed by Lars
Use the platform independent scrollbar code.
Remove the redundant empty stubs and forward
few missing platform scrollbar calls.
* WebCore.pro:
* platform/qt/PlatformScrollBarQt.cpp:
(WebCore::PlatformScrollbar::paint):
(WebCore::PlatformScrollbar::setRect):
2007-01-29 Lars Knoll <lars@trolltech.com>
Reviewed by Zack
Fix the way we handle native widgets (QWidget) inside
WebCore. Now WebCore::Widget owns the QWidget in all
cases. This is the only way to get well defined semantics
for all teh native widgets we have (currently ScrollView
and ScrollBar, but plugins will follow).
This has the side effect that one cannot rely on a defined
lifetime of a QWebFrame when using the API.
* platform/Widget.h:
* platform/qt/PlatformScrollBarQt.cpp:
(WebCore::PlatformScrollbar::PlatformScrollbar):
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::addChild):
(WebCore::ScrollView::removeChild):
* platform/qt/WidgetQt.cpp:
(WebCore::WidgetPrivate::WidgetPrivate):
(WebCore::WidgetPrivate::~WidgetPrivate):
(WebCore::Widget::qwidget):
2007-01-28 George Staikos <staikos@kde.org>
Reviewed by Maciej.
Don't send data during a redirect -> causes assert failure.
* platform/network/qt/ResourceHandleManagerQt.cpp:
(WebCore::ResourceHandleManager::receivedData):
2007-01-29 Mark Rowe <mrowe@apple.com>
Reviewed by Brady.
http://bugs.webkit.org/show_bug.cgi?id=11085
Bug 11085: REGRESSION: favicon.ico always looked for on port 80
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::iconURL): Copy the port over to the favicon URL.
2007-01-28 Adam Roben <aroben@apple.com>
Reviewed by Adele.
Fix http://bugs.webkit.org/show_bug.cgi?id=12453
REGRESSION(r19197): Tabbing into web page requires two key presses
All layout tests pass.
* page/FocusController.cpp:
(WebCore::FocusController::advanceFocus): If there's no focused frame,
actually go ahead and find a focusable node instead of just focusing
the main frame and quitting. This behavior was a holdover from a
previous desired tabbing behavior with respect to frames.
2007-01-28 David Kilzer <ddkilzer@webkit.org>
Reviewed by Darin and David Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12423
Mixing white-space:pre text with non white-space:pre text does not wrap properly
Test: fast/block/basic/white-space-pre-wraps.html
* rendering/bidi.cpp:
(WebCore::RenderBlock::findNextLineBreak): Wrap a non-wrapping text run if it
appears on a line with previous text runs that do wrap.
2007-01-28 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=8360
Repro crash when onscroll handler deletes the scrolled object
Test: fast/layers/removed-by-scroll-handler.html
* page/FrameView.cpp:
(WebCore::FrameViewPrivate::FrameViewPrivate): Added a m_enqueueEvents count.
(WebCore::FrameView::layout): Raise the enqueue count before starting layout and
until after enqueued events are dispatched.
(WebCore::FrameView::scheduleEvent): Made this function dispatch the event
immediately unless the enqueue count is positive.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollToOffset): Schedule the scroll event through the
FrameView.
(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::RenderLayer::updateScrollInfoAfterLayout):
(WebCore::Marquee::start):
2007-01-28 Charles Ying <charles_ying@yahoo.com>
Reviewed by eseidel. Landed by eseidel.
Fix http://bugs.webkit.org/show_bug.cgi?id=12429
animateTransform rotate, with cx/cy is broken
SVGTransform now contains a float point to store the rotation center, needed
to track rotation center for interpolation by animateTransform.
SVGTransform now has an additional constructor:
SVGTransform(type) to make empty base value transforms that match their
distanced values.
Removed m_colorDistance and m_transformDistance from their respective classes
as they are now computed at update time.
Fix a case where animateTransform did not parse transform values correctly
according to BNF in W3C spec:
Test case in:
* manual-tests/animation/animateTransform-toanimation.svg: Added.
Fix a case where animateTransform only specified a to animation only.
Test case in:
* manual-tests/animation/animateTransform-parser.svg: Added.
* ksvg2/svg/SVGAnimateColorElement.cpp:
(WebCore::SVGAnimateColorElement::updateAnimationBaseValueFromElement):
(WebCore::SVGAnimateColorElement::updateAnimatedValue):
(WebCore::SVGAnimateColorElement::calculateFromAndToValues):
* ksvg2/svg/SVGAnimateColorElement.h:
* ksvg2/svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::updateAnimatedValue):
(WebCore::SVGAnimateTransformElement::updateAnimationBaseValueFromElement):
(WebCore::SVGAnimateTransformElement::calculateFromAndToValues):
(WebCore::SVGAnimateTransformElement::parseTransformValue):
* ksvg2/svg/SVGAnimateTransformElement.h:
* ksvg2/svg/SVGTransform.cpp:
(SVGTransform::SVGTransform):
(SVGTransform::angle):
(SVGTransform::rotationCenter):
(SVGTransform::setTranslate):
(SVGTransform::setScale):
(SVGTransform::setRotate):
(SVGTransform::setSkewX):
(SVGTransform::setSkewY):
* ksvg2/svg/SVGTransform.h:
* ksvg2/svg/SVGTransformDistance.cpp:
(WebCore::SVGTransformDistance::SVGTransformDistance):
(WebCore::SVGTransformDistance::scaledDistance):
(WebCore::SVGTransformDistance::addSVGTransforms):
(WebCore::SVGTransformDistance::addSVGTransform):
(WebCore::SVGTransformDistance::addToSVGTransform):
(WebCore::SVGTransformDistance::distance):
* ksvg2/svg/SVGTransformDistance.h:
* manual-tests/animation/animateTransform-parser.svg: Added.
* manual-tests/animation/animateTransform-toanimation.svg: Added.
2007-01-27 Adam Roben <aroben@apple.com>
Reviewed by Ada.
Fix <rdar://problem/4957184> REGRESSION: After creating a new mail
message, the caret is automatically in message body
-[WebHTMLView _updateActiveState] was calling
FocusController::focusedOrMainFrame, which had the surprising
side-effect of setting the focused frame if there was none. The fix
was to remove this side-effect.
No tests possible, as this bug involves focus outside the WebView,
which we have no support for in DRT.
Change inspired by Dave Harrison.
* page/FocusController.cpp:
(WebCore::FocusController::focusedOrMainFrame): Removed this method's
non-obvious side-effect of setting the focused frame.
* WebCore.xcodeproj/project.pbxproj: Version wars.
2007-01-27 Don Gibson <dgibson77@gmail.com>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=11880: Improve some egregious
Windows form control drawing issues:
Provide Classic mode fallbacks for the button/textfield drawing
routines.
Provide some basic drawing of menulists (still relatively broken).
Some cleanup.
* platform/win/TemporaryLinkStubs.cpp:
(WebCore::RenderThemeWin::systemFont):
* rendering/RenderThemeWin.cpp:
(WebCore::m_menuListTheme):
(WebCore::RenderThemeWin::close):
(WebCore::RenderThemeWin::determineClassicState):
(WebCore::RenderThemeWin::getThemeData):
(WebCore::RenderThemeWin::paintButton):
(WebCore::RenderThemeWin::paintTextField):
(WebCore::RenderThemeWin::paintMenuList):
(WebCore::RenderThemeWin::paintMenuListButton):
* rendering/RenderThemeWin.h:
(WebCore::ThemeData::m_classicState):
(WebCore::RenderThemeWin::setRadioSize):
(WebCore::RenderThemeWin::paintTextArea):
2007-01-27 David Kilzer <ddkilzer@webkit.org>
Reviewed by Adam.
- fix http://bugs.webkit.org/show_bug.cgi?id=12260
Windows platform build is not maintained
* loader/win/FrameLoaderWin.cpp:
* platform/network/win/ResourceHandleWin.cpp:
* platform/win/TemporaryLinkStubs.cpp:
(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):
(WebCore::DocumentLoader::unreachableURL):
(WebCore::FrameLoader::redirectDataToPlugin):
(WebCore::FrameLoader::partClearedInBegin):
(WebCore::FrameLoader::createPlugin):
2007-01-27 Sam Weinig <sam@webkit.org>
Reviewed by Mitz.
- Patch for http://bugs.webkit.org/show_bug.cgi?id=11957
REGRESSION: Unordered List Bullets too big and changing from size
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::paint): Explicitly set the stroke size to 1.0f.
2007-01-27 Lars Knoll <lars@trolltech.com>
Fix the Qt build and disable the usage
of QScrollbars for PlatformScrollBar for
now as it causes crashes in the layout tests.
* WebCore.pro:
* ksvg2/svg/SVGTransformDistance.cpp:
* page/qt/FrameQt.cpp:
(WebCore::FrameQt::FrameQt):
(WebCore::FrameQt::bindingRootObject):
(WebCore::FrameQt::createRootObject):
* page/qt/FrameQt.h:
* platform/qt/PlatformScrollBarQt.cpp:
(WebCore::PlatformScrollbar::PlatformScrollbar):
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::addChild):
2007-01-27 David Kilzer <ddkilzer@kilzer.net>
Reviewed by NOBODY (buildbot build fix).
* ksvg2/svg/ColorDistance.cpp:
(WebCore::ColorDistance::scaledDistance): Added static cast of arguments to int.
2007-01-27 Rob Buis <buis@kde.org>
Reviewed by NOBODY (typo in method name fix).
* ksvg2/svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::addSVGWindowEventListener):
(WebCore::SVGSVGElement::parseMappedAttribute):
* ksvg2/svg/SVGSVGElement.h:
2007-01-27 Eric Seidel <eric@webkit.org>
Reviewed by olliej.
Fix support for SVG's <set> element.
Manual test added.
* ksvg2/svg/SVGSetElement.cpp:
(WebCore::SVGSetElement::updateAnimatedValue):
(WebCore::SVGSetElement::calculateFromAndToValues):
* ksvg2/svg/SVGSetElement.h:
* manual-tests/animation/set-to.svg: Added.
2007-01-27 Alexey Proskuryakov <ap@webkit.org>
Release build fix.
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::checkForHeadCharset):
2007-01-27 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12389
Chinese decoding error at hk.antispam.yahoo.com
Test: fast/encoding/noscript-in-head.html
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::checkForHeadCharset): We were already allowing
NOSCRIPT tags in head, let's actually skip over their content.
2007-01-26 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
Fixed <rdar://problem/4608404> WebScriptObject's _executionContext lack
of ownership policy causes crashes (e.g., in Dashcode)
Added RootObject ref-counting goodness.
* page/mac/FrameMac.h:
* page/mac/FrameMac.mm:
(WebCore::FrameMac::cleanupPluginObjects): Invalidate our RootObjects
instead of detroying them. Track _bindingRootObject separately from the
rest of our RootObjects, since it has its own variable.
* page/mac/WebCoreFrameBridge.mm:
(createRootObject): Use the Frame's new, more encapsulated function to
create a RootObject.
* bindings/objc/WebScriptObject.mm: Nixed rootObject setters, since they
were unused and they complicated reference-counting.
2007-01-26 David Kilzer <ddkilzer@webkit.org>
Reviewed by Eric.
Release build fix.
* ksvg2/svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::calculateValueIndexAndPercentagePast): Added static cast
to unsigned when calculating flooredValueIndex.
2007-01-26 Darin Adler <darin@apple.com>
- checked in slightly newer revision of the patch below
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
Grouped all the unimplemented values at the bottom. Fixed the ifdef for
CSS_PROP__WEBKIT_DASHBOARD_REGION so that it compiles on all platforms.
* css/cssparser.cpp: (WebCore::CSSParser::parseValue): Removed default
case and added type so that the compiler warns about missing properties.
* css/cssstyleselector.cpp: (WebCore::CSSStyleSelector::applyProperty): Ditto.
2007-01-26 Darin Adler <darin@apple.com>
Reviewed by Beth.
- fix http://bugs.webkit.org/show_bug.cgi?id=12412
"unimplemented propertyID: 46" seen at dojotoolkit.org
Covered by fast/css/computed-style.html
* css/CSSPropertyNames.in: Sorted the file into two separate sections, one
for properties without the -webkit- prefix and another for properties with.
* css/makeprop: Generate a CSSPropertyID enum instead of a set of #defines.
Removed unused CSS_PROP_MIN and CSS_PROP_MAX. Renamed CSS_PROP_TOTAL to
numCSSProperties and changed it to a const int instead of #define.
Added a declaration of getPropertyName in the header. Changed the return
type of getPropertyName to const char* and the parameter type to CSSPropertyID.
* css/CSSComputedStyleDeclaration.cpp: Sort the lists of properties in
an easier to maintain order -- properties without a WebKit prefix first.
(WebCore::valueForLength): Changed return value to PassRefPtr.
(WebCore::valueForMaxLength): Ditto.
(WebCore::valueForBorderStyle): Ditto.
(WebCore::valueForTextAlign): Ditto.
(WebCore::valueForAppearance): Added.
(WebCore::valueForMarginCollapse): Added.
(WebCore::valueForShadow): Changed return value to PassRefPtr.
(WebCore::getPositionOffsetValue): Ditto.
(WebCore::currentColorOrValidColor): Ditto.
(WebCore::CSSComputedStyleDeclaration::cssText): Added cast since
getPropertyName now takes an enum value.
(WebCore::primitiveValueFromLength): Changed return value to PassRefPtr.
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
Added cast to CSSPropertyID so that gcc will detect missing enums in the
switch statement. Simplified the background-size and border-spacing
implementations so they don't have local variables. Added lots of cases
to the switch statement for unimplemented properties. Implemented the
outline-width, box-sizing, -webkit-appearance, -webkit-rtl-ordering,
-webkit-user-drag, and -webkit-user-select properties.
(WebCore::CSSComputedStyleDeclaration::item): Added cast since
getPropertyName now takes an enum value.
* css/CSSMutableStyleDeclaration.cpp: Removed declaration of getPropertyName.
(WebCore::CSSMutableStyleDeclaration::item): Added cast since
getPropertyName now takes an enum value.
* css/CSSProperty.cpp: Removed declaration of getPropertyName.
(WebCore::CSSProperty::cssText): Added cast since
getPropertyName now takes an enum value and returns a const char*.
* css/CSSStyleDeclaration.cpp: Removed declaration of getPropertyName.
(WebCore::CSSStyleDeclaration::getPropertyShorthand): Added cast since
getPropertyName now takes an enum value and returns a const char*.
2007-01-26 Alice Liu <alice.liu@apple.com>
Reviewed by Brady.
Fixed <rdar://problem/4838076> CrashTracer: 10 crashes in Mail at com.apple.WebCore: WTF::HashMap<WebCore::String
* loader/DocLoader.cpp:
(WebCore::DocLoader::requestResource):
Added nil check around resource from cache.
2007-01-26 Adam Roben <aroben@apple.com>
Reviewed by Oliver.
Build fix.
* ksvg2/svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::calculateValueIndexAndPercentagePast):
Keep index variables as unsigned until we need to convert to float.
2007-01-26 Alice Liu <alice.liu@apple.com>
Reviewed by Ada.
Fixed <rdar://problem/4919097> REGRESSION: Ctrl-Y fails to yank (11076)
* editing/Editor.cpp:
(WebCore::Editor::deleteWithDirection):
If there's no selection, locally create a range that is to the end of the granularity unit and pass that to deleteRange().
2007-01-26 Sam Weinig <sam@webkit.org>
Reviewed by Maciej.
Qt build fix.
* page/qt/EventHandlerQt.cpp:
2007-01-26 Dex Deacon <occupant4@gmail.com>
Reviewed by Hyatt.
Fix so that we only relayout frameset children on calls to layout.
* page/FrameView.cpp:
(WebCore::FrameView::layout):
2007-01-26 Oliver Hunt <oliver@apple.com>
Build Fix
* ksvg2/svg/ColorDistance.cpp:
* ksvg2/svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::handleTimerEvent):
2007-01-26 Eric Seidel <eric@webkit.org>
Reviewed by olliej.
Add support for calcMode, keyTimes and (nearly) keySplines.
http://bugs.webkit.org/show_bug.cgi?id=12350
Re-architect much of the animation system to remove huge sections of code.
Added new ColorDistance, SVGTransformDistance to simplify animateColor, animateTransform calculations.
I also added basic <animateMotion> support since it was so easy w/ the new architecture.
Adding manual animation tests until bug 12074 is fixed.
* WebCore.xcodeproj/project.pbxproj:
* ksvg2/misc/SVGTimer.cpp:
(WebCore::SVGTimer::applyAnimations):
* ksvg2/svg/ColorDistance.cpp: Added.
(WebCore::ColorDistance::ColorDistance):
(WebCore::clampColorValue):
(WebCore::ColorDistance::scaledDistance):
(WebCore::ColorDistance::addColorsAndClamp):
(WebCore::ColorDistance::addToColorAndClamp):
(WebCore::ColorDistance::isZero):
(WebCore::ColorDistance::distance):
* ksvg2/svg/ColorDistance.h: Added.
* ksvg2/svg/SVGAnimateColorElement.cpp:
(WebCore::SVGAnimateColorElement::SVGAnimateColorElement):
(WebCore::SVGAnimateColorElement::updateAnimationBaseValueFromElement):
(WebCore::SVGAnimateColorElement::applyAnimatedValueToElement):
(WebCore::SVGAnimateColorElement::updateAnimatedValue):
(WebCore::SVGAnimateColorElement::calculateFromAndToValues):
* ksvg2/svg/SVGAnimateColorElement.h:
(WebCore::SVGAnimateColorElement::contextElement):
* ksvg2/svg/SVGAnimateElement.h:
(WebCore::SVGAnimateElement::updateAnimatedValue):
(WebCore::SVGAnimateElement::calculateFromAndToValues):
* ksvg2/svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::hasValidTarget):
(WebCore::SVGAnimateMotionElement::updateAnimatedValue):
(WebCore::parsePoint):
(WebCore::SVGAnimateMotionElement::calculateFromAndToValues):
(WebCore::SVGAnimateMotionElement::updateAnimationBaseValueFromElement):
(WebCore::SVGAnimateMotionElement::applyAnimatedValueToElement):
* ksvg2/svg/SVGAnimateMotionElement.h:
* ksvg2/svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::SVGAnimateTransformElement):
(WebCore::SVGAnimateTransformElement::updateAnimatedValue):
(WebCore::SVGAnimateTransformElement::updateAnimationBaseValueFromElement):
(WebCore::SVGAnimateTransformElement::applyAnimatedValueToElement):
(WebCore::SVGAnimateTransformElement::calculateFromAndToValues):
(WebCore::SVGAnimateTransformElement::parseTransformValue):
* ksvg2/svg/SVGAnimateTransformElement.h:
(WebCore::SVGAnimateTransformElement::contextElement):
* ksvg2/svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::parseKeyNumbers):
(WebCore::parseValues):
(WebCore::parseKeySplines):
(WebCore::SVGAnimationElement::parseMappedAttribute):
(WebCore::SVGAnimationElement::targetAttributeAnimatedValue):
(WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
(WebCore::SVGAnimationElement::detectAnimationMode):
(WebCore::adjustPercentagePastForKeySplines):
(WebCore::SVGAnimationElement::valueIndexAndPercentagePastForDistance):
(WebCore::SVGAnimationElement::calculateTotalDistance):
(WebCore::caculateValueIndexForKeyTimes):
(WebCore::SVGAnimationElement::isValidAnimation):
(WebCore::SVGAnimationElement::calculateValueIndexAndPercentagePast):
(WebCore::SVGAnimationElement::updateAnimationBaseValueFromElement):
(WebCore::SVGAnimationElement::applyAnimatedValueToElement):
(WebCore::SVGAnimationElement::handleTimerEvent):
(WebCore::SVGAnimationElement::updateAnimatedValueForElapsedSeconds):
* ksvg2/svg/SVGAnimationElement.h:
* ksvg2/svg/SVGParserUtilities.cpp:
(WebCore::SVGPolyParser::parsePoints):
* ksvg2/svg/SVGParserUtilities.h:
* ksvg2/svg/SVGSetElement.cpp:
* ksvg2/svg/SVGSetElement.h:
(WebCore::SVGSetElement::updateAnimatedValue):
(WebCore::SVGSetElement::calculateFromAndToValues):
* ksvg2/svg/SVGTransform.cpp:
(SVGTransform::type):
(SVGTransform::translate):
(SVGTransform::scale):
(SVGTransform::setSkewX):
(SVGTransform::setSkewY):
* ksvg2/svg/SVGTransform.h:
(WebCore::operator==):
(WebCore::operator!=):
* ksvg2/svg/SVGTransformDistance.cpp: Added.
(WebCore::SVGTransformDistance::SVGTransformDistance):
(WebCore::SVGTransformDistance::scaledDistance):
(WebCore::SVGTransformDistance::addSVGTransforms):
(WebCore::SVGTransformDistance::addSVGTransform):
(WebCore::SVGTransformDistance::addToSVGTransform):
(WebCore::SVGTransformDistance::isZero):
(WebCore::SVGTransformDistance::distance):
* ksvg2/svg/SVGTransformDistance.h: Added.
* ksvg2/svg/SVGTransformList.cpp:
(SVGTransformList::concatenateForType):
* ksvg2/svg/SVGTransformList.h:
* manual-tests/animation/animateColor-by.svg: Added.
* manual-tests/animation/animateColor-from-by.svg: Added.
* manual-tests/animation/animateColor-repeat-indefinite.svg: Added.
* manual-tests/animation/animateColor-to-from.svg: Added.
* manual-tests/animation/animateColor-to.svg: Added.
* manual-tests/animation/animateColor-values-simple.svg: Added.
* manual-tests/animation/animateMotion-to.svg: Added.
* manual-tests/animation/animateTransform-keyTimes.svg: Added.
* manual-tests/animation/animateTransform-repeat-once.svg: Added.
2007-01-26 Beth Dakin <bdakin@apple.com>
Reviewed by Darin.
Fix for <rdar://problem/4956565> REGRESSION: After scrolling frame,
hovering over link in this frame doesn't change cursor to pointing
hand
The mouseMove event was not being propagated correctly after using
the mouse to scroll the frame because m_mousePressed was never
getting set to false.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent): This code does not
belong here.
* page/EventHandler.h: lastEventIsMouseUp() is only ever relevant
in EventHandlerMac, so it can just be a static function there.
* page/mac/EventHandlerMac.mm:
(WebCore::lastEventIsMouseUp): Make this static.
(WebCore::EventHandler::passMouseDownEventToWidget): Here is where
we need to set m_mousePressed to false if lastEventIsMouseUp() is
true.
2007-01-26 David Hyatt <hyatt@apple.com>
Fix for style regression caused by strictness checking of the number of properties. This caused code like:
"width: 20 px" to fail, because we interpreted it as two values and rejected it. Our old code allowed 20 to be
used like a pixel value and then ignored the orphaned unit.
This patch actually scans the list of values looking for orphaned units and reattaches them to the numeric
values that they should correspond to. This means rules like "width: 5 em" will now work in quirks mdoe and
the "em" unit type will be honored.
Reviewed by beth
* WebCore.xcodeproj/project.pbxproj:
* css/cssparser.cpp:
(WebCore::unitFromString):
(WebCore::CSSParser::checkForOrphanedUnits):
(WebCore::CSSParser::parseValue):
* css/cssparser.h:
(WebCore::ValueList::valueAt):
(WebCore::ValueList::deleteValueAt):
2007-01-26 George Staikos <staikos@kde.org>
Reviewed by Zack.
Qt implementation.
* WebCore.pro:
* platform/qt/FontPlatformDataQt.cpp:
(WebCore::FontPlatformData::FontPlatformData):
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::scrollbarUnderMouse):
2007-01-26 Brady Eidson <beidson@apple.com>
Reviewed by Anders' rubberstamp
Warning about unreferenced formal parameter caused compile to fail
* platform/cf/RetainPtr.h:
(WebCore::adoptCFReference):
2007-01-26 Darin Adler <darin@apple.com>
Reviewed by Brady.
- fix <rdar://problem/4956688> move Mac-specific part of icon code into IconMac
- fix a GC-compatibility problem in the icon code I noticed by code inspection
* platform/FileChooser.cpp: (WebCore::FileChooser::chooseIcon): Removed Mac-specific
path check -- that's in newIconForFile now.
* platform/graphics/Icon.h: Changed the image to be a RetainPtr. The old code was
using -[NSObject retain] which is not good enough for a pointer in a C++ object.
* platform/graphics/mac/IconMac.mm:
(WebCore::Icon::Icon): Got rid of unneeded code to do what RetainPtr does for us.
(WebCore::Icon::~Icon): Ditto.
(WebCore::Icon::newIconForFile): Added check for non-absolute file names. Updated
for use of RetainPtr. Use constructor that takes NSImage.
(WebCore::Icon::paint): Add get() calls needed now that we are using a RetainPtr.
* WebCore.xcodeproj/project.pbxproj: Let Xcode do its thing.
2007-01-26 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12385
Assertion failure when loading subresources from "data:" frames
Test: fast/loader/opaque-base-url.html
* platform/KURL.cpp:
(WebCore::KURL::init): Make the URL invalid if it's relative, but has an opaque or empty base.
2007-01-26 Dex Deacon <occupant4@gmail.com>
Reviewed by Darin.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseMoveEvent):
Removed a call to invalidateClick(), since we don't want to cancel a
click if the mouse moves.
2007-01-26 Darin Adler <darin@apple.com>
* css/MediaQueryEvaluator.cpp:
(WebCore::MediaQueryEvaluator::mediaTypeMatchSpecific):
Oops, forgot a !.
2007-01-26 Darin Adler <darin@apple.com>
Patch by Nate Begeman.
Reviewed by Darin and Maciej.
- <rdar://problem/4946877> Avoid unnecessary allocations in CSS, patch attached (12401)
http://bugs.webkit.org/show_bug.cgi?id=12401
* css/MediaQueryEvaluator.h: Add mediaTypeMatchSpecific, a function that
takes a char* to avoid creating and destroying a String for simple media
type queries.
* css/MediaQueryEvaluator.cpp:
(WebCore::MediaQueryEvaluator::mediaTypeMatchSpecific): Added. Besides
avoiding the conversion to String, this also doesn't have the special
case code to handle "" and "all".
* css/cssstyleselector.cpp: (WebCore::CSSStyleSelector::matchUARules):
Call mediaTypeMatchSpecific here when deciding whether to use the
print version of the user agent style sheet.
* loader/Cache.cpp: (WebCore::Cache::requestResource): Don't convert to
a string and back to a KURL when calling createResource. Avoids reparsing
the URL string.
2007-01-26 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Add history related classes to the project file.
* WebCore.pro:
2007-01-26 Zack Rusin <zack@kde.org>
Reviewed by Lars
Introduce PlatformScrollBar and try to make
the scrollbar behavior a little more sane.
* WebCore.pro:
* platform/qt/PlatformScrollBarQt.cpp: Added.
(WebCore::Scrollbar::Scrollbar):
(WebCore::Scrollbar::setSteps):
(WebCore::Scrollbar::scroll):
(WebCore::Scrollbar::setValue):
(WebCore::Scrollbar::setProportion):
(WebCore::PlatformScrollbar::PlatformScrollbar):
(WebCore::PlatformScrollbar::~PlatformScrollbar):
(WebCore::PlatformScrollbar::width):
(WebCore::PlatformScrollbar::height):
(WebCore::PlatformScrollbar::setEnabled):
(WebCore::PlatformScrollbar::paint):
(WebCore::PlatformScrollbar::updateThumbPosition):
(WebCore::PlatformScrollbar::updateThumbProportion):
(WebCore::PlatformScrollbar::setRect):
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::addChild):
* platform/qt/TemporaryLinkStubs.cpp:
(WebCore::PlatformMouseEvent::PlatformMouseEvent):
2007-01-26 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=11109
REGRESSION (r15471): menus are offset on eink.com
<rdar://problem/4824760>
Changed offset{Left,Top} to match Firefox. If the body element is statically
positioned, it is still returned as the offsetParent of elements whose containing
block is the initial containing block (the root), but their offset{Left,Top} are
relative to the root. If the body element is positioned, then offsets are relative
to it. The body's own offset{Left,Top} are always 0.
Test: fast/dom/Element/offsetLeft-offsetTop-body-quirk.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::offsetLeft):
(WebCore::RenderObject::offsetTop):
2007-01-26 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin and Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=10983
REGRESSION (r12290): Drop shadow of flickr photo note is positioned incorrectly the second time it's shown
Test: fast/dynamic/staticY.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutPositionedObjects): Avoid marking the object's
parents, since they have already been laid out.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::setStaticY): Added a call to setChildNeedsLayout() to
ensure relayout by this box's container (third and fourth cases in the
layout test).
* rendering/RenderBox.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::markContainingBlocksForLayout): For positioned objects
with static y, also mark the object's parent to ensure that it recomputes
the static y value (first case in the layout test).
2007-01-26 Lars Knoll <lars@trolltech.com>
Reviewed by Zack
Get rid of FrameQtClient. It's unused since we moved over
to the loader.
* WebCore.pro:
* page/qt/FrameQt.cpp:
(WebCore::FrameQt::FrameQt):
* page/qt/FrameQt.h:
* page/qt/FrameQtClient.cpp: Removed.
* page/qt/FrameQtClient.h: Removed.
* platform/network/ResourceHandleInternal.h:
* platform/network/qt/ResourceHandleManagerQt.cpp:
(WebCore::RequestQt::RequestQt):
(WebCore::ResourceHandleManager::add):
* platform/network/qt/ResourceHandleManagerQt.h:
* platform/network/qt/ResourceHandleQt.cpp:
(WebCore::ResourceHandle::start):
2007-01-26 Zack Rusin <zack@kde.org>
Fix the compile
* WebCore.pro:
2007-01-26 Adam Roben <aroben@apple.com>
Reviewed by Maciej.
Fixed <rdar://problem/4946499>, which made it impossible to tab
forward into the left frame of tivofaq.com after tabbing out of the
document.
* page/FocusController.cpp:
(WebCore::FocusController::advanceFocus): Clear the focused frame
before passing off focus to Chrome so that when we re-enter the
document we start at the main frame instead of the last focused frame.
2007-01-25 Rob Buis <buis@kde.org>
Reviewed by olliej.
http://bugs.webkit.org/show_bug.cgi?id=11911
SVG exhibits double-text-selection behavior
Fix selection height of the inline text boxes for svg.
* WebCore.xcodeproj/project.pbxproj:
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::selectionTop):
(WebCore::InlineTextBox::selectionHeight):
(WebCore::InlineTextBox::selectionRect):
(WebCore::InlineTextBox::paintSelection):
(WebCore::InlineTextBox::paintMarkedTextBackground):
(WebCore::InlineTextBox::paintCustomHighlight):
(WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
(WebCore::InlineTextBox::paintTextMatchMarker):
* rendering/InlineTextBox.h:
* rendering/RenderSVGInlineText.cpp:
(WebCore::RenderSVGInlineText::createInlineTextBox):
* rendering/RenderSVGInlineText.h:
* rendering/RenderText.cpp:
(WebCore::RenderText::createInlineTextBox):
(WebCore::RenderText::createInlineBox):
* rendering/RenderText.h:
* rendering/SVGInlineTextBox.cpp: Added.
(WebCore::SVGInlineTextBox::selectionTop):
(WebCore::SVGInlineTextBox::selectionHeight):
* rendering/SVGInlineTextBox.h: Added.
(WebCore::SVGInlineTextBox::SVGInlineTextBox):
2007-01-26 Zack Rusin <zack@kde.org>
Reviewed by Lars
Fix drawing of tiled images.
* WebCore.pro:
* platform/graphics/qt/ImageQt.cpp:
(WebCore::BitmapImage::drawPattern):
2007-01-26 Zack Rusin <zack@kde.org>
Reviewed by Lars
Fixing image loading - we decode QImages
but render QPixmaps now. Implement Icon
class
* platform/graphics/BitmapImage.h:
* platform/graphics/Icon.h:
* platform/graphics/Image.h:
(WebCore::Image::getPixmap):
* platform/graphics/qt/IconQt.cpp:
(WebCore::Icon::Icon):
(WebCore::Icon::~Icon):
(WebCore::Icon::newIconForFile):
(WebCore::Icon::paint):
* platform/graphics/qt/ImageDecoderQt.cpp:
(WebCore::ImageDecoderQt::ImageData::ImageData):
(WebCore::ImageDecoderQt::ReadContext::read):
(WebCore::ImageDecoderQt::ReadContext::readImageLines):
(WebCore::ImageDecoderQt::reset):
(WebCore::ImageDecoderQt::imageAtIndex):
* platform/graphics/qt/ImageDecoderQt.h:
* platform/graphics/qt/ImageQt.cpp:
(WebCore::BitmapImage::drawPattern):
(WebCore::BitmapImage::getPixmap):
* platform/graphics/qt/ImageSourceQt.cpp:
(WebCore::ImageSource::createFrameAtIndex):
2007-01-25 Justin Garcia <justin.garcia@apple.com>
Reviewed by oliver
<http://bugs.webkit.org/show_bug.cgi?id=12409>
REGRESSION (r19039): Drag caret isn't cleared after a drop
No new layout tests because the regression was
caught by current layout tests.
* page/DragController.cpp:
(WebCore::DragController::concludeDrag): Clear the drag caret.
2007-01-25 Darin Adler <darin@apple.com>
Reviewed and landed by Geoffrey Garen.
- fix http://bugs.webkit.org/show_bug.cgi?id=12342
REGRESSION: destroying a frame from its own script causes various crashes
* bindings/js/kjs_window.cpp: (KJS::ScheduledAction::execute):
Use RefPtr for the frame and the interpreter object so they don't get deleted
out from underneath us.
* bindings/js/kjs_proxy.cpp: (WebCore::KJSProxy::evaluate):
Add a check for a page of 0. This was the only call site for the
addMessageToConsole function that did not have a check for a page of 0.
2007-01-25 Dirk Mueller <mueller@kde.org>
Reviewed and merged by Beth.
Fix for <rdar://problem/4921692> not processing comments inside a
title element leads to XSS (for at least BlogSpot)
This is equivalent to commit 626791 in the KDE tree. Basically, the
patch allows comment parsing in titles to avoid capturing a
<script> tag by accident.
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::parseSpecial):
(WebCore::HTMLTokenizer::parseComment):
2007-01-25 Darin Adler <darin@apple.com>
* ksvg2/svg/SVGPreserveAspectRatio.cpp: Add a couple of comments.
2007-01-25 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=12365
Reproducible crash in WebCore::SVGPreserveAspectRatio::parsePreserveAspectRatio
in svg/W3C-SVG-1.1/animate-elem-40-t.svg under guard malloc
- fix bug where the parser accepts "meet" or "slice" as an entire string
- fix bug where "slice" is ignored if the old alignment was "none"
even if the newly-parsed alignment is something other than "none", and
"slice" is not ignored if the old alignment was not "none", but the
newly-parsed alignment is "none"
- optimize to only call notifyAttributeChange if the attribute actually changed
Test: svg/dom/preserve-aspect-ratio-parser-test.html
* ksvg2/svg/SVGPreserveAspectRatio.cpp:
(WebCore::checkString): Added an overload for using char* constants which is
much simpler than the old one, and almost as fast.
(WebCore::SVGPreserveAspectRatio::parsePreserveAspectRatio): Fail if there's no
more text after "defer". Fail if there's neither "none" nor an x/y specified.
Check that there's more text before looking at the "m" and "s" for "meet" and
"slice". Merged the failure and success cases. Only call notifyAttributeChange
if something changed.
I think all the "optimized" code where we check the first character before
calling checkString isn't really helpful, but I decided to leave it as-is
for now.
2007-01-25 Lars Knoll <lars@trolltech.com>
Reviewed by Zack
Trivial implementation of getMIMETypeForExtension.
Use the above method in the ResourceHandleManager to set
a mimetype on Resources that don't have one set (which
includes everything loaded from local disk).
Should fix quite a few test cases :)
* platform/network/qt/ResourceHandleManagerQt.cpp:
(WebCore::ResourceHandleManager::receivedResponse):
* platform/qt/MimeTypeRegistryQt.cpp:
(WebCore::):
(WebCore::MimeTypeRegistry::getMIMETypeForExtension):
2007-01-25 Harald Fernengel <harald@trolltech.com>
Reviewed by zack
Compile on platforms where qreal is not a double.
* platform/graphics/qt/AffineTransformQt.cpp:
(WebCore::AffineTransform::map):
2007-01-25 Zack Rusin <zack@kde.org>
Reviewed by Lars.
Add wheel event handling and make explicit usage
of the EventHandler.
* WebCore.pro:
* page/qt/EventHandlerQt.cpp:
(WebCore::EventHandler::focusDocumentView):
(WebCore::EventHandler::passWidgetMouseDownEventToWidget):
(WebCore::EventHandler::passMouseDownEventToWidget):
(WebCore::EventHandler::lastEventIsMouseUp):
(WebCore::EventHandler::handleMouseUp):
* platform/PlatformWheelEvent.h:
* platform/qt/ScrollViewCanvasQt.cpp:
(WebCore::ScrollViewCanvasQt::ScrollViewCanvasQt):
(WebCore::ScrollViewCanvasQt::mousePressEvent):
(WebCore::ScrollViewCanvasQt::wheelEvent):
(WebCore::ScrollViewCanvasQt::dragEnterEvent):
(WebCore::ScrollViewCanvasQt::dragLeaveEvent):
(WebCore::ScrollViewCanvasQt::dragMoveEvent):
* platform/qt/ScrollViewCanvasQt.h:
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::wheelEvent):
* platform/qt/WheelEventQt.cpp: Added.
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
2007-01-25 Rob Buis <buis@kde.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12391
SVG containers with viewports should respect overflow when hit testing
Take into account the overflow property when hit testing <svg>.
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::nodeAtPoint):
2007-01-23 Alice Liu <alice.liu@apple.com>
Reviewed by Maciej.
fixed <rdar://problem/4808039> REGRESSION: eBay ID check never completes
Also known as http://bugs.webkit.org/show_bug.cgi?id=11230
* bindings/js/kjs_window.cpp:
It's not necessary to check safeScript when doing a location.replace, .reload, or .assign
(KJS::Location::getOwnPropertySlot):
(KJS::LocationFunc::callAsFunction):
2007-01-25 Alice Liu <alice.liu@apple.com>
Reviewed by Geoff and Adele.
fixed <rdar://problem/4866655> REGRESSION: Copying out of Calculator & CIFIlterWidget is broken on 9A320
* editing/Editor.cpp:
(WebCore::Editor::canDHTMLCut):
(WebCore::Editor::canDHTMLCopy):
(WebCore::Editor::tryDHTMLCopy):
(WebCore::Editor::tryDHTMLCut):
Reverting some mistakes made in r17504:
Anything in r17503 that used to call mayDHTML* still calls canDHTML* as it was changed in r17504, where canDHTML* now calls !selectionController::isInPasswordField instead of editor::canCopy
Anything else in r17503 that used to call mayCopy now calls (!)selectionController::isInPasswordField.
* editing/JSEditor.cpp:
copy via JS should be enabled as long as selection is not in a password field. a range selection shouldn't be required.
2007-01-24 Adele Peterson <adele@apple.com>
Reviewed by Brady and Oliver.
Fix for <rdar://problem/4953504> When the keydown event changes focus, the keypress event should go to the new focused node
Test: fast/events/keydown-keypress-focus-change.html
* page/EventHandler.cpp:
(WebCore::eventTargetNodeForDocument): Added for convenience.
(WebCore::EventHandler::keyEvent): Moved from EventHandlerMac.mm. After dispatching the keyDown event,
recheck the target node for the keyPress event in case its changed.
* page/EventHandler.h:
* page/mac/EventHandlerMac.mm: (WebCore::EventHandler::keyEvent):
Moved the bulk of this code to EventHandler.cpp.
2007-01-24 Geoffrey Garen <ggaren@apple.com>
New forwarding header. No review necessary.
* ForwardingHeaders/kjs/ustring.h: Added.
2007-01-24 Oliver Hunt <oliver@apple.com>
Reviewed by Maciej.
Migrating more drag state information to WebCore
* page/DragController.cpp:
* page/DragController.h:
(WebCore::DragController::dragOperation):
(WebCore::DragController::setDraggingImageURL):
(WebCore::DragController::draggingImageURL):
(WebCore::DragController::setDragOffset):
(WebCore::DragController::dragOffset):
2007-01-24 Darin Adler <darin@apple.com>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=12331
REGRESSION(r18951): Selecting text in a textarea makes the page scroll
Test: fast/events/autoscroll.html
* rendering/RenderLayer.cpp: (WebCore::RenderLayer::autoscroll):
Adjust position to be relative to the object's corner for the hit test, but not for the
scrollRectToVisible call. The previous version accidentally re-used the version that was
adjusted for the hit test.
2007-01-24 Beth Dakin <bdakin@apple.com>
Reviewed by Geoff.
Fix for <rdar://problem/4948128> REGRESSION: A crash occurs at
WebCore::Frame::view() after completing a query at mapquest.com
then switching to Bookmarks view
This is just a null-check. If you are in strict mode and ask for
the clientWidth or clientHeight after the document was removed from
it's parent, we no longer have a frameView, so we have to null-
check it. I added null checks for the FrameView in some other
places where it seems like we could potentially run into this
issue.
* bindings/objc/DOMHTML.mm:
(-[DOMHTMLInputElement _rectOnScreen]):
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject accessibilityAttributeValue:]):
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::getUpperLeftCorner):
* dom/Element.cpp:
(WebCore::Element::clientWidth): Actual bug fix here!
(WebCore::Element::clientHeight): And here!
* ksvg2/svg/SVGLength.cpp:
(WebCore::SVGLength::PercentageOfViewport):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::createJavaAppletWidget):
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge computePageRectsWithPrintWidthScaleFactor:printHeight:]):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::windowClipRect):
(WebCore::RenderLayer::updateOverflowStatus):
(WebCore::frameVisibleRect):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::windowClipRect):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout):
2007-01-24 Maciej Stachowiak <mjs@apple.com>
Not reviewed, just removing accidentally committed file.
- removed file that shouldn't be there
* Image Viewer/Image Viewer.aps: Removed.
2007-01-24 Anders Carlsson <acarlsson@apple.com>
Reviewed by Geoff and Adam.
<rdar://problem/4922655>
http://galeri.milliyet.com.tr/ reproducibly crashes Safari
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::requestFrame):
If the frame already exists, defer the navigation so that we won't end up replacing the document
while we're parsing it. This is similar to what setting window.location ends up doing.
2007-01-25 Mark Rowe <mrowe@apple.com>
Reviewed by Darin.
* Info.plist: Update copyright string.
2007-01-24 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/4916235>
eBay Editor: Crash occurs at WebCore::Range::startPosition() after applying ordered list styling to selected text
<rdar://problem/4857269>
REGRESSION: editing/execCommand/create-list-from-range-selection.html no longer works as intended
<rdar://problem/4916583>
eBay Editor: Removing a indent from a list item actually deletes the list item instead
<rdar://problem/4928635>
designMode outdent causes crash (11750)
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs): Fixed br insertion
after the pruning of empty containers left over after the paragraph
to move is removed.
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::DeleteSelectionCommand): There are
bugs that leave the wrong number of line breaks after a deletion
that expands to include special elements (lists/tables). Added
a workaround so that moveParagraphs can avoid these until they
are fixed.
(WebCore::DeleteSelectionCommand::initializeStartEnd): Ditto.
(WebCore::DeleteSelectionCommand::initializePositionData): Ditto.
* editing/DeleteSelectionCommand.h:
* editing/TextIterator.cpp:
(WebCore::TextIterator::advance): We used to not call exitNode for
ancestors of a node where the next node in a pre-order traversal is
the ranges's pastEndNode(). This is only correct for ancestors that
contain the end of the range.
(WebCore::shouldEmitNewlineAfterNode): Added, we should only emit newlines
after blocks that have VisiblePositions after them. VisiblePosition creation
though is too expensive to do here, what I added here is an OK substitute.
(WebCore::shouldEmitNewlineBeforeNode): Added. No special logic yet.
(WebCore::TextIterator::handleNonTextNode): Call shouldEmitNewlineBeforeNode.
(WebCore::TextIterator::exitNode): Call shouldEmitNewlineAfterNode.
(WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode): Call
shouldEmitNewlineAfterNode.
2007-01-24 Darin Adler <darin@apple.com>
Reviewed by Mark Rowe.
* WebCore.xcodeproj/project.pbxproj: Changed to /usr/sbin/sysctl
so we don't rely on people's paths.
2007-01-24 Darin Adler <darin@apple.com>
Reviewed by Adele.
- a couple minor tweaks to recently-changed things
* dom/Document.h: Use HTMLHeadElement as type for the head function.
* dom/Document.cpp: (WebCore::Document::head):
* ksvg2/svg/SVGElementInstance.cpp:
(WebCore::SVGElementInstance::~SVGElementInstance): Change loop to
a for loop and use a local variable for document.
2007-01-24 Oliver Hunt <oliver@apple.com>
Reviewed by Adele.
Fixes DragController to allow a null target Document.
This is encountered in new tabs/windows that have not
loaded any page
* page/DragController.cpp:
(WebCore::documentAtPoint):
(WebCore::DragController::tryDocumentDrag):
(WebCore::DragController::operationForLoad):
(WebCore::DragController::concludeDrag):
* page/mac/DragControllerMac.mm:
(WebCore::DragController::dragOperation):
2007-01-24 Sam Weinig <sam@webkit.org>
Reviewed by Mitz.
Patch for http://bugs.webkit.org/show_bug.cgi?id=12394
Cleanup RenderBox
No functionality changes, just a good old fashion cleanup,
thus no tests.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::RenderBox):
(WebCore::RenderBox::setStyle):
(WebCore::RenderBox::destroy):
(WebCore::RenderBox::setPos):
(WebCore::RenderBox::calcBorderBoxWidth):
(WebCore::RenderBox::calcBorderBoxHeight):
(WebCore::RenderBox::calcContentBoxWidth):
(WebCore::RenderBox::calcContentBoxHeight):
(WebCore::RenderBox::nodeAtPoint):
(WebCore::RenderBox::paintRootBoxDecorations):
(WebCore::RenderBox::paintBoxDecorations):
(WebCore::RenderBox::paintBackgrounds):
(WebCore::RenderBox::paintBackground):
(WebCore::cacluateBackgroundSize):
(WebCore::RenderBox::paintBackgroundExtended):
(WebCore::RenderBox::getOverflowClipRect):
(WebCore::RenderBox::getClipRect):
(WebCore::RenderBox::containingBlockWidth):
(WebCore::RenderBox::absolutePosition):
(WebCore::RenderBox::dirtyLineBoxes):
(WebCore::RenderBox::position):
(WebCore::RenderBox::getAbsoluteRepaintRect):
(WebCore::RenderBox::computeAbsoluteRepaintRect):
(WebCore::RenderBox::repaintDuringLayoutIfMoved):
(WebCore::RenderBox::relativePositionOffsetX):
(WebCore::RenderBox::relativePositionOffsetY):
(WebCore::RenderBox::calcWidth):
(WebCore::RenderBox::calcWidthUsing):
(WebCore::RenderBox::sizesToIntrinsicWidth):
(WebCore::RenderBox::calcHorizontalMargins):
(WebCore::RenderBox::calcHeight):
(WebCore::RenderBox::calcPercentageHeight):
(WebCore::RenderBox::calcReplacedWidthUsing):
(WebCore::RenderBox::calcReplacedHeightUsing):
(WebCore::RenderBox::availableHeightUsing):
(WebCore::RenderBox::calcVerticalMargins):
(WebCore::RenderBox::containingBlockWidthForPositioned):
(WebCore::RenderBox::calcAbsoluteHorizontal):
(WebCore::RenderBox::calcAbsoluteHorizontalValues):
(WebCore::RenderBox::calcAbsoluteVertical):
(WebCore::RenderBox::calcAbsoluteVerticalValues):
(WebCore::RenderBox::calcAbsoluteHorizontalReplaced):
(WebCore::RenderBox::caretRect):
* rendering/RenderBox.h:
(WebCore::RenderBox::setOverrideSize):
(WebCore::RenderBox::width):
(WebCore::RenderBox::height):
(WebCore::RenderBox::setWidth):
(WebCore::RenderBox::setHeight):
(WebCore::RenderBox::inlineBoxWrapper):
(WebCore::RenderBox::setInlineBoxWrapper):
(WebCore::RenderBox::stretchesToViewHeight):
(WebCore::RenderBox::setStaticX):
(WebCore::RenderBox::setStaticY):
2007-01-24 Eric Seidel <eric@webkit.org>
Reviewed by ap.
Converted SVGTransform from being Shared<T> to a POD type.
No functional changes, thus no tests.
* bindings/scripts/CodeGenerator.pm:
* bindings/scripts/CodeGeneratorJS.pm:
* ksvg2/misc/SVGTimer.cpp:
(WebCore::baseValueTransformList):
* ksvg2/svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::storeInitialValue):
(WebCore::SVGAnimateTransformElement::resetValues):
(WebCore::SVGAnimateTransformElement::updateCurrentValue):
(WebCore::SVGAnimateTransformElement::handleStartCondition):
(WebCore::SVGAnimateTransformElement::applyAnimationToValue):
(WebCore::SVGAnimateTransformElement::parseTransformValue):
* ksvg2/svg/SVGAnimateTransformElement.h:
* ksvg2/svg/SVGLinearGradientElement.cpp:
(WebCore::SVGLinearGradientElement::collectGradientProperties):
* ksvg2/svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::collectPatternProperties):
* ksvg2/svg/SVGRadialGradientElement.cpp:
(WebCore::SVGRadialGradientElement::collectGradientProperties):
* ksvg2/svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::createSVGTransform):
(WebCore::SVGSVGElement::createSVGTransformFromMatrix):
* ksvg2/svg/SVGSVGElement.h:
* ksvg2/svg/SVGStyledTransformableElement.cpp:
(WebCore::SVGStyledTransformableElement::updateLocalTransform):
* ksvg2/svg/SVGTextElement.cpp:
(WebCore::SVGTextElement::updateLocalTransform):
* ksvg2/svg/SVGTransform.cpp:
(SVGTransform::SVGTransform):
(SVGTransform::isValid):
* ksvg2/svg/SVGTransform.h:
* ksvg2/svg/SVGTransform.idl:
* ksvg2/svg/SVGTransformList.cpp:
(SVGTransformList::SVGTransformList):
(SVGTransformList::createSVGTransformFromMatrix):
(SVGTransformList::consolidate):
(SVGTransformList::concatenate):
* ksvg2/svg/SVGTransformList.h:
* ksvg2/svg/SVGTransformable.cpp:
(WebCore::SVGTransformable::parseTransformAttribute):
2007-01-24 Mark Rowe <mrowe@apple.com>
Reviewed by Eric.
Plug another bunch of SVG memory leaks.
* ksvg2/misc/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::~SVGDocumentExtensions): Delete memory we have allocated.
(WebCore::SVGDocumentExtensions::removePendingResource): Return an auto_ptr to show that we are transferring ownership.
* ksvg2/misc/SVGDocumentExtensions.h:
* ksvg2/svg/SVGElement.cpp:
(WebCore::SVGElement::insertedIntoDocument): Update for use of auto_ptr.
2007-01-23 Mark Rowe <mrowe@apple.com>