=== Safari-521.25 === 2006-07-28 Timothy Hatcher Merging CCC approved change from TOT to Safari-521 branch. 2006-07-28 Timothy Hatcher Reviewed by John. Adding isContentEditable to DOMNode's private category. * bindings/objc/DOMPrivate.h: === Safari-521.24 === 2006-07-27 Timothy Hatcher Merging CCC approved change from TOT to Safari-521 branch. 2006-07-26 Justin Garcia Reviewed by darin REGRESSION: Can't change size or style of any text in message body * dom/Node.cpp: (WebCore::Node::isContentRichlyEditable): Mimic Node::isContentEditable. * html/HTMLElement.cpp: (WebCore::HTMLElement::isContentRichlyEditable): First check the frame for editability, then userModify, like what HTMLElement::isContentEditable() does. * html/HTMLElement.h: 2006-07-27 Timothy Hatcher Merging CCC approved change from TOT to Safari-521 branch. 2006-07-26 Alice Liu Reviewed by John Sullivan (and Kevin and Timo). landing this patch for John et al. Fixed REGRESSION (9A232->9A234): existing web clips don't render if you restart Dashboard * page/FrameView.cpp: (WebCore::FrameView::layout): moved the call to didFirstLayout to above the check for needsLayout because we need to call didFirstLayout for every webview, not just ones we think need layout. 2006-07-27 Timothy Hatcher Merging CCC approved change from TOT to Safari-521 branch. 2006-07-25 Justin Garcia Reviewed by darin Incoming HTML message is editable * dom/Document.cpp: (WebCore::Document::inDesignMode): Removed some spaces. * page/Frame.cpp: (WebCore::Frame::applyEditingStyleToElement): Just add CSS properties needed for editing. (WebCore::Frame::removeEditingStyleFromElement): Made this a no-op, we'll remove it eventually. === Safari-521.23 === 2006-07-26 Timothy Hatcher Merging CCC approved change from TOT to Safari-521 branch. 2006-07-25 David Harrison Reviewed by timo and Darin. "Paste and Match Style" is not working in Mail (add SPI) * WebCore.xcodeproj/project.pbxproj: * bridge/mac/WebCoreFrameBridge.h: * bridge/mac/WebCoreFrameBridge.mm: (-[WebCoreFrameBridge replaceSelectionWithNode:selectReplacement:smartReplace:matchStyle:]): Add matchStyle parameter for use by WebKit. === Safari-521.22 === 2006-07-25 Timothy Hatcher Merging CCC approved change from TOT to Safari-521 branch. 2006-07-24 Adele Peterson Reviewed by Justin. - Fix for Changing style of content with mixed editability fails Test: * editing/style/apple-style-editable-mix.html * dom/Node.cpp: (WebCore::Node::isContentRichlyEditable): Doesn't need to check the editable root. It now just checks the user modify property of its own renderer, since that is inherited. * editing/ApplyStyleCommand.cpp: (WebCore::ApplyStyleCommand::applyInlineStyle): If the end position is in a table, Adjust the end node to the last descendant of the table, so we don't skip over any runs. 2006-07-25 Timothy Hatcher Merging CCC approved change from TOT to Safari-521 branch. 2006-07-24 David Hyatt Two bug fixes. (1) Make sure to mark positioned objects that depend on line position to mark themselves as needing layout when their line box placeholder gets repositioned. * rendering/RenderBox.cpp: (WebCore::RenderBox::position): (2) Improve highlighting to factor the inflation into overflow so that invalidation and repainting will work properly. * rendering/RootInlineBox.cpp: (WebCore::RootInlineBox::addHighlightOverflow): * rendering/RootInlineBox.h: * rendering/bidi.cpp: (WebCore::RenderBlock::layoutInlineChildren): 2006-07-25 Timothy Hatcher Merging CCC approved change from TOT to Safari-521 branch. 2006-07-24 Anders Carlsson Reviewed by Adele. REGRESSION: Wikipedia widget fails to complete a search after pressing return key * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler): Don't eat enter events for search fields that have no enclosing form; they need to be passed to AppKit so that onsearch can be invoked. * manual-tests/onsearch-enter.html: Added. === Safari-521.21 === 2006-07-24 Mitz Pettel Reviewed by Darin. - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=10083 REGRESSION (r15584): editing/selection/select-from-textfield-outwards failing * rendering/RenderBlock.cpp: (WebCore::RenderBlock::positionForCoordinates): Added back change from the fix for bug 9312: For coordinates outside a replaced object, return the position just before (after) the element if the coordinates are above or to the left (below or to the right). 2006-07-23 Alice Liu Reviewed by Adele. Actually Adele figured out how to fix the layout test failures. Landing this patch for her. Layout test failures exposed but not caused by r15584 (my patch earlier today). * editing/visible_units.cpp: (WebCore::previousLinePosition): When setting selection endpoints, don't traverse down into nodes where editing would ignore its contents. Use the parent node instead. (WebCore::nextLinePosition): same as above 2006-07-23 David Harrison Reviewed by timo. Mail crash editing To Do - WebCore::InsertTextCommand::prepareForTextInsertion * Test: editing/deleting/delete-mixed-editable-content-001.html * editing/visible_units.cpp: (WebCore::startOfParagraph): Respect editable boundary the same way endOfParagraph does. 2006-07-23 Beth Dakin Reviewed by Maciej. (Patch by me, Maciej, and Harrison.) Fix for WebCore crashes when pasting rich text - WebCore::InlineBox::root() The initial rendering crash was due to a render object having a stale reference to an inline box that had already been deleted and then recreated in the exact same location in memory. (Crazy, I know.) The situation seemed pretty specific to list markers according to Hyatt according to Maciej, so that is what I patched specifically. Fixing this crash unearthed a separate editing crash where we were trying to insert a block into itself. I worked on that with Maciej and Harrison, and Harrison came up with a fix. * editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): This is the fix for the editing crash. If paragraphStart is an atomic node, insert the new block into the parent instead. * rendering/InlineBox.cpp: (WebCore::InlineBox::isChildOfParent): This function is for posterity. It will help keep the linebox tree in check. * rendering/InlineBox.h: * rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::addToLine): Added assert. (WebCore::InlineFlowBox::deleteLine): Added assert. * rendering/ListMarkerBox.cpp: (WebCore::ListMarkerBox::destroy): If this has a parent, call removeChild on this. (WebCore::ListMarkerBox::operator delete): * rendering/ListMarkerBox.h: 2006-07-23 Alice Liu Reviewed by Darin. fixed REGRESSION (NativeTextField): You can move keyboard focus to a field without getting insertion point * rendering/RenderBlock.cpp: (WebCore::RenderBlock::positionForCoordinates): removed some unnecessary vertical position checks and added a fudge factor to be more forgiving for clicks near lines. * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::nodeAtPoint): added implementation * rendering/RenderTextControl.h: added function protocol 2006-07-23 Adele Peterson Reviewed by Darin. Updating fix from last checkin. * rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::layoutVerticalBox): Only tell the view about this flexbox if there isn't another flexbox already cached. 2006-07-23 Adele Peterson Reviewed by Maciej. - Fix for REGRESSION: Typing, pasting or dragging in new text areas causes unnecessary scrolling * rendering/RenderBlock.cpp: (WebCore::RenderBlock::layoutBlock): Don't updateScrollInfoAfterLayout if an ancestor flexible box is just on its first layout. * rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::layoutBlock): ditto. (WebCore::RenderFlexibleBox::layoutVerticalBox): Let the view know if this flex box is doing its first pass at layout. * rendering/RenderView.cpp: (WebCore::RenderView::RenderView): Caches a flexible box that's doing its first layout. * rendering/RenderView.h: (WebCore::RenderView::setFlexBoxInFirstLayout): (WebCore::RenderView::flexBoxInFirstLayout): 2006-07-22 Alexey Proskuryakov Reviewed by Darin. Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=10038 REGRESSION: Length of navigator.mimeTypes collection returns number of installed plugins, not number of registered mime types * bindings/js/kjs_navigator.cpp: (KJS::MimeTypes::getValueProperty): Return the length of the mime types vector, not the plugins one. (KJS::MimeTypes::getOwnPropertySlot): Fixed another typo, which prevented MimeTypes::getValueProperty() from even being called. 2006-07-21 Maciej Stachowiak Reviewed by Adele and Tim Omernick. 9A224: Safari crashes in WebCore::RenderMenuList::showPopup when changing a input select field to input text field Couldn't figure out how to make layout test, here's a manual test: * manual-tests/remove-select-onchange.html: Added. * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::showPopup): Don't add the RenderPopupMenu to the render tree so it doesn't get destroyed if we do. The remaining changes are to let the RenderPopupMenu know its menu list w/o having to be in the render tree: * rendering/RenderPopupMenu.cpp: (WebCore::RenderPopupMenu::RenderPopupMenu): * rendering/RenderPopupMenu.h: (WebCore::RenderPopupMenu::menuList): * rendering/RenderPopupMenuMac.h: * rendering/RenderPopupMenuMac.mm: (WebCore::RenderPopupMenuMac::RenderPopupMenuMac): * rendering/RenderPopupMenuWin.h: (WebCore::RenderPopupMenuWin::RenderPopupMenuWin): * rendering/RenderTheme.h: * rendering/RenderThemeMac.h: * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::createPopupMenu): * rendering/RenderThemeWin.cpp: (WebCore::RenderThemeWin::createPopupMenu): * rendering/RenderThemeWin.h: 2006-07-21 Adele Peterson Reviewed by Darin. Fix for: REGRESSION: Can't set insertion point at the end of a line of text Test: fast/forms/textarea-scrolled-endline-caret.html * rendering/RenderBlock.cpp: (WebCore::RenderBlock::positionForCoordinates): When looking for the closest line box, take the scroll offset into account. 2006-07-21 Tim Omernick Reviewed by Geoff & Maciej. REGRESSION: Crash at WebCore::Widget::getView() const + 6 Geoff is working on a layout test for this. * bridge/mac/FrameMac.mm: (WebCore::FrameMac::focusWindow): (WebCore::FrameMac::unfocusWindow): Check for a NULL view. The view can be NULL if the frame has not yet loaded any data. This fixes the crash, but the behavior is still wrong -- we should focus the frame once it gets a view. I've filed to track that. It's not as urgent as this crasher. 2006-07-21 Maciej Stachowiak Reviewed by Darin. REGRESSION (NativeTextField): Crash occurs when choosing "Undo Typing" after typing and setting the value * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::updateFromElement): Clear the undo chain when the text control contents have been set programmatically. * bridge/mac/FrameMac.mm: (WebCore::FrameMac::clearUndoRedoOperations): Before clearing undo stack, close all open undo groups and then open an equal number, since otherwise NSUndoManager ends up in an inconsistent state leading to uncaught ObjC exceptions. 2006-07-21 Beth Dakin Reviewed by Darin. Just moving this assertion down a couple of lines. It was hitting every time you try to print a page because we put it too early in the function. * bridge/mac/WebCoreFrameBridge.mm: (-[WebCoreFrameBridge drawRect:]): 2006-07-21 Justin Garcia Reviewed by levi REGRESSION: Can't remove the first OL/UL list item in a Mail's compose window * editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::breakOutOfEmptyListItem): Moved from InsertParagraphSeparator. Does its own typing style restoration. * editing/CompositeEditCommand.h: * editing/InsertParagraphSeparatorCommand.cpp: (WebCore::InsertParagraphSeparatorCommand::doApply): Call breakOutOfEmptyListItem. * editing/TypingCommand.cpp: (WebCore::TypingCommand::deleteKeyPressed): Call breakOutOfEmptyListItem if the endingSelection is at the start of an editable region. * editing/htmlediting.cpp: (WebCore::embeddedSublist): Moved from InsertParagraphSeparator. (WebCore::appendedSublist): Ditto. (WebCore::enclosingEmptyListItem): Ditto. * editing/htmlediting.h: === Safari-521.20 === 2006-07-21 Tim Omernick Reviewed by Beth Dakin & John Sullivan. 9A218: Reproducible crash in -[NSScroller mouseDown:] Beth is in the middle of making a layout test for this; she will land it soon. * platform/mac/ScrollBarMac.mm: (ScrollBar::~ScrollBar): Call Widget::removeFromSuperview() rather than -removeFromSuperview directly on the scroll bar view. Widget::removeFromSuperview() obeys the "mustStayInWindow" flag, which is set while tracking the mouse in view-based widgets to prevent their destruction while the tracking is in progress. I searched around WebCore and this is the only Widget subclass that directly removes its view rather than using removeFromSuperview(). 2006-07-21 Mitz Pettel Reviewed by Darin. - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9312 REGRESSION: Selection bug in new text fields when selecting past the first letter Test: editing/selection/select-from-textfield-outwards.html * editing/Selection.cpp: (WebCore::Selection::adjustForEditableContent): Added code to handle the case where the selection starts (resp. ends) in the last (resp. first) visual position inside an editable root. * editing/htmlediting.cpp: (WebCore::comparePositions): Fixed the case of comparing a position inside a shadow tree with a position in the shadow ancestor. * rendering/RenderBlock.cpp: (WebCore::RenderBlock::positionForCoordinates): For coordinates outside a replaced object, return the position just before (after) the element if the coordinates are above or to the left (below or to the right). * rendering/RenderObject.cpp: (WebCore::RenderObject::caretMaxOffset): Changed to return 1 for replaced objects. * rendering/RenderText.cpp: (WebCore::RenderText::positionForCoordinates): Changed to return the last position in the lowest text box if the y coordinate is below all text boxes. 2006-07-21 Geoffrey Garen Reviewed by Darin. - Fixed REGRESSION: overlays don't work on HousingMaps.com (Google Maps-based site) - Made style.filter undetectable, like document.all. Unfortunately, the SVG spec-makers invented a CSS attribute named 'filter', which conflicts with IE's custom CSS attribute by the same name. Web programs like the Google maps API test for style.filter, and assume it's the IE style.filter if they find it, so we need to make style.filter undetectable to avoid breaking them. An alternative solution would be to hotwire a delorean, go back in time, and beg the web standards makers to make standards that work on the web. * bindings/js/kjs_css.cpp: (KJS::DOMCSSStyleDeclaration::cssPropertyGetter): 2006-07-20 Justin Garcia Reviewed by john REGRESSION: Pasting from web pages into Mail (or Blot) often loses most of the content * editing/markup.cpp: (WebCore::createMarkup): We surround the currently accumulated markup with markup for ancestors of the startNode when the pre-order traversal leaves the trees rooted at those ancestors. We assumed that any ancestors of the current node not in the ancestorsToClose list were those kind of ancestors. But we don't add renderer-less containers to the ancestorsToClose list. So, we were incorrectly surrounding the currently accumulated markup with markup for render-less containers. Most of the content at apple.com was being put inside an inside a via the DOM. It's not supported because it's a security risk. * manual-tests/remove-input-file-onchange.html: Added. * platform/mac/FileButtonMac.mm: (-[WebFileChooserButton chooseFilename:]): swapped the calls to changeFilename and bridgeForWidget because changeFilename will destroy the widget that is accessed in bridgeForWidget 2006-07-20 Alice Liu Reviewed by Adele. Fixed REGRESSION (NativeTextField): Crash occurs after modifying field then reloading page -[FormDelegate frameLayoutHasChanged:] added a manual test because of the need to use AutoFill. * dom/Node.h: (WebCore::Node::aboutToUnload): added virtual function prototype * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::aboutToUnload): added implementation that sends textFieldDidEndEditing notification * html/HTMLInputElement.h: added virtual function prototype * manual-tests/input-type-file-autocomplete-frame-1.html: Added. * manual-tests/input-type-file-autocomplete-frame-2.html: Added. * manual-tests/input-type-file-autocomplete-refresh.html: Added. * page/Frame.cpp: (WebCore::Frame::stopLoading): before unloading, call aboutToUnload on the current focused node 2006-07-20 Brady Eidson Reviewed by Maciej fixed REGRESSION: repro crash in WebCore::EventTargetNode::dispatchWindowEvent at aeropostale.com There was an attempt to deref an EventListener that got cleaned up in GC. Changing Document's EventListener list from vanilla ptrs to refptrs to prevent GC, following EventTargetNode's proven example. * dom/Document.cpp: (WebCore::Document::Document): (WebCore::Document::clear): (WebCore::Document::handleWindowEvent): (WebCore::Document::getHTMLWindowEventListener): (WebCore::Document::removeHTMLWindowEventListener): (WebCore::Document::removeWindowEventListener): (WebCore::Document::hasWindowEventListener): Changed all of the list iterators to work with RefPtrs instead of vanilla ptrs * dom/Document.h: Changed the EventListener list to be a vanilla pointer list to a refptr list 2006-07-20 John Sullivan Reviewed by Maciej - WebCore part of fix for: REGRESSION (419.3-521.19): repro Safari world leak involving closing tabs after clicking in a web page * bridge/mac/WebCoreFrameBridge.h: (-[WebCoreFrameBridge textViewWasFirstResponderAtMouseDownTime:]) renamed to be more specific (formerly wasFirstResponderAtMouseDownTime:) * bridge/mac/FrameMac.mm: (WebCore::FrameMac::passMouseDownEventToWidget): updated for name change 2006-07-19 Alexey Proskuryakov Reviewed by Darin. Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8272 Use of window.open & window.close can cause crash * platform/PlatformMouseEvent.h: (WebCore::PlatformMouseEvent::PlatformMouseEvent): * platform/mac/PlatformMouseEventMac.mm: (WebCore::PlatformMouseEvent::PlatformMouseEvent): The default constructor now creates a "zero" event, and a new one was added to create the "current" one. * bridge/mac/FrameMac.mm: (WebCore::FrameMac::handleMouseMoveEvent): * rendering/RenderFormElement.cpp: (WebCore::RenderFormElement::clicked): Updated for the above changes. * platform/gdk/MouseEventGdk.cpp: * platform/gdk/TemporaryLinkStubs.cpp: (PlatformMouseEvent::PlatformMouseEvent): * platform/win/MouseEventWin.cpp: * platform/win/TemporaryLinkStubs.cpp: (PlatformMouseEvent::PlatformMouseEvent): Trying not to break other platforms. * manual-tests/invalid-mouse-event.html: Added. 2006-07-20 Maciej Stachowiak Reviewed by Anders. - delete line that I only commented in the last patch - meant to do this before landing * html/HTMLFrameElement.cpp: (WebCore::HTMLFrameElement::close): 2006-07-19 Maciej Stachowiak Reviewed by Geoff. - fixed REGRESSION: Project Change Request form should have vertical scroll bar, but doesn't I couldn't figure out how to make an automated test case for this, or even a manual one. It seems to be timing-related in some way. * html/HTMLFrameElement.cpp: (WebCore::HTMLFrameElement::close): detach the child frame from its element, not the frame containing this element. 2006-07-20 Anders Carlsson Reviewed by Darin. * bridge/mac/FrameMac.mm: (WebCore::FrameMac::nextKeyViewInFrame): Hold a ref to the node in case it gets destroyed by an event handler. 2006-07-19 Mark Rowe Reviewed by Darin. http://bugzilla.opendarwin.org/show_bug.cgi?id=10021 Bug 10021: REGRESSION: Stack overflow due to infinite recursion in Image::checkForSolidColor * platform/Image.cpp: (WebCore::Image::cacheFrame): Don't call checkForSolidColor unless the frame was decoded successfully. 2006-07-19 Adele Peterson Reviewed by Maciej. - Fix for: REGRESSION: member name field or password field should have focus after loading webmail.mac.com (7405) http://bugzilla.opendarwin.org/show_bug.cgi?id=7405 REGRESSION: Crash in WebCore::RenderTextField::text() when quoting post at the Ars Technica forum (9707) http://bugzilla.opendarwin.org/show_bug.cgi?id=9707 Needs an http test. (http://bugzilla.opendarwin.org/show_bug.cgi?id=10020) These bugs were both cases where focus() was called on an element which didn't have a renderer yet because stylesheets hadn't finished loading yet. Now, we detect this case and let setFocusNode be called. And when the stylesheet finishes loading, and the element attaches, a timer will fire, which will cause the correct selection & scrolling behavior to occur. This fix removes selection and scrolling behavior from the focus method. This code is now in a new method, updateFocusAppearance. updateFocusAppearance can now be called directly from focus(), but it can also be called when a timer fires. This timer gets set up when an element attaches, and its already been focused by the focus method. We have to use a timer, because updateFocusAppearance can cause a layout to happen, and we don't want that to happen in the middle of attach(). * bindings/objc/DOM.mm: (-[DOMElement isFocused]): Added SPI for autofill. * bindings/objc/DOMPrivate.h: * dom/Element.cpp: (WebCore::Element::Element): Initializes timer and needFocusAppearanceUpdate bool. (WebCore::Element::attach): Checks needsFocusAppearanceUpdate, and if the node is focused, then starts the timer. (WebCore::Element::focus): Updated to check supportsFocus before calling setFocusNode, and only requiring the element to be focusable now before updating focus appearance. (WebCore::Element::updateFocusAppearance): Added. Separates the selection, and the scrolling from focusing the node. (WebCore::Element::updateFocusAppearanceTimerFired): Stops the timer, and if the element is focusable, calls updateFocusAppearance. (WebCore::Element::stopUpdateFocusAppearanceTimer): Cancels timer, and setsNeedsFocusAppearanceUpdate(false). (WebCore::Element::detach): Calls stopUpdateFocusAppearanceTimer. (WebCore::Element::blur): ditto. * dom/Element.h: (WebCore::Element::needsFocusAppearanceUpdate): Added so the timer only fires when focus() methods have caused an element to be focused. (WebCore::Element::setNeedsFocusAppearanceUpdate): Added so focus methods can set this flag. * dom/Node.h: (WebCore::Node::supportsFocus): Added. Base class just calls isFocusable. * html/HTMLAnchorElement.h: Added supportsFocus. * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::supportsFocus): Added. Checks for the case where stylesheets haven't loaded yet, so we can still focus the node without a renderer, and when it gets a renderer, we'll update the focus appearance. * html/HTMLGenericFormElement.h: (WebCore::HTMLGenericFormElement::supportsFocus): ditto. * html/HTMLGenericFormElement.cpp: Removed include of Document.h since this is now in the header. * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::focus): Updated to check supportsFocus before calling setFocusNode, and only requiring the element to be focusable now before updating focus appearance. (WebCore::HTMLInputElement::updateFocusAppearance): Added. Separates the selection, and the scrolling from focusing the node. * html/HTMLInputElement.h: * html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::focus): Updated to check supportsFocus before calling setFocusNode, and only requiring the element to be focusable now before updating focus appearance. (WebCore::HTMLTextAreaElement::updateFocusAppearance): Added. Separates the selection, and the scrolling from focusing the node. * html/HTMLTextAreaElement.h: 2006-07-19 Justin Garcia Reviewed by levi REGRESSION: Mail crashes when pasting entire contents of http://www.apple.com/support/ into a new mail message * dom/Position.cpp: (WebCore::Position::upstream): Deployed isBlock and enclosingBlock. (WebCore::Position::downstream): Ditto. * editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): Ditto. * editing/htmlediting.cpp: (WebCore::canHaveChildrenForEditing): Added !iframe. (WebCore::isBlock): Added, returns !node->renderer()->isInline() (WebCore::enclosingBlock): Added. * editing/htmlediting.h: 2006-07-19 Anders Carlsson Reviewed by Adele. REGRESSION: Crash tabbing out of hostname field at autorestore.apple.com * bridge/mac/FrameMac.mm: (WebCore::FrameMac::nextKeyViewInFrame): Take into account that focus handlers can cause a node's renderer to be destroyed. 2006-07-19 David Hyatt Fix for 4638376. The 1x1 solid color image optimization was broken when I re-architected image. This patch restores the optimization for CG. Cairo will still need the optimization. Reviewed by darin WARNING: NO TEST CASES ADDED OR CHANGED (need test cases still) * platform/Image.cpp: (WebCore::Image::Image): (WebCore::Image::invalidateData): (WebCore::Image::cacheFrame): * platform/Image.h: (WebCore::Image::setIsPDF): * platform/cairo/ImageCairo.cpp: (WebCore::Image::checkForSolidColor): * platform/mac/ImageMac.mm: (WebCore::Image::initNativeData): (WebCore::Image::invalidateNativeData): (WebCore::Image::checkForSolidColor): (WebCore::Image::draw): (WebCore::Image::drawTiled): 2006-07-19 Justin Garcia Reviewed by levi REGRESSION: Pasting text in native text area inserts text one character before it should (9527) * editing/InsertParagraphSeparatorCommand.cpp: (WebCore::InsertParagraphSeparatorCommand::doApply): Turn into an InsertLineBreakCommand instead of bailing if the enclosingBlockFlowElement doesn't have a parent. 2006-07-19 David Harrison Reviewed by Tim Hatcher. -[DOMRange markupString] does not include the initial table element if it is at the beginning of the range pasting in contents of web.apple.com strips off the element from the first table Better patch than previous checkin. * test: editing/pasteboard/paste-table-003.html * editing/markup.cpp: (WebCore::createMarkup): Make sure to include the table when including a tbody. === Safari-521.19 === 2006-07-19 David Harrison Reviewed by Tim Hatcher. -[DOMRange markupString] does not include the initial table element if it is at the beginning of the range No test case as this can only be reproduced through ObjC APIs. * editing/markup.cpp: (WebCore::createMarkup): Adjust the range for ancestor markup handling when main loop skips first node. 2006-07-18 David Hyatt Fix for radar 4611287, make resizable text fields opt-in rather than opt-out. Open source users will need to write the pref into their defaults to see the resizers on textareas now. Reviewed by mjs and adele * WebCore.xcodeproj/project.pbxproj: * bridge/mac/WebCoreSettings.mm: (-[WebCoreSettings setTextAreasAreResizable:]): * css/cssparser.cpp: (WebCore::CSSParser::parseValue): * css/cssstyleselector.cpp: (WebCore::CSSStyleSelector::applyProperty): * css/html4.css: 2006-07-18 Anders Carlsson Reviewed by Darin. http://bugzilla.opendarwin.org/show_bug.cgi?id=9959 REGRESSION: iframes stop rendering after 200th one on successive reloads * html/HTMLFrameElement.cpp: (WebCore::HTMLFrameElement::attach): (WebCore::HTMLFrameElement::close): * html/HTMLIFrameElement.cpp: (WebCore::HTMLIFrameElement::insertedIntoDocument): (WebCore::HTMLIFrameElement::willRemove): Remove calls to incrementFrameCount and decrementFrameCount. * page/Frame.cpp: (WebCore::Frame::Frame): Call incrementFrameCount here. (WebCore::Frame::~Frame): Call disconnectOwnerElement. (WebCore::Frame::disconnectOwnerElement): Call decrementFrameCount here. 2006-07-18 Alexey Proskuryakov Reviewed by Darin. Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9013 Let correct CSS custom cursor declarations parse * css/cssparser.cpp: (WebCore::CSSParser::parseValue): Ignore any values following a custom CSS cursor URI, instead of requiring that it is the only one in the list (which is actually illegal, according to the spec). This is only a temporary hack, with a real implementation to follow in bug 6001/6002. * manual-tests/custom-cursors.html: Added a test for this issue. * manual-tests/resources/helpCursor.tiff: A cursor image used in the test. 2006-07-18 Timothy Hatcher Reviewed by Anders. NetNewsWire fails to launch on 9A224 - missing symbols WebCore needs to add -sub_library libobjc to maintain backwards compatibility with binaries linked with WebKit before JavaScriptCore moved out of WebKit. * WebCore.xcodeproj/project.pbxproj: 2006-07-18 Mitz Pettel Reviewed by Justin. - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9978 REGRESSION (r12949-r12988): Clicking the first letter on a line places the caret at the end of the previous line Test: editing/selection/click-start-of-line.html * rendering/RenderText.cpp: (WebCore::RenderText::positionForCoordinates): Changed to return downstream affinity if the x coordinate is to the left of the middle of the first character in the text box. 2006-07-18 Anders Carlsson Reviewed by Darin. http://bugzilla.opendarwin.org/show_bug.cgi?id=9695 TOT REGRESSION: NativeTextArea: Text area does not respond to Cmd-UpArrow/Cmd-DownArrow (9695) * editing/SelectionController.cpp: (WebCore::SelectionController::modifyExtendingRightForward): (WebCore::SelectionController::modifyMovingRightForward): (WebCore::SelectionController::modifyExtendingLeftBackward): (WebCore::SelectionController::modifyMovingLeftBackward): If the caret is inside an editable region, the beginning/end of the document should actually be the beginning/end of the editable region. 2006-07-17 Tim Omernick Reviewed by Maciej. need a way to prevent pages from scrolling to reveal elements that are focused by script * bridge/mac/WebCoreFrameBridge.h: * bridge/mac/WebCoreFrameBridge.mm: (-[WebCoreFrameBridge setProhibitsScrolling:]): * page/Frame.cpp: (WebCore::Frame::prohibitsScrolling): (WebCore::Frame::setProhibitsScrolling): * page/Frame.h: * page/FramePrivate.h: (WebCore::FramePrivate::FramePrivate): * page/FrameView.cpp: (WebCore::FrameView::scrollPointRecursively): (WebCore::FrameView::setContentsPos): * page/FrameView.h: * platform/ScrollView.h: 2006-07-17 Maciej Stachowiak Reviewed by Dave Harrison. - fixed Blot crashes when I paste in all the contents of http://www.apple.com/startpage/ * editing/htmlediting.cpp: (WebCore::editingIgnoresContent): 2006-07-17 Justin Garcia Reviewed by levi REGRESSION: Selecting by dragging down creates selection in wrong direction, with certain steps REGRESSION: Dragging too far left on a line will select all lines above it. No layout test because of 9980. * rendering/RenderBlock.cpp: (WebCore::RenderBlock::positionForCoordinates): Don't return positions inside editable roots for coordinates outside those roots, except for coordinates outside a document that is entirely editable. 2006-07-17 Timothy Hatcher Reviewed by Darin. JSCanvasRenderingContext2D::drawImage needs to initialize the exception code to zero * bindings/js/JSCanvasRenderingContext2DCustom.cpp: (WebCore::JSCanvasRenderingContext2D::drawImage): initialize ec to zero * html/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::drawImage): initialize ec before earlier return 2006-07-17 Timothy Hatcher Reviewed by Maciej. WebScriptObject and WebUndefined are no longer defined by WebKit Moves WebScriptObject and WebUndefined to WebCore. * WebCore.exp: * WebCore.xcodeproj/project.pbxproj: * bindings/objc/DOM.mm: * bindings/objc/DOMCore.h: * bindings/objc/DOMInternal.mm: * bindings/objc/DOMUtility.mm: * bindings/objc/WebScriptObject.mm: Added. (+[WebUndefined allocWithZone:]): (-[WebUndefined initWithCoder:]): (-[WebUndefined encodeWithCoder:]): (-[WebUndefined copyWithZone:]): * bindings/objc/WebScriptObjectPrivate.h: Added. * bridge/mac/FrameMac.mm: * bridge/mac/WebCoreScriptDebugger.mm: 2006-07-17 David Hyatt Back out the fix for 5564, since it turns out font:x-small; is a pretty prominent IE-specific CSS hack. Because Web sites rely on IE's incorrect font parsing as a means of also correcting IE's incorrect font size rules. This fixes Yahoo.com. Reviewed by darin * css/cssparser.cpp: (WebCore::CSSParser::parseFont): 2006-07-17 Justin Garcia Reviewed by levi REGRESSION: After applying a link to the last word of a sentence, a new selection is created at the start of the sentence * dom/Document.cpp: (WebCore::Document::updateSelection): 2006-07-17 Maciej Stachowiak Reviewed by Beth. REGRESSION: 'checkboxRef.checked = true' fires onchange event in Leopard * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::setChecked): (WebCore::HTMLInputElement::preDispatchEventHandler): * html/HTMLInputElement.h: 2006-07-16 David Kilzer Reviewed by Darin. - fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=9954 REGRESSION: document.dir should return empty string in Test: fast/dom/document-dir-property.html * bindings/js/kjs_html.cpp: (KJS::JSHTMLDocument::getValueProperty): Return an empty string instead of an undefined value for an unset document.dir property. 2006-07-16 David Kilzer Reviewed by Darin. * dom/NodeFilter.idl: Removed "No newline at end of file" that snuck in as part of the "apply patch" process. * manual-tests/input-empty-on-focus.html: Removed "Property changes" that snuck in as part of the "apply patch" process. 2006-07-16 Darin Adler Reviewed by John Sullivan. - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9943 REGRESSION (Tiger-TOT): menus are offset to the right at http://movies.aol.com/movie-photo-bts/superman-returns The problem turns out to be the fact that body.offsetLeft is returning a non-zero value. I have no idea why the menus worked in Tiger Safari, because body.offsetLeft behavior has not changed. Presumably some other bug that we fixed had been compensating. Test: fast/html/body-offset-properties.html * rendering/RenderObject.cpp: (WebCore::RenderObject::offsetLeft): Always return 0 for any object without an offsetParent. (WebCore::RenderObject::offsetTop): Ditto. (WebCore::RenderObject::offsetParent): Return 0 for the body (treat as a special case). 2006-07-16 Beth Dakin Reviewed by Maciej. Fix for REGRESSION: Problems with world clock widget clock hand motion on 9A211 + 4604574 The second hand on the widget was jiggling because the rotation was messing up the use of the affine transformation matrix while rounding to pixel boundaries in device space. We are mainly concerned with rounding to pixel boundaries with the scale in mind, so this patch extracts the scale to device space from the matrix, and rounds to pixel boundaries using only the scale. This doesn't seem like it is a perfect solution, but it definitely solves the immediate problem. We will probably need to re-address what should happen to avoid pixel cracks with rotations at non-integral scale factors. * platform/cg/GraphicsContextCG.cpp: (WebCore::GraphicsContext::roundToDevicePixels): 2006-07-15 Darin Adler - fix mistake from fix for 8952 that was breaking layout tests * editing/SelectionController.cpp: (WebCore::SelectionController::nodeWillBeRemoved): Justin was right! I changed the behavior of the function by accident. Changed it back so that it doesn't blow away the selection on the DOM side in the case where it didn't before. I will write 100 times on the blackboard: "When Justin says something about editing, assume he is right." 2006-07-15 Darin Adler - try to fix Windows build * WebCore.vcproj/WebCore/WebCore.vcproj: Added StreamingTextDecoderICU.cpp/h. 2006-07-15 Darin Adler Reviewed by John Sullivan. - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8952 REGRESSION: crash on drag of highlighted Google custom home page modules Test: fast/dynamic/move-node-with-selection.html * editing/SelectionController.cpp: (WebCore::SelectionController::nodeWillBeRemoved): Call updateRendering before calling clearSelection(), since it's important to do any work beforehand, and there are calls inside clearSelection that will indirectly do an updateRendering. Also change code to make fewer assumptions about object lifetime. 2006-07-15 Darin Adler Reviewed by John Sullivan. - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8587 REGRESSION: {display:list-item} on items outside an ol or ul element no longer causes incremental numbering Test: fast/lists/numeric-markers-outside-list.html * rendering/RenderListItem.cpp: (WebCore::previousListItem): Look for list items, even when we're outside any list. 2006-07-15 Adele Peterson Reviewed by John. - Fix for REGRESSION (NativeTextField): autofill menu disappears after typing a 2nd character This was caused by composite editing commands, (like typing or pasting) that include a DeleteCommand, being interpreted by the form delegate as an actual delete. This fix doesn't notify the form delegate if the deletion is part of an editing command to replace the selected text. * editing/DeleteSelectionCommand.h: Added m_replace to keep track of whether this deletion is part of a composite command to replace the text being deleted. * editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::DeleteSelectionCommand): Initialize m_replace. (WebCore::DeleteSelectionCommand::doApply): Only notify the form delegate of the deletion if the text is not being replaced. * editing/CompositeEditCommand.h: * editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::deleteSelection): Added replace argument to construct DeleteSelectionCommand. * editing/InsertTextCommand.cpp: (WebCore::InsertTextCommand::input): Call deleteSelection with replace argument. * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::doApply): ditto. 2006-07-15 Geoffrey Garen Reviewed by Maciej, tweaked to match Darin's patch. - Fixed REGRESSION: Reproducible crash on FCKeditor demo (9911) * WebCore.xcodeproj/project.pbxproj: * bindings/js/kjs_html.cpp: (KJS::JSHTMLDocument::putValueProperty): Check for a null body element before forwarding the put request to it. I confirmed that no other parts of the file use 'body' or 'bodyElement' without checking for null. Also, use 'body' rather than 'bodyElement' because dir can bet set on any element, not just HTMLBodyElement. 2006-07-15 Darin Adler Reviewed by Adele. - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8871 REGRESSION: Pressing Enter/Return in a text input removes the selected text - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9743 REGRESSION: crash dispatching JavaScript-created keyboard event to input element * bridge/mac/FrameMac.mm: (WebCore::FrameMac::doTextFieldCommandFromEvent): Add a null check to fix the crash, and a FIXME explaining why this is not necessarily enough for the future. * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler): Consume Enter key keypress events even if the element is not in a form. * platform/mac/KeyEventMac.mm: (WebCore::keyIdentifierForKeyEvent): Added \n to the characters that turn into "Enter". Actual keyboard events always are \r or \003 on the Macintosh, but in layout tests we can use \n, and everything other than the code path here works, so worth fixing. 2006-07-15 Darin Adler Reviewed by John Sullivan. - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9883 REGRESSION: NativePopups don't work correctly in some forum software Test: fast/forms/select-selected.html * rendering/RenderMenuList.h: * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::updateFromElement): Added code to map the selected option index to a list index before using it to index into the list. (WebCore::RenderMenuList::showPopup): Added code to map the selection option index to a list index before passing it to the menu renderer. (WebCore::RenderMenuList::valueChanged): Added code to map the list index back to a option index before calling setSelectedIndex (that function takes an option index). 2006-07-15 Darin Adler Reviewed by John Sullivan. - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9928 REGRESSION: Text Encoding menu inoperative (after gcc protocol build fix) * bindings/objc/DOM.mm: (-[DOMNode addEventListener:::]): Moved into DOMEventTarget category. (-[DOMNode removeEventListener:::]): Ditto. (-[DOMNode dispatchEvent:]): Ditto. * WebCore.xcodeproj/project.pbxproj: Allow Xcode to do its thing. 2006-07-15 Maciej Stachowiak Reviewed by Anders. REGRESSION: table column tests failing as a result of very recent fix * rendering/RenderTable.cpp: (WebCore::RenderTable::addChild): columns and colgroups are valid children of a table too, not just table sections! 2006-07-15 Anders Carlsson Reviewed by Darin. http://bugzilla.opendarwin.org/show_bug.cgi?id=9866 REGRESSION: Repro crash from mangleme using iframe, only from server. * html/HTMLIFrameElement.cpp: (WebCore::HTMLIFrameElement::attach): Add null check for contentFrame() since content frames won't be created for invalid URLs. 2006-07-14 Alexey Proskuryakov Reviewed by Darin. Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=4195 REGRESSION: KOI8-U encoding no longer supported. Tests: * http/tests/misc/BOM-override.pl * http/tests/misc/BOM-override-script.html * fast/encoding/charset-koi8-u.html * fast/encoding/charset-x-nextstep.html Restored a TEC code path for encodings that are not supported by ICU (but which currently passes all layout tests even by itself with ICU disabled). A lot of refactoring is still needed - most importantly, round-tripping encoding names via CFStringEncoding makes little sense now. * WebCore.exp: * bridge/mac/WebCoreTextDecoder.h: Removed. * bridge/mac/WebCoreTextDecoder.mm: Removed. WebCoreTextDecoder was not used anywhere since WebTextView was moved into WebCore. * loader/Decoder.cpp: (Decoder::Decoder): (Decoder::setEncodingName): (Decoder::decode): Use StreamingTextDecoder::create(). * platform/StreamingTextDecoder.cpp: (WebCore::StreamingTextDecoder::create): (WebCore::StreamingTextDecoder::~StreamingTextDecoder): * platform/StreamingTextDecoder.h: StreamingTextDecoder is just an abstract interface to implementations now. * platform/StreamingTextDecoderICU.cpp: Added. (WebCore::StreamingTextDecoderICU::StreamingTextDecoderICU): (WebCore::StreamingTextDecoderICU::~StreamingTextDecoderICU): (WebCore::StreamingTextDecoderICU::releaseICUConverter): (WebCore::StreamingTextDecoderICU::textEncodingSupported): (WebCore::StreamingTextDecoderICU::convertUTF16): (WebCore::StreamingTextDecoderICU::convertIfASCII): (WebCore::StreamingTextDecoderICU::createICUConverter): (WebCore::StreamingTextDecoderICU::appendOmittingBOM): (WebCore::StreamingTextDecoderICU::convertUsingICU): (WebCore::StreamingTextDecoderICU::convert): (WebCore::StreamingTextDecoderICU::toUnicode): (WebCore::StreamingTextDecoderICU::fromUnicode): * platform/StreamingTextDecoderICU.h: Added. Renamed from StreamingTextDecoder; added a way to tell whether the encoding is actually supported by the decoder; minor cleanup. * platform/TextEncoding.cpp: (WebCore::TextEncoding::effectiveEncoding): Moved from StreamingTextDecoder. (WebCore::TextEncoding::toUnicode): Use StreamingTextDecoder::create(). (WebCore::TextEncoding::fromUnicode): Moved to StreamingTextDecoderICU. * platform/TextEncoding.h: Changed __APPLE__ to PLATFORM(MAC); added effectiveEncoding(). * platform/mac/StreamingTextDecoderMac.cpp: Added. (WebCore::StreamingTextDecoderMac::StreamingTextDecoderMac): (WebCore::StreamingTextDecoderMac::~StreamingTextDecoderMac): (WebCore::StreamingTextDecoderMac::releaseTECConverter): (WebCore::StreamingTextDecoderMac::textEncodingSupported): (WebCore::StreamingTextDecoderMac::convertUTF16): (WebCore::StreamingTextDecoderMac::convertIfASCII): (WebCore::StreamingTextDecoderMac::createTECConverter): (WebCore::StreamingTextDecoderMac::appendOmittingBOM): (WebCore::StreamingTextDecoderMac::convertOneChunkUsingTEC): (WebCore::StreamingTextDecoderMac::convertUsingTEC): (WebCore::StreamingTextDecoderMac::convert): (WebCore::StreamingTextDecoderMac::toUnicode): (WebCore::StreamingTextDecoderMac::fromUnicode): * platform/mac/StreamingTextDecoderMac.h: Added. (WebCore::StreamingTextDecoderMac::convert): This is a TEC+CFString code path for decoding, basically restored from a year-old revision. * platform/mac/TextEncodingMac.cpp: Removed. Code moved to StreamingTextDecoderMac. * WebCore.xcodeproj/project.pbxproj: === Safari-521.17 === 2006-07-14 Timothy Hatcher SWB: gcc-5412 (new?) objc warning causes WebCore project failure Made a DOMNode category in DOMEvents.h that lets DOMNode conform to the DOMEventTarget protocol that works with GCC 5412. Removed forward declarations of WebCoreWidgetHolder and imported WebCoreWidgetHolder.h. Removed all and imports in other headers, we import in the prefix header for ObjC. * WebCore.xcodeproj/project.pbxproj: * bindings/objc/DOMCore.h: * bindings/objc/DOMEvents.h: * bridge/mac/FormDataMac.h: * bridge/mac/WebCoreAXObject.h: * bridge/mac/WebCoreCache.h: * bridge/mac/WebCoreEncodings.h: * bridge/mac/WebCoreFrameBridge.h: * bridge/mac/WebCoreFrameNamespaces.h: * bridge/mac/WebCoreJavaScript.h: * bridge/mac/WebCorePageBridge.h: * bridge/mac/WebCorePageState.h: * bridge/mac/WebCoreResourceLoader.h: * bridge/mac/WebCoreScriptDebugger.h: * bridge/mac/WebCoreSettings.h: * bridge/mac/WebCoreStringTruncator.h: * bridge/mac/WebCoreStringTruncator.mm: * bridge/mac/WebCoreTextDecoder.h: * bridge/mac/WebDashboardRegion.h: * kcanvas/device/quartz/KRenderingDeviceQuartz.mm: * platform/mac/CookieJar.mm: * platform/mac/DeprecatedStringMac.mm: * platform/mac/FontDataMac.mm: * platform/mac/FoundationExtras.h: * platform/mac/TextBoundaries.mm: * platform/mac/WebCoreHistory.h: * platform/mac/WebCoreHistory.m: * platform/mac/WebCoreKeyGenerator.h: * platform/mac/WebCoreTextArea.h: * platform/mac/WebCoreTextField.h: * platform/mac/WebCoreTextRenderer.h: * platform/mac/WebCoreView.h: * platform/mac/WebCoreWidgetHolder.h: 2006-07-14 Geoffrey Garen Reviewed by Maciej. - Updated ScriptInterpreter to work with Interpreter ref-counting in JavaScriptCore. (KJS::ScriptInterpreter::~ScriptInterpreter): Now protected to catch manual delete. 2006-07-14 Anders Carlsson Reviewed by Adele and Justin. http://bugzilla.opendarwin.org/show_bug.cgi?id=9658 REGRESSION: Check Spelling does not work in textarea elements * bridge/mac/FrameMac.mm: (WebCore::FrameMac::advanceToNextMisspelling): Don't use setStartBefore or setEndAfter on the search range because for shadow trees, there is no notion of before and after. Instead, use setStart and setEnd and pass in the start and end indices respectively. * dom/Range.cpp: (WebCore::Range::checkNodeBA): Allow range operations on shadow trees. * manual-tests/form-element-spelling.html: Added. 2006-07-14 Beth Dakin Reviewed by Hyatt. Fix for REGRESSION: Safari crashing in WebCore::FrameView::updateOverflowStatus m_viewportRenderer is never initialized for framesets, and it shouldn't be. So we just need to nil-check for it in updateOverflowStatus() and return early. * page/FrameView.cpp: (WebCore::FrameView::updateOverflowStatus): Nil check. 2006-07-14 Adele Peterson RS by Darin. Backing out fix for REGRESSION (NativeTextField): Focus is not removed from password field after I ctrl-click into a different field Darin had a better fix in WebKit for this. * bridge/mac/FrameMac.mm: (WebCore::FrameMac::sendContextMenuEvent): 2006-07-14 Adele Peterson Reviewed by Darin. - Fix for REGRESSION: Safari submits forms when the Return key is hit to complete inline inputs * page/Frame.h: (WebCore::Frame::inputManagerHasMarkedText): Added. * bridge/mac/FrameMac.h: ditto. * bridge/mac/FrameMac.mm: (WebCore::FrameMac::inputManagerHasMarkedText): Added. Asks the input manager if there's marked text. * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler): For text fields, don't submit the form on Enter if the input manager says there's marked text. I added this code for all text field paths. For widgets, WebCoreTextField.mm has code to deal with this case. But as we convert search, password, and isindex, they will need to do this check too. 2006-07-14 Mitz Pettel Reviewed by Darin. - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9907 REGRESSION (r15418): editing/pasteboard/paste-table-001 fails in pixel mode * rendering/RenderText.cpp: (WebCore::RenderText::caretRect): Fixed the calculation of the max/min allowed caret position. 2006-07-14 Mitz Pettel Reviewed by Darin. - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9905 REGRESSION (r15404-r15415): Repro crash when pressing delete in an empty editable div Test: editing/deleting/delete-at-start-or-end.html * editing/TypingCommand.cpp: (WebCore::TypingCommand::deleteKeyPressed): Added null check. (WebCore::TypingCommand::forwardDeleteKeyPressed): Ditto. 2006-07-14 David Kilzer Reviewed by Geoffrey. - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9903 Simplify logic in JSHTMLOptionsCollection::setLength() by using no-arg getNumber() No test cases since there is no change in functionality. * bindings/js/JSHTMLOptionsCollectionCustom.cpp: (WebCore::JSHTMLOptionsCollection::setLength): Simplified logic by using the no-argument getNumber() method. 2006-07-14 Geoffrey Garen Reviewed by Adele. - Build fix: don't need BLOCK_OBJC_EXCEPTIONS because we already have one surrounding this function, and the nested one makes the compiler think our local variable is volatile (seems like a compiler bug to me). * bridge/mac/FrameMac.mm: (WebCore::FrameMac::sendContextMenuEvent): 2006-07-14 Timothy Hatcher Reviewed by Maciej. Make JavaScriptCore a public framework. Adjusted the paths. * WebCore.xcodeproj/project.pbxproj: 2006-07-14 Maciej Stachowiak Reviewed by Hyatt. - fixed REGRESSION: Crash at WebCore::RenderBlock::createLineBoxes (seems to be a security hole?) I also fixed all the similar crash / assertion failure cases I could think of. * dom/Node.cpp: (WebCore::Node::nextRendererWithSameParent): Helper function for some of the above. * dom/Node.h: * rendering/RenderTable.cpp: (WebCore::RenderTable::addChild): Don't allow inserting forms when not in an HTML document, since we don't need that quirk and because parsing won't do certain render tree fixups. Also watch out for case when inserting before the renderer of a misnested child. * rendering/RenderTableRow.cpp: (WebCore::RenderTableRow::addChild): ditto * rendering/RenderTableSection.cpp: (WebCore::RenderTableSection::addChild): ditto 2006-07-13 Adele Peterson Reviewed by Maciej. - Fix for REGRESSION (NativeTextField): Focus is not removed from password field after I ctrl-click into a different field Test: * manual-tests/password-ctrl-click-lose-focus.html: Added. * bridge/mac/FrameMac.mm: (WebCore::FrameMac::sendContextMenuEvent): If we're about to set a selection in the current view, make sure its the first responder. In this case, this will cause the password field to resign first responder at the right time. 2006-07-13 Mitz Pettel Reviewed by Hyatt. - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9670 REGRESSION: RTL white-space:pre-wrap text is offset to the right Test: fast/text/international/rtl-white-space-pre-wrap.html * rendering/RenderText.cpp: (WebCore::RenderText::caretRect): Fixed LTR case and added the RTL case of clipping the caret position to the text box when the caret is after the trailing space of an autowrapped line. * rendering/bidi.cpp: (WebCore::RenderBlock::computeHorizontalPositionsForLine): Changed to truncate- to-fit the logically last text box if it contains the trailing spaces of an autowrapped line. (WebCore::RenderBlock::bidiReorderLine): Remember the logically last text run. In the case of autowrapped text with white space that overflows beyond the line, the last text run is the one containing the overflowing white space. (WebCore::RenderBlock::findNextLineBreak): Split overflowing white space on a line that autowraps only after white space into a separate text run. 2006-07-13 David Harrison Reviewed by Dave Hyatt. -webkit-highlight should be behind images * rendering/RenderImage.cpp: (WebCore::RenderImage::paint): * rendering/RenderListMarker.cpp: (WebCore::RenderListMarker::paint): * rendering/RenderWidget.cpp: (WebCore::RenderWidget::paint): Call custom highlighter before painting the image, marker, or widget. 2006-07-13 David Harrison Reviewed by Justin and Levi. REGRESSION: Option-Delete doesn't delete words during typing * Tests: editing/deleting/delete-by-word-001.html editing/deleting/delete-by-word-002.html * editing/TypingCommand.cpp: (WebCore::TypingCommand::deleteKeyPressed): (WebCore::TypingCommand::forwardDeleteKeyPressed): (WebCore::TypingCommand::doApply): * editing/TypingCommand.h: Delete and forward delete to use specified granularity. Undo of delete and forward delete to select what had been deleted (non-char granularity only). * page/Frame.cpp: (WebCore::Frame::setSelection): Close typing and end style even if selection is not changing. * page/Frame.h: Remove unused setSelection parameter keepTypingStyle. 2006-07-12 Levi Weintraub Reviewed by justin Deleting from beginning of paragraph following a table deletes rather than selects the table * editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::initializeStartEnd): Added selection expansion for HRs. (WebCore::DeleteSelectionCommand::initializePositionData): Now uses enclosingBlockFlowOrTableElement instead of enclosingBlockFlowElement. (WebCore::DeleteSelectionCommand::removeNode): Use to identify that we need a placeholder when the start or end block is removed. (WebCore::DeleteSelectionCommand::handleGeneralDelete): Added check for canHaveChildrenForEditing to keep things like HRs from being given children. (WebCore::DeleteSelectionCommand::doApply): Switched to use member variable for needPlaceholder. * editing/DeleteSelectionCommand.h: Made needPlaceholder a member variable. * editing/TypingCommand.cpp: (WebCore::TypingCommand::deleteKeyPressed): Fixed selection bug for tables and open typing commands. (WebCore::TypingCommand::forwardDeleteKeyPressed): Ditto. * editing/htmlediting.cpp: (WebCore::editingIgnoresContent): Added check for HRs, since it's not considered a widget. * editing/visible_units.cpp: (WebCore::startOfParagraph): Fix for HRs and tables. (WebCore::endOfParagraph): Ditto. 2006-07-13 Alexey Proskuryakov Reviewed by Darin. - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9880 Memory leaks running DOM-Hanoi No change in behavior, thus no test included. * bridge/mac/FrameMac.mm: (WebCore::FrameMac::setStatusBarText): Use a local autorelease pool to release the temporaries - the test runs non-stop, and the enclosing pool doesn't get a chance to be drained. 2006-07-12 Mitz Pettel Reviewed by Adele. - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9862 REGRESSION: GMail: Crash in RenderView::repaintViewRectangle when spoofing as FF - see also Test: fast/frames/repaint-display-none-crash.html * rendering/RenderView.cpp: (WebCore::RenderView::repaintViewRectangle): Added null checking of the owner element's renderer, which can be null if the iframe is set to display:none. 2006-07-12 Justin Garcia Reviewed by levi selected DOM range starts with , 0 offset but selection should include the * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::shouldMergeStart): Don't pull content out of a table cell. * editing/htmlediting.cpp: (WebCore::editingIgnoresContent): Added * css/html4.css: Added style for new selects, and for list boxes. * html/HTMLSelectElement.h: (WebCore::HTMLSelectElement::shouldUseMenuList): Removed check for appearance so new popups can be styled. * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::setStyle): Removed padding. This is now set by the theme. (WebCore::RenderMenuList::calcMinMaxWidth): Now takes minimum text size into account. * rendering/RenderMenuList.h: Removed baselinePosition since we're letting the theme calculate that. * rendering/RenderTheme.cpp: (WebCore::RenderTheme::isControlContainer): Added menuList as a ControlContainer, so RenderThemeMac will compute its baseline. * rendering/RenderTheme.h: (WebCore::RenderTheme::minimumTextSize): Added. * rendering/RenderThemeMac.h: Added minimumTextSize, setPopupPaddingFromControlSize, popupButtonSizes, popupButtonMargins, popupButtonPadding. Removed sizeOfArrowControl. * rendering/RenderThemeMac.mm: (WebCore::): Added enum for padding. (WebCore::RenderThemeMac::adjustRepaintRect): Now inflates rect to account for control shadow. (WebCore::RenderThemeMac::baselinePosition): Now calculates baseline for menulist. (WebCore::RenderThemeMac::popupButtonMargins): Tweaked values. (WebCore::RenderThemeMac::popupButtonSizes): Added. (WebCore::RenderThemeMac::popupButtonPadding): Added, so different padding can be set for different control sizes. (WebCore::RenderThemeMac::setPopupPaddingFromControlSize): Added. (WebCore::RenderThemeMac::paintMenuList): Now inflates rect to account for control shadow. (WebCore::RenderThemeMac::adjustMenuListStyle): Resets border, sets padding, sets control size. (WebCore::RenderThemeMac::setPopupButtonCellState): Removed unnecessary class name. (WebCore::RenderThemeMac::minimumTextSize): Added. 2006-07-09 Darin Adler - add back "unused code" for plain text fields, still used by ! * platform/TextField.h: * platform/mac/TextFieldMac.mm: * platform/mac/WebCoreTextField.h: * platform/mac/WebCoreTextField.mm: * rendering/RenderLineEdit.cpp: 2006-07-09 Darin Adler Reviewed by Tim Hatcher. - put more into the WebCore namespace - removed unused code for plain text fields Put more classes, class templates, enums, functions, and constants into the WebCore namespace, including all the headers in the platform directory. Removed lots of unneeded "WebCore::" qualifiers and "using" directives. Added some "WebCore::" qualifiers in a few places. Removed "uses WebCore::" in headers that we said we'd remove "when everything is in the WebCore namespace". * bindings/js/JSDOMParser.cpp: * bindings/js/JSHTMLElementWrapperFactory.cpp: * bindings/js/JSXSLTProcessor.cpp: * bindings/js/kjs_binding.cpp: * bindings/js/kjs_css.cpp: * bindings/js/kjs_dom.cpp: * bindings/js/kjs_dom.h: * bindings/js/kjs_events.cpp: * bindings/js/kjs_proxy.h: * bindings/js/kjs_window.h: * bindings/objc/DOM.mm: * bridge/History.h: * bridge/JavaAppletWidget.h: * bridge/mac/FormDataMac.h: * bridge/mac/FormDataMac.mm: * bridge/mac/WebCoreAXObject.mm: * bridge/mac/WebCoreEncodings.mm: * bridge/mac/WebCoreFrameBridge.h: * bridge/mac/WebCoreIconDatabaseBridge.mm: * bridge/mac/WebCorePageState.h: * bridge/mac/WebCoreScriptDebugger.mm: * bridge/mac/WebCoreSettings.h: * css/CSSGrammar.y: * css/CSSPageRule.cpp: * css/CSSPageRule.h: * css/MediaList.cpp: * css/cssstyleselector.h: * dom/Clipboard.h: * dom/Document.cpp: * dom/Document.h: * dom/EventTargetNode.h: * dom/Node.cpp: * dom/Node.h: * dom/Position.h: * dom/Range.cpp: * dom/XMLTokenizer.cpp: * editing/AppendNodeCommand.h: * editing/ApplyStyleCommand.cpp: * editing/BreakBlockquoteCommand.cpp: * editing/BreakBlockquoteCommand.h: * editing/CompositeEditCommand.cpp: * editing/CompositeEditCommand.h: * editing/CreateLinkCommand.h: * editing/DeleteFromTextNodeCommand.h: * editing/DeleteSelectionCommand.h: * editing/FormatBlockCommand.h: * editing/HTMLInterchange.cpp: * editing/HTMLInterchange.h: * editing/IndentOutdentCommand.h: * editing/InsertIntoTextNodeCommand.h: * editing/InsertLineBreakCommand.h: * editing/InsertListCommand.h: * editing/InsertNodeBeforeCommand.h: * editing/InsertTextCommand.cpp: * editing/InsertTextCommand.h: * editing/JSEditor.cpp: * editing/JSEditor.h: * editing/JoinTextNodesCommand.h: * editing/MergeIdenticalElementsCommand.cpp: * editing/MergeIdenticalElementsCommand.h: * editing/ModifySelectionListLevel.h: * editing/MoveSelectionCommand.h: * editing/RebalanceWhitespaceCommand.h: * editing/RemoveNodeAttributeCommand.h: * editing/RemoveNodeCommand.h: * editing/RemoveNodePreservingChildrenCommand.h: * editing/ReplaceSelectionCommand.h: * editing/SetNodeAttributeCommand.h: * editing/SplitElementCommand.cpp: * editing/SplitElementCommand.h: * editing/SplitTextNodeCommand.cpp: * editing/SplitTextNodeCommand.h: * editing/SplitTextNodeContainingElementCommand.h: * editing/TypingCommand.cpp: * editing/TypingCommand.h: * editing/UnlinkCommand.h: * editing/VisiblePosition.cpp: * editing/WrapContentsInDummySpanCommand.cpp: * editing/WrapContentsInDummySpanCommand.h: * editing/markup.cpp: * editing/markup.h: * html/HTMLAnchorElement.cpp: * html/HTMLBodyElement.cpp: * html/HTMLButtonElement.h: * html/HTMLCollection.h: * html/HTMLDocument.h: * html/HTMLEmbedElement.cpp: * html/HTMLFormElement.cpp: * html/HTMLFormElement.h: * html/HTMLFrameElement.cpp: * html/HTMLFrameSetElement.cpp: * html/HTMLKeygenElement.cpp: * html/HTMLLabelElement.cpp: * html/HTMLObjectElement.cpp: * html/HTMLObjectElement.h: * html/HTMLTableElement.cpp: * html/HTMLTablePartElement.cpp: * icon/IconDatabase.h: * kcanvas/KCanvasPath.h: * kcanvas/KCanvasResources.cpp: * kcanvas/KCanvasResources.h: * kcanvas/KCanvasTreeDebug.cpp: * kcanvas/KCanvasTreeDebug.h: * kcanvas/RenderSVGContainer.cpp: * kcanvas/RenderSVGText.h: * kcanvas/device/KRenderingPaintServer.h: * kcanvas/device/KRenderingPaintServerGradient.h: * kcanvas/device/KRenderingPaintServerSolid.cpp: * ksvg2/misc/SVGImageLoader.cpp: * ksvg2/svg/SVGElement.cpp: * ksvg2/svg/SVGElement.h: * ksvg2/svg/SVGForeignObjectElement.cpp: * ksvg2/svg/SVGForeignObjectElement.h: * ksvg2/svg/SVGImageElement.cpp: * ksvg2/svg/SVGPoint.h: * ksvg2/svg/SVGStylable.h: * ksvg2/svg/SVGTRefElement.cpp: * ksvg2/svg/SVGTRefElement.h: * ksvg2/svg/SVGTSpanElement.cpp: * ksvg2/svg/SVGTSpanElement.h: * ksvg2/svg/SVGTextElement.h: * ksvg2/svg/svgpathparser.cpp: * ksvg2/svg/svgpathparser.h: * loader/Cache.h: * loader/DocLoader.h: * loader/LoaderFunctions.h: * loader/mac/LoaderFunctionsMac.mm: * page/Frame.h: * page/FrameView.h: * page/Page.h: * page/Settings.h: * platform/AffineTransform.cpp: * platform/AffineTransform.h: * platform/Arena.cpp: * platform/Arena.h: * platform/CookieJar.h: * platform/DeprecatedCString.cpp: * platform/DeprecatedCString.h: * platform/DeprecatedPtrList.h: * platform/DeprecatedPtrListImpl.cpp: * platform/DeprecatedPtrListImpl.h: * platform/DeprecatedPtrQueue.h: * platform/DeprecatedString.cpp: * platform/DeprecatedString.h: * platform/DeprecatedStringList.cpp: * platform/DeprecatedStringList.h: * platform/DeprecatedValueList.h: * platform/DeprecatedValueListImpl.cpp: * platform/DeprecatedValueListImpl.h: * platform/FileButton.h: * platform/FloatPoint.h: * platform/FloatRect.h: * platform/FloatSize.h: * platform/FontData.h: * platform/FontFallbackList.h: * platform/GraphicsContext.h: * platform/IntPoint.h: * platform/IntRect.h: * platform/IntSize.h: * platform/KURL.cpp: * platform/KURL.h: * platform/ListBox.h: * platform/Logging.cpp: * platform/Logging.h: * platform/Pen.h: * platform/PopUpButton.h: * platform/RegularExpression.cpp: * platform/RegularExpression.h: * platform/SSLKeyGenerator.h: * platform/ScrollBar.h: * platform/SegmentedString.h: * platform/Shared.h: * platform/Slider.h: * platform/StringImpl.h: * platform/TextBox.h: * platform/TextField.h: * platform/TextStream.cpp: * platform/TextStream.h: * platform/TransferJob.h: * platform/TransferJobClient.h: * platform/Widget.h: * platform/cg/AffineTransformCG.cpp: * platform/mac/ClipboardMac.h: * platform/mac/ClipboardMac.mm: * platform/mac/DeprecatedStringListMac.mm: * platform/mac/FontCacheMac.mm: * platform/mac/KURLMac.mm: * platform/mac/ListBoxMac.mm: * platform/mac/PopUpButtonMac.mm: * platform/mac/SSLKeyGeneratorMac.mm: * platform/mac/TextBoxMac.mm: * platform/mac/TextFieldMac.mm: * platform/mac/WebCoreTextArea.h: * platform/mac/WebCoreTextArea.mm: * platform/mac/WebCoreTextField.h: * platform/mac/WebCoreTextField.mm: * rendering/DeprecatedRenderSelect.h: * rendering/RenderArena.cpp: * rendering/RenderArena.h: * rendering/RenderBlock.cpp: * rendering/RenderBox.cpp: * rendering/RenderContainer.cpp: * rendering/RenderFlexibleBox.cpp: * rendering/RenderFlow.cpp: * rendering/RenderLayer.cpp: * rendering/RenderLineEdit.cpp: * rendering/RenderObject.h: * rendering/RenderStyle.cpp: * rendering/RenderStyle.h: * rendering/RenderText.cpp: * rendering/RenderTextFragment.cpp: * rendering/RenderTheme.h: * rendering/RenderTreeAsText.cpp: * rendering/RenderTreeAsText.h: * rendering/RenderView.h: * rendering/bidi.h: * xml/XSLStyleSheet.cpp: * xml/XSLTProcessor.cpp: 2006-07-09 Geoffrey Garen Reviewed by Beth. * bindings/js/kjs_window.cpp: (KJS::Window::clear): Garbage collect after reinitalizing the global object, not before, since the reinitialization tends to create garbage. 2006-07-09 Timothy Hatcher Reviewed by Darin. Bug 9820: Move new DOM API that has been through API review to public headers http://bugzilla.opendarwin.org/show_bug.cgi?id=9820 * bindings/objc/DOM.mm: (-[DOMElement focus]): (-[DOMElement blur]): (-[DOMRange text]): (-[DOMRange _text]): * bindings/objc/DOMCSS.mm: (-[DOMRGBColor color]): (-[DOMRGBColor _color]): * bindings/objc/DOMCore.h: * bindings/objc/DOMEvents.h: * bindings/objc/DOMExtensions.h: * bindings/objc/DOMHTML.mm: (-[DOMHTMLElement titleDisplayString]): (-[DOMHTMLDocument createDocumentFragmentWithMarkupString:baseURL:]): (-[DOMHTMLDocument createDocumentFragmentWithText:]): (-[DOMHTMLDocument _createDocumentFragmentWithMarkupString:baseURLString:]): (-[DOMHTMLDocument _createDocumentFragmentWithText:]): * bindings/objc/DOMPrivate.h: * bindings/objc/DOMXPath.h: * bindings/objc/DOMXPath.mm: 2006-07-09 Beth Dakin Reviewed by Maciej. Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=9749 A nested content editable div causes unnecessary screen redraws. We were repainting too much because we were deciding that we needed a full layout because we didn't have a first line box. Our code used to hold a lot of assumptions that positioned elements would always have line boxes, but I fixed a few bugs a while back that appeared because this assumption isn't true. This assumption was also causing the extra redraws because the check meant that we would decide to do a full layout for any positioned element that did not have any line boxes in the first place. Maciej and I talked about this, and we couldn't figure out why the check for line boxes was part of determining if we need a full layout in the first place. After hunting around the code, we decided to assume that this check is antiquated. Removing it fixes the bug and doesn't seem to break any layout tests. So, fingers crossed! Will add layout test so soon. * rendering/bidi.cpp: (WebCore::RenderBlock::layoutInlineChildren): Remove firstLineBox check. 2006-07-09 David Harrison Reviewed by John Sullivan. Deleting the contents of a DOMRange and then inserting a node into it crashes in WebCore::Font::canUseGlyphCache Test: fast/dom/delete-contents.html * dom/Range.cpp: (WebCore::Range::processContents): 2006-07-09 Darin Adler - another round of renaming; and KWQ is dead * WebCore.vcproj/WebCore/WebCore.vcproj: Remove paths for kwq and khtml directories. Move files to their new locations. Did rename. * WebCore.xcodeproj/project.pbxproj: Move files to their new locations. Did rename. * WebCoreSources.bkl: Did rename. * webcore-base.bkl: Removed kwq. * kwq/AccessibilityObjectCache.h: Removed. * kwq/AccessibilityObjectCache.mm: Removed. * kwq/FormDataMac.h: Removed. * kwq/FormDataMac.mm: Removed. * kwq/WebCoreAXObject.h: Removed. * kwq/WebCoreAXObject.mm: Removed. * kwq/WebCoreEditCommand.h: Removed. * kwq/WebCoreEditCommand.mm: Removed. * kwq/WebCorePageState.h: Removed. * kwq/WebCorePageState.mm: Removed. * kwq/WebCoreResourceLoaderImp.h: Removed. * kwq/WebCoreResourceLoaderImp.mm: Removed. * bridge/AXObjectCache.h: Added. * bridge/mac/AXObjectCacheMac.mm: Added. * bridge/mac/WebCoreAXObject.h: Added. * bridge/mac/WebCoreAXObject.mm: Added. * loader/CachedObject.cpp: Removed. * loader/CachedObject.h: Removed. * loader/CachedObjectClient.h: Removed. * loader/CachedObjectClientWalker.cpp: Removed. * loader/CachedObjectClientWalker.h: Removed. * loader/CachedResource.cpp: Added. * loader/CachedResource.h: Added. * loader/CachedResourceClient.h: Added. * loader/CachedResourceClientWalker.cpp: Added. * loader/CachedResourceClientWalker.h: Added. * bridge/mac/FrameMac.mm: * bridge/mac/WebCoreFrameBridge.mm: * css/CSSImageValue.h: * css/CSSImportRule.h: * dom/Document.cpp: * dom/Document.h: * dom/Notation.h: * dom/ProcessingInstruction.h: * dom/XMLTokenizer.cpp: * html/CanvasPattern.h: * html/HTMLDocument.h: * html/HTMLImageLoader.cpp: * html/HTMLImageLoader.h: * html/HTMLLinkElement.h: * html/HTMLScriptElement.cpp: * html/HTMLScriptElement.h: * html/HTMLTokenizer.cpp: * html/HTMLTokenizer.h: * kcanvas/KCanvasFilters.h: * ksvg2/svg/SVGCursorElement.cpp: * ksvg2/svg/SVGCursorElement.h: * ksvg2/svg/SVGFEImageElement.cpp: * ksvg2/svg/SVGFEImageElement.h: * loader/Cache.cpp: * loader/Cache.h: * loader/CachedCSSStyleSheet.cpp: * loader/CachedCSSStyleSheet.h: * loader/CachedImage.cpp: * loader/CachedImage.h: * loader/CachedScript.cpp: * loader/CachedScript.h: * loader/CachedXBLDocument.cpp: * loader/CachedXBLDocument.h: * loader/CachedXSLStyleSheet.cpp: * loader/CachedXSLStyleSheet.h: * loader/DocLoader.cpp: * loader/DocLoader.h: * loader/LoaderFunctions.h: * loader/Request.cpp: * loader/Request.h: * loader/loader.cpp: * loader/loader.h: * loader/mac/LoaderFunctionsMac.mm: * page/Frame.cpp: * page/FrameView.cpp: * platform/gdk/TemporaryLinkStubs.cpp: * platform/mac/ClipboardMac.h: * platform/win/TemporaryLinkStubs.cpp: * rendering/RenderBox.h: * rendering/RenderContainer.cpp: * rendering/RenderImage.cpp: * rendering/RenderImage.h: * rendering/RenderLayer.h: * rendering/RenderObject.cpp: * rendering/RenderObject.h: * rendering/RenderStyle.cpp: * rendering/RenderStyle.h: * xml/XSLImportRule.h: Did renaming. * platform/mac/can-convert.mm: Removed. 2006-07-09 Anders Carlsson Reviewed by Tim O. * WebCore.exp: Add wkPathFromFont. * platform/mac/FontDataMac.mm: (-[NSFont WebCore]): Use wkPathFromFont. * platform/mac/WebCoreSystemInterface.h: * platform/mac/WebCoreSystemInterface.mm: Declare wkPathFromFont. 2006-07-09 Brady Eidson Reviewed by Maciej Set the stage to remove the workaround for the SQLite BLOB corruption. A few other small cleanups, and preparation for pruning unreferenced and unretained icons. * icon/IconDatabase.cpp: (WebCore::IconDatabase::recreateDatabase): Added another trigger to assist in icon removal (WebCore::IconDatabase::deletePrivateTables): Cleaned up logging messages (WebCore::IconDatabase::imageDataForIconID): #ifdefed the blobbing hack for impending removal, use the real blob by default (WebCore::IconDatabase::imageDataForIconURL): same (WebCore::IconDatabase::imageDataForPageURL): same (WebCore::IconDatabase::pruneUnreferencedIcons): Will delete any icons and their data that are not referenced by any PageURL * icon/IconDatabase.h: * icon/SQLDatabase.h: Changed BlobAsVector to be unsigned char as thats the most reasonable type for a byte-buffer, and is what CFData expects * icon/SQLStatement.cpp: (WebCore::SQLStatement::getColumnBlobAsVector): 2006-07-09 Darin Adler - move all but the last 12 files out of kwq directory - removed a few unused source files I discovered * WebCore.vcproj/WebCore/WebCore.vcproj: Update for new file locations. * WebCore.xcodeproj/project.pbxproj: Ditto. * bridge/mac/FrameMac.mm: * dom/Element.h: * html/HTMLImageLoader.cpp: * loader/Cache.cpp: * loader/Cache.h: * loader/CachedCSSStyleSheet.cpp: * loader/CachedCSSStyleSheet.h: * loader/CachedImage.cpp: * loader/CachedImage.h: * loader/CachedObject.h: * loader/CachedScript.cpp: * loader/CachedScript.h: * loader/CachedXBLDocument.cpp: * loader/CachedXBLDocument.h: * loader/CachedXSLStyleSheet.cpp: * loader/CachedXSLStyleSheet.h: * loader/DocLoader.cpp: * loader/DocLoader.h: * page/Frame.cpp: * page/Frame.h: * page/FramePrivate.h: * platform/gdk/TemporaryLinkStubs.cpp: * platform/win/TemporaryLinkStubs.cpp: * rendering/DeprecatedSlider.cpp: * rendering/RenderObject.h: * xml/xmlhttprequest.cpp: Updated includes as needed for file location changes. Changed CachePolicy uses to match new filename and enum names. * loader/CachedResource.cpp: Removed. * loader/CachedResource.h: Removed. * loader/CachedResourceClient.h: Removed. * loader/CachedResourceClientWalker.cpp: Removed. * loader/CachedResourceClientWalker.h: Removed. The above files were checked in by accident a while back. The rename of CachedObject to CachedResource is now reflected in do-webcore-rename, and will be done soon. * kwq/AffineTransform.cpp: Removed. * kwq/AffineTransform.h: Removed. * kwq/CacheControl.h: Removed. * kwq/DeprecatedPtrQueue.h: Removed. * kwq/FileButton.h: Removed. * kwq/FileButton.mm: Removed. * kwq/ListBox.h: Removed. * kwq/ListBox.mm: Removed. * kwq/LoaderFunctions.h: Removed. * kwq/LoaderFunctions.mm: Removed. * kwq/PopUpButton.h: Removed. * kwq/PopUpButton.mm: Removed. * kwq/SSLKeyGenerator.h: Removed. * kwq/SSLKeyGenerator.mm: Removed. * kwq/Settings.h: Removed. * kwq/TextBox.h: Removed. * kwq/TextBox.mm: Removed. * kwq/TextField.h: Removed. * kwq/TextField.mm: Removed. * kwq/WebCoreScrollBar.h: Removed. * kwq/WebCoreScrollBar.mm: Removed. * kwq/WebCoreSlider.h: Removed. * kwq/WebCoreSlider.mm: Removed. * loader/CachePolicy.h: Added. * loader/LoaderFunctions.h: Added. * loader/mac/LoaderFunctionsMac.mm: Added. * page/Settings.h: Added. * platform/AffineTransform.cpp: Added. * platform/AffineTransform.h: Added. * platform/DeprecatedPtrQueue.h: Added. * platform/FileButton.h: Added. * platform/ListBox.h: Added. * platform/PopUpButton.h: Added. * platform/SSLKeyGenerator.h: Added. * platform/ScrollBar.h: Added. * platform/Slider.h: Added. * platform/TextBox.h: Added. * platform/TextField.h: Added. * platform/cg/AffineTransformCG.cpp: Added. * platform/mac/FileButtonMac.mm: Added. * platform/mac/ListBoxMac.mm: Added. * platform/mac/PopUpButtonMac.mm: Added. * platform/mac/SSLKeyGeneratorMac.mm: Added. * platform/mac/ScrollBarMac.mm: Added. * platform/mac/ScrollBarMac.mm: Added. * platform/mac/SliderMac.mm: Added. * platform/mac/SliderMac.mm: Added. * platform/mac/TextBoxMac.mm: Added. * platform/mac/TextFieldMac.mm: Added. 2006-07-09 Darin Adler - move 4 files out of kwq directory - make some minor project adjustments for the WebCore project * WebCore.xcodeproj/project.pbxproj: Link libsqlite3 the same way we do other libraries, rather than using a custom linker option. Moved the files from their old locations to the new ones. Removed "khtml" from the list of header search paths since that directory doesn't exist any more. Eliminated STYLE_LDFLAGS and just put -umbrella WebKit in OTHER_LDFLAGS in the Production configuration (was a leftover from "build styles" in Xcode 1). Changed to use EXPORTED_SYMBOLS_FILE instead of using -exported_symbols_list directly again now that Xcode has fixed the "strip twice" bug. Removed unneeded explicit SECTORDER_FLAGS = "" settings. Removed the explicit -Y,3 option now that Xcode does that by default. * WebCore.vcproj/WebCore/WebCore.vcproj: Removed some obsolete uneeded files, many of which didn't exist any more. Moved the files from their old locations to the new ones. * WebCoreSources.bkl: Moved the files from their old locations to the new ones. * kwq/DeprecatedCString.cpp: Removed. * kwq/DeprecatedCString.h: Removed. * kwq/TextStream.cpp: Removed. * kwq/TextStream.h: Removed. * platform/DeprecatedCString.cpp: Added. * platform/DeprecatedCString.h: Added. * platform/TextStream.cpp: Added. * platform/TextStream.h: Added. 2006-07-09 Darin Adler Rubber stamped by Maciej (kinda). - did the next pass of renaming (used do-webcore-rename script) this takes care of most of the remaining KWQ names (almost all) * WebCore+SVG/DOMList.h: * WebCore.vcproj/WebCore/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * WebCoreSources.bkl: * bindings/js/kjs_dom.cpp: * bindings/js/kjs_window.cpp: * bindings/objc/DOMHTML.mm: * bridge/mac/FrameMac.h: * bridge/mac/FrameMac.mm: * bridge/mac/WebCoreFrameBridge.mm: * bridge/mac/WebCoreSettings.h: * bridge/mac/WebCoreSettings.mm: * bridge/win/FrameWin.cpp: * css/CSSPrimitiveValue.cpp: * css/CSSValueKeywords.in: * css/MediaQueryEvaluator.cpp: * css/cssparser.cpp: * css/cssstyleselector.cpp: * css/cssstyleselector.h: * dom/CharacterData.cpp: * dom/CharacterData.h: * dom/Document.cpp: * dom/Element.cpp: * dom/Element.h: * dom/EventTargetNode.cpp: * dom/EventTargetNode.h: * dom/Node.cpp: * dom/Node.h: * dom/Position.cpp: * dom/ProcessingInstruction.cpp: * dom/QualifiedName.cpp: * dom/QualifiedName.h: * dom/XMLTokenizer.cpp: Added. * dom/xml_tokenizer.cpp: Removed. * dom/xml_tokenizer.h: Removed. * editing/EditAction.h: * editing/HTMLInterchange.cpp: * editing/HTMLInterchange.h: * editing/Selection.h: * editing/SelectionController.h: * editing/TextAffinity.h: * editing/TextIterator.cpp: * editing/TextIterator.h: * editing/VisiblePosition.h: * editing/htmlediting.cpp: * editing/markup.cpp: * editing/markup.h: * editing/visible_units.cpp: * editing/visible_units.h: * html/HTMLDocument.cpp: * html/HTMLFontElement.cpp: * html/HTMLInputElement.cpp: * html/HTMLKeygenElement.cpp: * html/HTMLSelectElement.h: * html/HTMLTextAreaElement.cpp: * html/HTMLTextFieldInnerElement.cpp: * html/HTMLTokenizer.cpp: * html/HTMLTokenizer.h: * kcanvas/KCanvasContainer.cpp: Removed. * kcanvas/KCanvasContainer.h: Removed. * kcanvas/KCanvasCreator.cpp: * kcanvas/KCanvasFilters.cpp: * kcanvas/KCanvasFilters.h: * kcanvas/KCanvasMatrix.cpp: * kcanvas/KCanvasMatrix.h: * kcanvas/KCanvasPath.cpp: * kcanvas/KCanvasPath.h: * kcanvas/KCanvasResources.cpp: * kcanvas/KCanvasResources.h: * kcanvas/KCanvasTreeDebug.cpp: * kcanvas/KCanvasTreeDebug.h: * kcanvas/RenderForeignObject.cpp: * kcanvas/RenderForeignObject.h: * kcanvas/RenderPath.cpp: * kcanvas/RenderPath.h: * kcanvas/RenderSVGContainer.cpp: Added. * kcanvas/RenderSVGContainer.h: Added. * kcanvas/RenderSVGImage.cpp: * kcanvas/RenderSVGImage.h: * kcanvas/RenderSVGText.cpp: * kcanvas/RenderSVGText.h: * kcanvas/device/KRenderingPaintServer.h: * kcanvas/device/KRenderingPaintServerGradient.cpp: * kcanvas/device/KRenderingPaintServerGradient.h: * kcanvas/device/KRenderingPaintServerPattern.cpp: * kcanvas/device/KRenderingPaintServerPattern.h: * kcanvas/device/KRenderingPaintServerSolid.cpp: * kcanvas/device/KRenderingPaintServerSolid.h: * kcanvas/device/quartz/KCanvasFilterQuartz.mm: * kcanvas/device/quartz/KCanvasItemQuartz.h: * kcanvas/device/quartz/KCanvasResourcesQuartz.h: * kcanvas/device/quartz/KRenderingDeviceQuartz.mm: * kcanvas/device/quartz/KRenderingPaintServerGradientQuartz.mm: * kcanvas/device/quartz/KRenderingPaintServerQuartz.mm: * ksvg2/css/CSSValueKeywords.in: * ksvg2/css/SVGRenderStyleDefs.cpp: * ksvg2/misc/KCanvasRenderingStyle.cpp: * ksvg2/misc/KSVGTimeScheduler.cpp: * ksvg2/svg/SVGAElement.cpp: * ksvg2/svg/SVGAnimateTransformElement.cpp: * ksvg2/svg/SVGAnimateTransformElement.h: * ksvg2/svg/SVGGElement.cpp: * ksvg2/svg/SVGHelper.cpp: * ksvg2/svg/SVGHelper.h: * ksvg2/svg/SVGImageElement.cpp: * ksvg2/svg/SVGLinearGradientElement.cpp: * ksvg2/svg/SVGMarkerElement.cpp: * ksvg2/svg/SVGMaskElement.cpp: * ksvg2/svg/SVGMatrix.cpp: * ksvg2/svg/SVGMatrix.h: * ksvg2/svg/SVGPatternElement.cpp: * ksvg2/svg/SVGRadialGradientElement.cpp: * ksvg2/svg/SVGSVGElement.cpp: * ksvg2/svg/SVGStyledElement.h: * ksvg2/svg/SVGStyledTransformableElement.cpp: * ksvg2/svg/SVGStyledTransformableElement.h: * ksvg2/svg/SVGSwitchElement.cpp: * ksvg2/svg/SVGTextElement.cpp: * ksvg2/svg/SVGTransformable.h: * ksvg2/svg/SVGUseElement.cpp: * kwq/AffineTransform.cpp: Added. * kwq/AffineTransform.h: Added. * kwq/DeprecatedCString.cpp: Added. * kwq/DeprecatedCString.h: Added. * kwq/DeprecatedPtrQueue.h: Added. * kwq/FileButton.h: Added. * kwq/FileButton.mm: Added. * kwq/FormDataMac.mm: Added. * kwq/KWQCString.cpp: Removed. * kwq/KWQCString.h: Removed. * kwq/KWQComboBox.h: Removed. * kwq/KWQComboBox.mm: Removed. * kwq/KWQEditCommand.h: Removed. * kwq/KWQEditCommand.mm: Removed. * kwq/KWQFileButton.h: Removed. * kwq/KWQFileButton.mm: Removed. * kwq/KWQFormData.h: Removed. * kwq/KWQFormData.mm: Removed. * kwq/KWQKHTMLSettings.h: Removed. * kwq/KWQKIOGlobal.h: Removed. * kwq/KWQKSSLKeyGen.h: Removed. * kwq/KWQKSSLKeyGen.mm: Removed. * kwq/KWQLineEdit.h: Removed. * kwq/KWQLineEdit.mm: Removed. * kwq/KWQListBox.h: Removed. * kwq/KWQListBox.mm: Removed. * kwq/KWQLoader.h: Removed. * kwq/KWQLoader.mm: Removed. * kwq/KWQPageState.h: Removed. * kwq/KWQPageState.mm: Removed. * kwq/KWQPtrQueue.h: Removed. * kwq/KWQResourceLoader.h: Removed. * kwq/KWQResourceLoader.mm: Removed. * kwq/KWQScrollBar.h: Removed. * kwq/KWQScrollBar.mm: Removed. * kwq/KWQSlider.h: Removed. * kwq/KWQSlider.mm: Removed. * kwq/KWQTextEdit.h: Removed. * kwq/KWQTextEdit.mm: Removed. * kwq/KWQTextStream.cpp: Removed. * kwq/KWQTextStream.h: Removed. * kwq/KWQWMatrix.cpp: Removed. * kwq/KWQWMatrix.h: Removed. * kwq/ListBox.h: Added. * kwq/ListBox.mm: Added. * kwq/LoaderFunctions.h: Added. * kwq/LoaderFunctions.mm: Added. * kwq/PopUpButton.h: Added. * kwq/PopUpButton.mm: Added. * kwq/SSLKeyGenerator.h: Added. * kwq/SSLKeyGenerator.mm: Added. * kwq/Settings.h: Added. * kwq/TextBox.h: Added. * kwq/TextBox.mm: Added. * kwq/TextField.h: Added. * kwq/TextField.mm: Added. * kwq/TextStream.cpp: Added. * kwq/TextStream.h: Added. * kwq/WebCoreEditCommand.h: Added. * kwq/WebCoreEditCommand.mm: Added. * kwq/WebCorePageState.h: Added. * kwq/WebCorePageState.mm: Added. * kwq/WebCoreResourceLoaderImp.h: Added. * kwq/WebCoreResourceLoaderImp.mm: Added. * kwq/WebCoreScrollBar.h: Added. * kwq/WebCoreScrollBar.mm: Added. * kwq/WebCoreSlider.h: Added. * kwq/WebCoreSlider.mm: Added. * loader/Cache.h: * loader/CachedCSSStyleSheet.cpp: * loader/CachedImage.cpp: * loader/CachedObject.h: * loader/CachedObjectClientWalker.h: * loader/CachedResource.h: * loader/CachedResourceClientWalker.h: * loader/CachedScript.h: * loader/CachedXBLDocument.h: * loader/Decoder.h: * loader/DocLoader.cpp: * loader/DocLoader.h: * loader/FormData.h: * loader/ImageDocument.cpp: * loader/PluginDocument.cpp: * loader/TextDocument.cpp: * loader/loader.cpp: * loader/loader.h: * page/Frame.cpp: * page/Frame.h: * page/FramePrivate.h: * page/Page.cpp: * page/Page.h: * platform/DeprecatedPtrList.h: * platform/DeprecatedPtrListImpl.cpp: * platform/DeprecatedPtrListImpl.h: * platform/DeprecatedString.cpp: * platform/DeprecatedString.h: * platform/DeprecatedStringList.cpp: * platform/DeprecatedStringList.h: * platform/DeprecatedValueList.h: * platform/DeprecatedValueListImpl.cpp: * platform/DeprecatedValueListImpl.h: * platform/FloatSize.h: * platform/Font.cpp: * platform/KURL.cpp: * platform/RegularExpression.cpp: * platform/RegularExpression.h: * platform/SegmentedString.h: * platform/StreamingTextDecoder.cpp: * platform/String.cpp: * platform/StringImpl.cpp: * platform/TextEncoding.cpp: * platform/TransferJob.cpp: * platform/TransferJob.h: * platform/TransferJobInternal.h: * platform/gdk/FrameGdk.cpp: * platform/gdk/TemporaryLinkStubs.cpp: * platform/mac/ClipboardMac.h: * platform/mac/ClipboardMac.mm: * platform/mac/CursorMac.mm: * platform/mac/DeprecatedStringMac.mm: Added. * platform/mac/FontCacheMac.mm: * platform/mac/FontMac.mm: * platform/mac/FoundationExtras.h: * platform/mac/ImageMac.mm: * platform/mac/KURLMac.mm: * platform/mac/MouseEventMac.mm: Removed. * platform/mac/QStringListMac.mm: Removed. * platform/mac/QStringMac.mm: Removed. * platform/mac/TransferJobMac.mm: * platform/mac/WebCoreTextArea.h: * platform/mac/WebCoreTextArea.mm: * platform/mac/WebCoreTextField.h: * platform/mac/WebCoreTextField.mm: * platform/mac/WidgetMac.mm: * platform/win/TemporaryLinkStubs.cpp: * rendering/DataRef.h: * rendering/DeprecatedRenderSelect.cpp: * rendering/DeprecatedRenderSelect.h: * rendering/DeprecatedSlider.cpp: * rendering/InlineFlowBox.cpp: * rendering/RenderApplet.cpp: * rendering/RenderBlock.cpp: * rendering/RenderBlock.h: * rendering/RenderContainer.cpp: * rendering/RenderFileButton.cpp: * rendering/RenderFlexibleBox.cpp: * rendering/RenderFlow.cpp: * rendering/RenderFormElement.cpp: * rendering/RenderFrameSet.cpp: * rendering/RenderFrameSet.h: * rendering/RenderImage.cpp: * rendering/RenderInline.cpp: * rendering/RenderLayer.cpp: * rendering/RenderLayer.h: * rendering/RenderLineEdit.cpp: * rendering/RenderListItem.cpp: * rendering/RenderListMarker.cpp: * rendering/RenderObject.cpp: * rendering/RenderObject.h: * rendering/RenderPartObject.cpp: * rendering/RenderReplaced.cpp: * rendering/RenderStyle.cpp: Added. * rendering/RenderStyle.h: Added. * rendering/RenderTable.cpp: * rendering/RenderTable.h: * rendering/RenderTableCell.cpp: * rendering/RenderTableCell.h: * rendering/RenderTableCol.cpp: * rendering/RenderTableCol.h: * rendering/RenderTableRow.cpp: * rendering/RenderTableSection.cpp: * rendering/RenderTableSection.h: * rendering/RenderText.cpp: * rendering/RenderText.h: * rendering/RenderTextArea.cpp: * rendering/RenderTextControl.cpp: Added. * rendering/RenderTextControl.h: Added. * rendering/RenderTextField.cpp: Removed. * rendering/RenderTextField.h: Removed. * rendering/RenderTheme.cpp: * rendering/RenderThemeMac.mm: * rendering/RenderTreeAsText.cpp: * rendering/RenderTreeAsText.h: * rendering/RenderView.cpp: * rendering/RenderWidget.cpp: * rendering/bidi.cpp: * rendering/render_style.cpp: Removed. * rendering/render_style.h: Removed. * xml/XSLStyleSheet.cpp: * xml/XSLTProcessor.cpp: * xml/xmlhttprequest.cpp: * xpath/impl/XPathParser.cpp: 2006-07-09 Rob Buis Reviewed by Darin. http://bugzilla.opendarwin.org/show_bug.cgi?id=8251 navigator.platform incorrect in WebKit.app on Intel Macs For navigator.platform return "MacIntel" for Intel processors, "MacPPC" otherwise. * bindings/js/kjs_navigator.cpp: (KJS::Navigator::getValueProperty): 2006-07-08 Timothy Hatcher Reviewed by Maciej. Bug 5312: comments aren't available via DOM http://bugzilla.opendarwin.org/show_bug.cgi?id=5312 getting comments via DOM isn't working (5312) DOM_COMMENT node masking out real DOM elements * dom/Document.cpp: (WebCore::Document::removedLastRef): set m_documentElement to 0 (WebCore::Document::childrenChanged): invalidate the document element we have cached in case it was replaced (WebCore::Document::documentElement): cache the first element as the document node if m_documentElement is 0 * dom/Document.h: added m_documentElement * html/HTMLDocument.cpp: removed documentElement(), HTML documents just use Document's documentElement() * html/HTMLDocument.h: ditto * html/HTMLParser.cpp: (WebCore::HTMLParser::handleError): make a new HTML node is the document's firstChild is NULL or the firstChild is not a HTML element (like a comment) * html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::parseComment): removed the #ifdef to include comment nodes 2006-07-08 Anders Carlsson Reviewed by Darin, tweaked slightly and landed by Maciej. http://bugzilla.opendarwin.org/show_bug.cgi?id=9787 fast/frames tests failing (bad pointer to owner element) under MallocScribble * html/HTMLFrameElement.cpp: (WebCore::HTMLFrameElement::close): Disconnect the owner element of our frame. * html/HTMLIFrameElement.cpp: (WebCore::HTMLIFrameElement::attach): Don't call setFrame here. * html/HTMLPlugInElement.cpp: (WebCore::HTMLPlugInElement::detach): Disconnect the owner element of our frame. * html/HTMLPlugInElement.h: (WebCore::HTMLPlugInElement::setFrameName): New function. * page/Frame.cpp: (WebCore::Frame::Frame): Don't call setFrame. (WebCore::Frame::~Frame): Null out the owner element. (WebCore::Frame::requestObject): When an object creates a child frame, assign it a name so it can be accessed from HTMLPlugInElement. * rendering/RenderPart.cpp: (WebCore::RenderPart::RenderPart): (WebCore::RenderPart::~RenderPart): * rendering/RenderPart.h: Get rid of setFrame. 2006-07-08 Darin Adler Reviewed by Geoff. - better fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=9622 REGRESSION: showModalDialog returnValue ignored, function result is always "undefined" * bindings/js/kjs_window.cpp: (KJS::showModalDialog): Set the return value after returning from the function if the window is not cleared; this is a better way to handle the case where the window does not get cleared before returning, and handles some new cases created by slight changes in the latest Safari properly too. (KJS::Window::clear): Changed logic slightly so we always store the result of getDirect into the return value slot -- the old code left the storage untouched if it was 0. Also made it only overwrite the return value slot if it's 0. * bindings/js/kjs_proxy.h: * bindings/js/kjs_proxy.cpp: * bindings/js/kjs_window.h: * bindings/js/kjs_window.cpp: * page/Frame.cpp: Roll the previous fix out. 2006-07-08 Darin Adler - try to fix Windows build * WebCore.vcproj/WebCore/WebCore.vcproj: Add missing source files. === Safari-521.15 === 2006-07-07 Justin Garcia Reviewed by levi Fix Mail ToDo crashers. * dom/Range.cpp: (WebCore::Range::compareBoundaryPoints): Added an ASSERT that both containers are non-null and an early return. * editing/Selection.cpp: (WebCore::Selection::validate): Fix a dangling start/end. (WebCore::Selection::adjustForEditableContent): Added an early return if m_start or m_end are null. (WebCore::Selection::isContentEditable): Use isRichlyEditablePosition. (WebCore::Selection::isContentRichlyEditable): Ditto. * editing/Selection.h: * editing/VisiblePosition.cpp: (WebCore::VisiblePosition::next): Use the new highestEditableRoot. (WebCore::VisiblePosition::previous): Ditto. * editing/htmlediting.cpp: (WebCore::highestEditableRoot): Takes in a position. (WebCore::isEditablePosition): Added. (WebCore::isRichlyEditablePosition): Added. (WebCore::rootEditableElement): Added. (WebCore::nextCandidate): Moved and split out from nextVisiblePosition. (WebCore::nextVisuallyDistinctCandidate): Ditto. (WebCore::previousCandidate): Moved and split out from previousVisiblePosition. (WebCore::previousVisuallyDistinctCandidate): Ditto. (WebCore::firstEditablePositionAfterPositionInRoot): Iterate over positions, using nextVisuallyDistinctCandidate, skipping atomic nodes that are non-editable. (WebCore::lastEditablePositionBeforePositionInRoot): Ditto. * editing/htmlediting.h: * editing/visible_units.cpp: (WebCore::startOfWord): Added a FIXME. 2006-07-07 Levi Weintraub Reviewed by justin Allowed deletion typing commands to take in a granularity * bridge/mac/WebCoreFrameBridge.h: Pass granularity across the bridge * bridge/mac/WebCoreFrameBridge.mm: Ditto (-[WebCoreFrameBridge deleteKeyPressedWithSmartDelete:granularity:]): (-[WebCoreFrameBridge forwardDeleteKeyPressedWithSmartDelete:granularity:]): * editing/TypingCommand.cpp: Constructors take in a granularity (WebCore::TypingCommand::TypingCommand): (WebCore::TypingCommand::deleteKeyPressed): (WebCore::TypingCommand::forwardDeleteKeyPressed): * editing/TypingCommand.h: ditto * page/Frame.h: Fixed bug that shouldDeleteSelection wasn't virtual 2006-07-07 Brady Eidson Reviewed by Anders and Tim Hatcher Added an accessor to a SQLite config option to change its disk-syncing behavior. Used this accessor to significantly speed up writes to the Icon DB. * icon/IconDatabase.cpp: (WebCore::IconDatabase::open): Disable full syncing to the SQLite db to speed up writes to the icondb * icon/SQLDatabase.cpp: (SQLDatabase::setFullsync): (SQLDatabase::setSynchronous): * icon/SQLDatabase.h: (WebCore::SQLDatabase::): Added accessor to the SQLite config pragma "synchronous" 2006-07-07 Darin Adler Reviewed by Maciej. - fixed a storage leak noticed by the buildbot * dom/Document.cpp: (WebCore::Document::removedLastRef): Call delete on the markers before clearing the map containing them. 2006-07-08 Anders Carlsson Reviewed by Brady. http://bugzilla.opendarwin.org/show_bug.cgi?id=9777 Reproducible crash in Loading/Frames in ToT. The problem was that the renderpart destructor resets the frame's owner element. For iframes, this should only be done when the element is going to be removed from the document. * html/HTMLIFrameElement.cpp: (WebCore::HTMLIFrameElement::~HTMLIFrameElement): (WebCore::HTMLIFrameElement::willRemove): (WebCore::HTMLIFrameElement::removedFromDocument): (WebCore::HTMLIFrameElement::detach): * html/HTMLIFrameElement.h: Remove the frame in willRemove instead. * rendering/RenderPart.cpp: (WebCore::RenderPart::RenderPart): (WebCore::RenderPart::~RenderPart): * rendering/RenderPart.h: Don't call setFrame(0) in the destructor when the element is an iframe element. 2006-07-07 Darin Adler Reviewed by Anders. - fixed a storage leak noticed by the buildbot * page/FrameView.cpp: (WebCore::FrameViewPrivate::~FrameViewPrivate): Delete m_scheduledEvents. 2006-07-07 Darin Adler Reviewed by Adele. - fixed a couple of storage leaks noticed by the buildbot * html/HTMLOptGroupElement.cpp: (WebCore::HTMLOptGroupElement::attach): Call deref on the style after calling setRenderStyle, since styleForRenderer returns us a "ref'd" RenderStyle object. * html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::attach): Ditto. 2006-07-07 Darin Adler Reviewed by Adele. - fix some license mistakes * LICENSE-APPLE: Added more years of publication to the copyright here. * html/CanvasGradient.idl: Corrected license on this file. It had the wrong one. * html/CanvasPattern.idl: Ditto. * html/CanvasRenderingContext2D.idl: Ditto. * html/HTMLCanvasElement.idl: Ditto. 2006-07-06 Levi Weintraub Reviewed by justin Improved table editing: pressing delete directly before or after a table will now select the table first, then delete it, instead of just deleting it. Useful for when the table's existence is non-obvious. * bridge/mac/FrameMac.h: Added shouldDeleteSelection, which allows WebCore to trigger deletion editing deligates * bridge/mac/FrameMac.mm: ditto (WebCore::FrameMac::shouldDeleteSelection): * bridge/mac/WebCoreFrameBridge.h: ditto * editing/TypingCommand.cpp: Implemented check for a caret position next to a table, and subsequent selection (as opposed to removal) (WebCore::TypingCommand::deleteKeyPressed): (WebCore::TypingCommand::forwardDeleteKeyPressed): * page/Frame.cpp: shouldDeleteSelection added (WebCore::Frame::shouldDeleteSelection): * page/Frame.h: ditto 2006-07-07 Sam Weinig Reviewed by Eric. - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9768 Split XSLImportRule out of XSLStyleSheet.* into separate files (one class per file). * WebCore.xcodeproj/project.pbxproj: * xml/XSLImportRule.cpp: Added. (WebCore::XSLImportRule::XSLImportRule): (WebCore::XSLImportRule::parentStyleSheet): (WebCore::XSLImportRule::loadSheet): * xml/XSLImportRule.h: Added. * xml/XSLStyleSheet.cpp: * xml/XSLStyleSheet.h: 2006-07-07 Anders Carlsson Reviewed by Darin. http://bugzilla.opendarwin.org/show_bug.cgi?id=8300 REGRESSION: First mouse click is randomly ignored when clicking on checkbox and radio buttons * css/html4.css: Set "-webkit-user-select: ignore" on radio buttons and check boxes . 2006-07-07 Maciej Stachowiak Reviewed by Tim Hatcher. - fix 20 Node leaks on fast/events tests - these should be the last ones * bindings/objc/DOMEvents.mm: (-[DOMEvent dealloc]): implement - deref the event! (-[DOMEvent finalize]): ditto 2006-07-06 Maciej Stachowiak Reviewed by Tim Hatcher. - fix 26 Node leaks on fast/dom tests * dom/Document.cpp: (WebCore::Document::removedLastRef): delete tokenizer - if we are still parsing at this point, we don't want nodes held by the parser to keep the document alive. * html/HTMLParser.cpp: (WebCore::RefNonDocNodePtr::RefNonDocNodePtr): Smart pointer that acts like RefPtr for Node, but avoids refing document nodes to avoid cycles. (WebCore::RefNonDocNodePtr::~RefNonDocNodePtr): (WebCore::RefNonDocNodePtr::get): (WebCore::RefNonDocNodePtr::operator*): (WebCore::RefNonDocNodePtr::operator->): (WebCore::RefNonDocNodePtr::operator!): (WebCore::RefNonDocNodePtr::operator UnspecifiedBoolType): (WebCore::RefNonDocNodePtr::operator=): (WebCore::operator==): (WebCore::operator!=): (WebCore::HTMLStackElem): Use a RefNonDocNodePtr instead of RefPtr (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks): Use a RefPtr here to avoid crashing 2006-07-06 Adele Peterson Reviewed by Maciej. Fixed new popup control to open up when the spacebar and the up and down arrows are pressed. - Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=9762 [Native pop up] Highlighted item text is black instead of white * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::isKeyboardFocusable): Added. (WebCore::HTMLSelectElement::isMouseFocusable): Added. (WebCore::HTMLSelectElement::defaultEventHandler): Updated to showPopup for up and down arrow keys and spacebar. * html/HTMLSelectElement.h: (WebCore::HTMLSelectElement::shouldUseMenuList): Made this const. * rendering/RenderPopupMenu.cpp: (WebCore::RenderPopupMenu::populate): Added FIXME. * rendering/RenderPopupMenuMac.mm: (WebCore::RenderPopupMenuMac::showPopup): Updated to save the NSEvent that triggers the popup, so we can send fake mouseUp and keyUp events when the NSMenu returns. (WebCore::RenderPopupMenuMac::addGroupLabel): Only set the NSForegroundColorAttributeName attribute if the text isn't black. Follow-up bug about other colors: http://bugzilla.opendarwin.org/show_bug.cgi?id=9769 (WebCore::RenderPopupMenuMac::addOption): ditto. * bridge/mac/FrameMac.h: (WebCore::FrameMac::currentEvent): Returns the current NSEvent. 2006-07-06 Justin Garcia Reviewed by levi Mail crashes at WebCore::Selection::adjustForEditableContent Crash at WebCore::Range::compareBoundaryPoints * editing/Selection.cpp: (WebCore::Selection::adjustForEditableContent): * editing/VisiblePosition.cpp: (WebCore::VisiblePosition::next): Moved code into a helper function. (WebCore::VisiblePosition::previous): Ditto. * editing/htmlediting.cpp: (WebCore::comparePositions): Moved from Selection.cpp. (WebCore::lowestEditableAncestor): Added. Returns rootEditableElement for a node in editable content and the rootEditableElement for the first ancestor that's editable for a node in non-editable content. (WebCore::firstEditablePositionAfterPositionInRoot): (WebCore::lastEditablePositionBeforePositionInRoot): * editing/htmlediting.h: 2006-07-06 Anders Carlsson Reviewed by Adele. http://bugzilla.opendarwin.org/show_bug.cgi?id=9528 REGRESSION: arrow key skips '>' in Bugzilla replies due to '\n' in text nodes Patch by Darin, tweaked by Anders. * html/HTMLElement.cpp: (WebCore::HTMLElement::setInnerText): Convert newline characters to
elements. I've verified that what's done here is what WinIE does when setting innerText. (WebCore::HTMLElement::setOuterText): Fix comment. * rendering/RenderTextField.cpp: (WebCore::RenderTextField::textWithHardLineBreaks): Remove assert. m_div->firstChild() can be null now because setInnerText doesn't create text nodes for empty strings anymore. 2006-07-06 Adele Peterson Reviewed by Tim Hatcher. - Speculative fix for unrepro crash at cnn.com after upgrading to 10.4.7 (but happening with 10.4.6 too) * page/FrameView.cpp: (WebCore::FrameView::layout): Ref's the view during layout, since a recalcStyle could cause the view to be deleted. If we get back from recalcStyle, and there's only one ref, return early since the the view will be deleted when we exit layout. * page/FrameView.h: (WebCore::FrameView::hasOneRef): Added. 2006-07-06 Anders Carlsson Reviewed by Maciej. Support overflow events * DerivedSources.make: Add generated sources. * WebCore.xcodeproj/project.pbxproj: Add new files. * bindings/js/kjs_events.cpp: (KJS::toJS): Support creating wrappers for overflow events.. * bindings/objc/DOMEvents.h: * bindings/objc/DOMEvents.mm: (+[DOMEvent _eventWith:]): (-[DOMOverflowEvent _overflowEvent]): (-[DOMOverflowEvent orient]): (-[DOMOverflowEvent horizontalOverflow]): (-[DOMOverflowEvent verticalOverflow]): Add Objective-C wrapper for overflow events. * dom/Event.cpp: (WebCore::Event::isOverflowEvent): * dom/Event.h: * dom/EventNames.h: * dom/OverflowEvent.cpp: Added. (WebCore::OverflowEvent::OverflowEvent): (WebCore::OverflowEvent::isOverflowEvent): * dom/OverflowEvent.h: Added. (WebCore::OverflowEvent::): (WebCore::OverflowEvent::orient): (WebCore::OverflowEvent::horizontalOverflow): (WebCore::OverflowEvent::verticalOverflow): * dom/OverflowEvent.idl: Added. Add overflow events. * page/FrameView.cpp: (WebCore::FrameViewPrivate::FrameViewPrivate): (WebCore::FrameView::applyOverflowToViewport): (WebCore::FrameView::layout): Dispatch any scheduled events when layout is done. (WebCore::FrameView::scheduleEvent): New function which schedules an event. (WebCore::FrameView::updateOverflowStatus): Update overflow status for the viewport. (WebCore::FrameView::dispatchScheduledEvents): New function which dispatches all scheduled events. * page/FrameView.h: Add declarations. * rendering/RenderLayer.cpp: (WebCore::RenderLayer::RenderLayer): (WebCore::RenderLayer::updateOverflowStatus): (WebCore::RenderLayer::updateScrollInfoAfterLayout): * rendering/RenderLayer.h: Schedule overflow events when overflow status changes. 2006-07-06 Timothy Hatcher Reviewed by Geoff. Expose scroll-related JS properties to ObjC DOM interface offsetLeft, offsetTop, offsetHeight, and offsetWidth properties are not exposed to ObjC * bindings/objc/DOMPrivate.h: * bindings/objc/DOMHTML.mm: (-[DOMHTMLElement offsetLeft]): (-[DOMHTMLElement offsetTop]): (-[DOMHTMLElement offsetWidth]): (-[DOMHTMLElement offsetHeight]): (-[DOMHTMLElement offsetParent]): (-[DOMHTMLElement clientWidth]): (-[DOMHTMLElement clientHeight]): (-[DOMHTMLElement scrollLeft]): (-[DOMHTMLElement setScrollLeft:]): (-[DOMHTMLElement scrollTop]): (-[DOMHTMLElement setScrollTop:]): (-[DOMHTMLElement scrollWidth]): (-[DOMHTMLElement scrollHeight]): 2006-07-06 Maciej Stachowiak Reviewed by Adele. - fix 435 more layout tests Node leaks * editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::moveParagraphs): fix more instances of leaked DOM ranges 2006-07-06 David Harrison Reviewed by Geoff innerHTML of XMP tag returns special characters like '>' instead of '>' Test: fast/innerHTML/006.html * editing/markup.cpp: (WebCore::startMarkup): (WebCore::createMarkup): Do not special quote content of XMP nodes. 2006-07-06 Maciej Stachowiak Not reviewed - build fix. - back out earlier leak fix, as it caused a crash on one of the fast/invalid layout tests * dom/Document.cpp: (WebCore::Document::removedLastRef): * html/HTMLParser.cpp: (WebCore::HTMLStackElem::HTMLStackElem): (WebCore::HTMLParser::popNestedHeaderTag): (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks): (WebCore::HTMLParser::reopenResidualStyleTags): (WebCore::HTMLParser::popBlock): (WebCore::HTMLParser::popOneBlock): 2006-07-06 Maciej Stachowiak Reviewed by Anders. - fix ~3000 Node leaks on the editing tests * editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::moveParagraphs): put a newly created Range in a RefPtr to avoid leaking it, as this leaks the whole document. 2006-07-06 Maciej Stachowiak Reviewed by Anders. - fix 26 Node leaks on various fast/dom tests * dom/Document.cpp: (WebCore::Document::removedLastRef): Delete the tokenizer here, since if we are in mid-parse, the parser might hold refs on some of our children that have self-only refs. * html/HTMLParser.cpp: (WebCore::HTMLStackElem::HTMLStackElem): don't ref the node if it is a document to avoid ref cycles (WebCore::HTMLStackElem::~HTMLStackElem): ditto (WebCore::HTMLStackElem::node): changed interface a bit to support the above (WebCore::HTMLStackElem::setNode): ditto (WebCore::HTMLParser::popNestedHeaderTag): use new interface to HTMLStackElem (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks): ditto (WebCore::HTMLParser::reopenResidualStyleTags): ditto (WebCore::HTMLParser::popBlock): ditto (WebCore::HTMLParser::popOneBlock): ditto 2006-07-06 Mitz Pettel Reviewed by Adele. * rendering/RenderMenuList.h: (WebCore::RenderMenuList::createsAnonymousWrapper): This method replaces allowsReusingAnonymousChild() and has the opposite meaning. 2006-07-05 Adele Peterson Build fixes. * WebCore.vcproj/WebCore/WebCore.vcproj: * platform/win/TemporaryLinkStubs.cpp: * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::calcMinMaxWidth): * rendering/RenderPopupMenuWin.h: (WebCore::RenderPopupMenuWin::RenderPopupMenuWin): * rendering/RenderThemeWin.cpp: 2006-07-05 Maciej Stachowiak Reviewed by Adele. - fix 308 Node leaks on the editing layout tests * dom/Document.cpp: (WebCore::Document::removedLastRef): Clear the markers once there are no real refs on the document, otherwise a self-only reference cycle w/ the document can occur. 2006-07-05 Adele Peterson Reviewed by Maciej and Hyatt. Initial implementation of popup menu control. This can be turned on by setting -webkit-appearance: menulist on a select element. * WebCore.xcodeproj/project.pbxproj: Added RenderMenuList.h, RenderMenuList.cpp, RenderPopupMenu.h, RenderPopupMenu.cpp, RenderPopupMenuWin.h, RenderPopupMenuMac.h, RenderPopupMenuMac.mm, * dom/Node.cpp: (WebCore::Node::renderStyle): Added. Returns the renderer's style. If there's no renderer, returns's a RenderStyle that's kept by the node. This is important for HTMLOptGroupElement and HTMLOptionElement, which don't have renderers. (WebCore::Node::setRenderStyle): Added. * dom/Node.h: * dom/Element.cpp: (WebCore::Element::recalcStyle): Updated to use renderStyle so recalcStyle will work for HTMLOptionElements and HTMLOptGroupElements. * css/cssstyleselector.cpp: Updated to call renderStyle method on the node, so resolving style works on elements w/o renderers that cache style. (WebCore::CSSStyleSelector::initForStyleResolve): (WebCore::CSSStyleSelector::locateCousinList): (WebCore::CSSStyleSelector::canShareStyleWithElement): (WebCore::CSSStyleSelector::locateSharedStyle): (WebCore::CSSStyleSelector::checkOneSelector): * css/html4.css: Removed display:none from options and optgroups, since we're now caching style for these elements. Added font-weight styles for option and optgroup. * html/HTMLOptGroupElement.h: Added m_style to keep track of a RenderStyle for the element, even though we aren't creating a renderer. This will allow us to honor style for optgroups and options for popup menus (and eventually list boxes too). (WebCore::HTMLOptGroupElement::rendererIsNeeded): Added. (WebCore::HTMLOptGroupElement::renderStyle): Added. * html/HTMLOptionElement.h: ditto. (WebCore::HTMLOptionElement::rendererIsNeeded): Added. (WebCore::HTMLOptionElement::renderStyle): Added. * html/HTMLOptGroupElement.cpp: (WebCore::HTMLOptGroupElement::HTMLOptGroupElement): Initialize m_style. (WebCore::HTMLOptGroupElement::attach): Set the renderStyle. (WebCore::HTMLOptGroupElement::detach): Clear m_style. (WebCore::HTMLOptGroupElement::setRenderStyle): Added. (WebCore::HTMLOptGroupElement::groupLabelText): Added. * html/HTMLOptionElement.cpp: ditto. (WebCore::HTMLOptionElement::HTMLOptionElement): (WebCore::HTMLOptionElement::attach): (WebCore::HTMLOptionElement::detach): (WebCore::HTMLOptionElement::setRenderStyle): (WebCore::HTMLOptionElement::optionText): * html/HTMLSelectElement.cpp: Added code to use the new RenderMenuList if the appearance is set to MenuListAppearance, and if we're not creating a list box renderer. (WebCore::HTMLSelectElement::recalcStyle): (WebCore::HTMLSelectElement::createRenderer): (WebCore::HTMLSelectElement::setRecalcListItems): (WebCore::HTMLSelectElement::reset): (WebCore::HTMLSelectElement::notifyOptionSelected): (WebCore::HTMLSelectElement::defaultEventHandler): * html/HTMLSelectElement.h: * WebCore.exp: Added _wkPopupMenu. * platform/mac/WebCoreSystemInterface.h: Added wkPopupMenu to get the NSMenu to pop up. * platform/mac/WebCoreSystemInterface.mm: * platform/win/TemporaryLinkStubs.cpp: Added stubs for RenderPopupMenuWin. (RenderPopupMenuWin::RenderPopupMenuWin): (RenderPopupMenuWin::~RenderPopupMenuWin): (RenderPopupMenuWin::clear): (RenderPopupMenuWin::populate): (RenderPopupMenuWin::showPopup): (RenderPopupMenuWin::addSeparator): (RenderPopupMenuWin::addGroupLabel): (RenderPopupMenuWin::addOption): * rendering/RenderPopupMenuWin.h: Added. * rendering/RenderPopupMenu.cpp: Added. (WebCore::RenderPopupMenu::RenderPopupMenu): (WebCore::RenderPopupMenu::~RenderPopupMenu): (WebCore::RenderPopupMenu::clear): (WebCore::RenderPopupMenu::populate): Walks the DOM tree, and adds separators, options, and group labels to the RenderPopupMenu. (WebCore::RenderPopupMenu::showPopup): (WebCore::RenderPopupMenu::addSeparator): (WebCore::RenderPopupMenu::addGroupLabel): (WebCore::RenderPopupMenu::addOption): * rendering/RenderPopupMenu.h: Added. (WebCore::RenderPopupMenu::renderName): (WebCore::RenderPopupMenu::getRenderMenuList): * rendering/RenderPopupMenuMac.h: Added. * rendering/RenderPopupMenuMac.mm: Added. (WebCore::RenderPopupMenuMac::RenderPopupMenuMac): (WebCore::RenderPopupMenuMac::~RenderPopupMenuMac): (WebCore::RenderPopupMenuMac::clear): Removes all items from the menu. (WebCore::RenderPopupMenuMac::populate): Disables menuChangedMessages before populating the menu. (WebCore::RenderPopupMenuMac::showPopup): Calculates the right position, and calls wkPopupMenu. (WebCore::RenderPopupMenuMac::addSeparator): (WebCore::RenderPopupMenuMac::addGroupLabel): (WebCore::RenderPopupMenuMac::addOption): * rendering/RenderMenuList.cpp: Added. (WebCore::RenderMenuList::RenderMenuList): (WebCore::RenderMenuList::addChild): (WebCore::RenderMenuList::removeChild): (WebCore::RenderMenuList::setStyle): (WebCore::RenderMenuList::updateFromElement): If the options have changed, iterate through the children to find the menu item with the widest text. Set the button text to the selected item's text. (WebCore::RenderMenuList::setText): (WebCore::RenderMenuList::paintObject): (WebCore::RenderMenuList::baselinePosition): (WebCore::RenderMenuList::calcMinMaxWidth): (WebCore::RenderMenuList::showPopup): (WebCore::RenderMenuList::layout): (WebCore::RenderMenuList::updateSelection): (WebCore::RenderMenuList::valueChanged): * rendering/RenderMenuList.h: Added. (WebCore::RenderMenuList::removeLeftoverAnonymousBoxes): (WebCore::RenderMenuList::allowsReusingAnonymousChild): (WebCore::RenderMenuList::canHaveChildren): (WebCore::RenderMenuList::renderName): (WebCore::RenderMenuList::setOptionsChanged): (WebCore::RenderMenuList::selectionChanged): (WebCore::RenderMenuList::setSelectionChanged): (WebCore::RenderMenuList::hasPopupMenu): * rendering/RenderTheme.cpp: Added cases for MenuListAppearance. (WebCore::RenderTheme::adjustStyle): (WebCore::RenderTheme::paint): (WebCore::RenderTheme::paintBorderOnly): (WebCore::RenderTheme::isControlStyled): (WebCore::RenderTheme::adjustMenuListStyle): (WebCore::RenderTheme::createPopupMenu): creates platform-specific RenderPopupMenu. * rendering/RenderTheme.h: (WebCore::RenderTheme::sizeOfArrowControl): Added. (WebCore::RenderTheme::paintMenuList): Added. * rendering/RenderThemeMac.h: * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::adjustRepaintRect): (WebCore::RenderThemeMac::paintMenuList): (WebCore::RenderThemeMac::adjustMenuListStyle): (WebCore::RenderThemeMac::setPopupButtonCellState): (WebCore::RenderThemeMac::createPopupMenu): (WebCore::RenderThemeMac::sizeOfArrowControl): * rendering/RenderThemeWin.cpp: (WebCore::RenderThemeWin::createPopupMenu): * rendering/RenderThemeWin.h: 2006-07-05 Brady Eidson Reviewed by Tim Omernick. IconDatabase now respects private browsing via the use of in memory, temporary tables * bridge/mac/WebCoreIconDatabaseBridge.mm: (-[WebCoreIconDatabaseBridge iconForPageURL:withSize:]): (-[WebCoreIconDatabaseBridge iconURLForPageURL:]): Renamed WebCore::IconDatabase methods, changes reflected here * icon/IconDatabase.cpp: (WebCore::IconDatabase::clearDatabase): (WebCore::IconDatabase::deletePrivateTables): (WebCore::IconDatabase::imageDataForIconID): (WebCore::IconDatabase::imageDataForIconURL): (WebCore::IconDatabase::imageDataForPageURL): (WebCore::IconDatabase::setPrivateBrowsingEnabled): (WebCore::IconDatabase::iconForPageURL): (WebCore::IconDatabase::iconURLForPageURL): (WebCore::IconDatabase::setIconDataForIconURL): (WebCore::IconDatabase::performSetIconDataForIconID): (WebCore::IconDatabase::establishTemporaryIconIDForEscapedIconURL): (WebCore::IconDatabase::establishIconIDForEscapedIconURL): (WebCore::IconDatabase::setHaveNoIconForIconURL): (WebCore::IconDatabase::setIconURLForPageURL): (WebCore::IconDatabase::performSetIconURLForPageURL): (WebCore::IconDatabase::hasIconForIconURL): -Some style/comment cleanups, but mainly putting private browsing handling in place * icon/IconDatabase.h: Some methods added, others renamed, some comments added * icon/SQLStatement.cpp: (WebCore::SQLStatement::getColumnName): (WebCore::SQLStatement::getColumnName16): (WebCore::SQLStatement::getColumnText): (WebCore::SQLStatement::getColumnText16): -The above 4 had changes to return String() for empty results instead of "" as it's less expensive; 2006-07-05 John Sullivan Reviewed by Darin and Adele. - fixed REGRESSION: When tabbing between links on a page, the window doesn't scroll to link that's not in view * html/HTMLAnchorElement.cpp: * html/HTMLAnchorElement.h: removed HTMLAnchorElement::focus and HTMLAnchorElement::blur. HTMLAnchorElement::focus just called document()->setFocusNode(). The scroll-to-reveal code used to be inside document()->setFocusNode(), but now it's in Element::focus, and this override was preventing that code from running. HTMLAnchorElement::blur was exactly the same implementation as Element::blur (and there aren't any other implementations of ::blur in the class hierarchy in between). This change has no practical effect, other than removing duplicate code. Adele and I think that it was an oversight not to remove these two methods on 12/20/05 these methods were removed from HTMLButtonElementImpl and HTMLInputElementImpl. 2006-07-05 Anders Carlsson * bridge/win/FrameWin.cpp: (WebCore::FrameWin::FrameWin): * bridge/win/FrameWin.h: * platform/win/TemporaryLinkStubs.cpp: (FrameWin::createFrame): Fix Win32 build. 2006-07-05 Anders Carlsson * WebCore.xcodeproj/project.pbxproj: Revert accidental change of debug format to DWARF. 2006-07-05 Anders Carlsson Reviewed by Maciej. http://bugzilla.opendarwin.org/show_bug.cgi?id=3581 iFrames set to display:none are Missing from frames array * bridge/mac/FrameMac.h: * bridge/mac/FrameMac.mm: (WebCore::FrameMac::FrameMac): (WebCore::FrameMac::createFrame): * bridge/mac/WebCoreFrameBridge.h: * bridge/mac/WebCoreFrameBridge.mm: (-[WebCoreFrameBridge initSubframeWithOwnerElement:]): (-[WebCoreFrameBridge installInFrame:]): Modify to pass the owner element instead of the owner renderer. * dom/ContainerNode.cpp: (WebCore::ContainerNode::insertBefore): (WebCore::ContainerNode::replaceChild): (WebCore::ContainerNode::appendChild): Dispatch the node inserted events before attaching the nodes. This is what the tokenizer does. * html/HTMLFrameElement.cpp: (WebCore::HTMLFrameElement::openURL): (WebCore::HTMLFrameElement::attach): Pass the element to requestFrame. (WebCore::HTMLFrameElement::setLocation): Don't call attach/detach on an iframe. * html/HTMLIFrameElement.cpp: (WebCore::HTMLIFrameElement::insertedIntoDocument): Load the frame here (using openURL). (WebCore::HTMLIFrameElement::removedFromDocument): Call frameDetached. (WebCore::HTMLIFrameElement::attach): If there's a renderer, attach the content frame to it. (WebCore::HTMLIFrameElement::detach): Reset the renderer's frame. (WebCore::HTMLIFrameElement::openURL): Modify to request the frame. * html/HTMLIFrameElement.h: Add detach. * page/Frame.cpp: (WebCore::parentFromOwnerElement): (WebCore::Frame::Frame): (WebCore::Frame::~Frame): (WebCore::Frame::requestFrame): (WebCore::Frame::requestObject): (WebCore::Frame::loadSubframe): (WebCore::Frame::ownerElement): (WebCore::Frame::ownerRenderer): (WebCore::Frame::disconnectOwnerElement): * page/Frame.h: * page/FramePrivate.h: (WebCore::FramePrivate::FramePrivate): * rendering/RenderPart.cpp: (WebCore::RenderPart::setFrame): Modify to keep an owner element around instead of the renderer. * rendering/RenderPartObject.cpp: (WebCore::RenderPartObject::updateWidget): Don't do anything for iframes. 2006-07-04 Kevin Ollivier Reviewed by Maciej, reworked a bit by Darin. Compile fixes for wx port / gcc 4.0.2 * platform/PlatformString.h: * platform/StringImpl.h: Include CoreFoundation for CF-specific code. * dom/DocPtr.h: * doc/EventTargetNode.h: Silence warnings about 'extra tokens' after #endif on gcc 4.0.2. (Not an error but warnings appear frequently.) * WebCoreSources.bkl: * webcore-base.bkl: Synching ports sources file with TOT. Also, making sure SRCDIR variable overrides any previous values. * loader/ImageDocument.cpp: Use PLATFORM(MAC) for the parts that are specific to the Macintosh version, and move the Objective-C parts to another file. * loader/mac/ImageDocumentMac.h: Added. * loader/mac/ImageDocumentMac.mm: Added. 2006-07-04 Sam Weinig Build fix. * platform/Color.cpp: (WebCore::makeRGBAFromHSLA): 2006-07-02 David Carson Reviewed by Darin. - Added HSL color support as specified in CSS3 spec. http://bugzilla.opendarwin.org/show_bug.cgi?id=9506 Added parsing support of hsl(h,s,l) and hsla(h,s,l,a) Added converting code to convert HSL to RGB * css/cssparser.cpp: (WebCore::CSSParser::parseColorParameters): Moved common code to parse RGB/RGBA values into it's own function. This code was duplicated in the parseColorFromValue() method. (WebCore::CSSParser::parseHSLParameters): Common code to parse HSL/HSLA values. (WebCore::CSSParser::parseColorFromValue): Moved RGB/RGBA parsing out to seperate function as the code was duplicated. Added parsing support for hsl( and hsla( * css/cssparser.h: Added two new functions parseColorParameters() and parseHSLParameters(). * platform/Color.cpp: (WebCore::calcHue): Added Hue parameter to RGB color. (WebCore::makeRGBAFromHSLA): New function to convert HSLA to RGBA. * platform/Color.h: Added new functions makeRGBAFromHSLA() and calcHue(). 2006-07-02 Mike Emmel Reviewed and landed by ggaren. * platform/gdk/TransferJobManager.cpp Fixed broken dowload logic * platform/gdk/ScrollViewGdk.cpp Add comment that scrollbarSize is a temporary variable * Projects/gdk/webcore-gdk.bkl Defined NDEBUG build executable is miscompiled otherwise * WebCoreSources.bkl added icon/SiteIcon.cpp editing/IndentOutdentCommand.cpp html/HTMLViewSourceDocument.cpp 2006-07-02 Shawn Stricker Reviewed by Timothy Hatcher. Build fix for Linux. - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9684 [GDK] multiple little fixes and a few new things for Templinkstubs * platform/gdk/ScrollViewGdk.cpp: (WebCore::ScrollView::setDrawable): Changed SCROLLBAR_SIZE to scrollbarSize. * platform/gdk/TemporaryLinkStubs.cpp: (Image::drawTiled): Added missing parameter to argument list. * platform/gdk/TransferJobManager.cpp: (WebCore::writeCallback): Added missing parenthesis to static_cast. 2006-07-02 Mitz Pettel Reviewed by Darin. - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9674 REGRESSION (r15075): Blank or incomplete pages on digg.com Replaced the requestingScript state bit added in the fix for bug 9317 with a m_requestingScript bool that is set before and restored after calling ref() on a CachedScript. Test: fast/tokenizer/nested-cached-scripts.html * html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::HTMLTokenizer): (WebCore::HTMLTokenizer::begin): (WebCore::HTMLTokenizer::scriptHandler): (WebCore::HTMLTokenizer::notifyFinished): * html/HTMLTokenizer.h: (WebCore::HTMLTokenizer::State::): 2006-07-01 David Kilzer Reviewed by NOBODY (build fix). * platform/gdk/TransferJobManager.cpp: (WebCore::writeCallback): Changed 'static_cat' to 'static_cast'. 2006-06-30 Mike Emmel Reviewed and worked over a lot by Darin. - check in first set of GDK-specific sources * platform/gdk/BrowserExtensionGdk.h: Added. * platform/gdk/CookieJarGdk.cpp: Added. * platform/gdk/CursorGdk.cpp: Added. * platform/gdk/FontCacheGdk.cpp: Added. * platform/gdk/FontDataGdk.cpp: Added. * platform/gdk/FontGdk.cpp: Added. * platform/gdk/FontPlatformData.h: Added. * platform/gdk/FontPlatformDataGdk.cpp: Added. * platform/gdk/FrameGdk.cpp: Added. * platform/gdk/FrameGdk.h: Added. * platform/gdk/GlyphMapGdk.cpp: Added. * platform/gdk/KeyEventGdk.cpp: Added. * platform/gdk/KeyboardCodes.h: Added. * platform/gdk/MouseEventGdk.cpp: Added. * platform/gdk/PageGdk.cpp: Added. * platform/gdk/RenderThemeGdk.cpp: Added. * platform/gdk/RenderThemeGdk.h: Added. * platform/gdk/ScreenGdk.cpp: Added. * platform/gdk/ScrollViewGdk.cpp: Added. * platform/gdk/SharedTimerLinux.cpp: Added. * platform/gdk/SystemTimeLinux.cpp: Added. * platform/gdk/TemporaryLinkStubs.cpp: Added. * platform/gdk/TransferJobCurl.cpp: Added. * platform/gdk/TransferJobManager.cpp: Added. * platform/gdk/TransferJobManager.h: Added. * platform/gdk/WheelEventGdk.cpp: Added. * platform/gdk/WidgetGdk.cpp: Added. * platform/gdk/gdk-encodings.txt: Added. 2006-06-30 Mike Emmel Reviewed by Darin. * WebCoreSources.bkl: Updated for recent file changes. 2006-06-30 Mike Emmel Reviewed and enhanced by Darin. Compilation fixes for Linux/Gdk. * WebCore/platform/FontData.h: Added forward declaration of a class. * WebCore/platform/cairo/GraphicsContextCairo.cpp: Fixed case on include. * WebCore/bindings/js/kjs_html.cpp: Added include. * WebCore/css/maketokenizer: Fixed incorrect check for Linux that was already true even on Mac OS X. Added some additional includes and defines to the Linux extra generated code. 2006-06-30 Mitz Pettel Reviewed by Hyatt. - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7204 float inserted in fixed height block via DOM not repainted Test: fast/repaint/float-move-during-layout.html * rendering/RenderBlock.cpp: (WebCore::RenderBlock::layoutBlockChildren): (WebCore::RenderBlock::repaintOverhangingFloats): Renamed repaintFloatingDescendants() to this and limited it to repainting overhanging floats. Added a boolean parameter that forces all descendant overhanging floats (that don't have their own layer) to paint. * rendering/RenderBlock.h: * rendering/RenderBox.cpp: (WebCore::RenderBox::repaintDuringLayoutIfMoved): Changed to paint all descendant floats. * rendering/RenderObject.cpp: (WebCore::RenderObject::repaintOverhangingFloats): * rendering/RenderObject.h: 2006-06-30 Levi Weintraub Reviewed by justin * editing/VisiblePosition.cpp: Removed is[Not]EqualIgnoringAffinity and made operator== use the logic that ignores affinity. * editing/VisiblePosition.h: Ditto. (WebCore::operator==): * editing/visible_units.cpp: (WebCore::isStartOfParagraph): Changed to compare VisiblePositions using ==. (WebCore::isEndOfParagraph): Ditto. (WebCore::isStartOfBlock): Ditto. (WebCore::isEndOfBlock): Ditto. === Safari-521.14 === 2006-06-30 Justin Garcia Reviewed by levi * editing/htmlediting.cpp: (WebCore::canHaveChildrenForEditing): Don't insert children into object tags while editing. 2006-06-30 Justin Garcia Reviewed by harrison Caret will jump out of an editable region * dom/Position.cpp: (WebCore::Position::upstream): Don't move into a new editable region so that candidates that that straddle an editable/non-editable boundary will correspond to different VisiblePositions. (WebCore::Position::downstream): Ditto. * editing/SelectionController.cpp: (WebCore::SelectionController::modifyMovingRightForward): Use VisiblePosition::next(true) (WebCore::SelectionController::modifyMovingLeftBackward): Use VisiblePosition::previous(true) * editing/VisiblePosition.cpp: (WebCore::VisiblePosition::next): Added code to jump to the next editable region as long as it has the same highest editable root. (WebCore::VisiblePosition::previous): Ditto. * editing/VisiblePosition.h: * editing/htmlediting.cpp: (WebCore::highestEditableRoot): Added, returns the highest editable root of a node if that node is in editable content, otherwise 0. * editing/htmlediting.h: 2006-06-30 David Kilzer Reviewed by Darin. - Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9358 REGRESSION: Assertion failure in HTMLInputElement::setValueFromRenderer (value == constrainValue(value)) when deleting all text Test: editing/deleting/delete-all-text-in-text-field-assertion.html Bug 9661 filed to fix the follow-up issue: http://bugzilla.opendarwin.org/show_bug.cgi?id=9661 textContent returns "\n" for a
even if it is collapsed * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::setValueFromRenderer): Work around "\n" value when all characters are deleted from a text field. 2006-06-30 David Harrison Reviewed by Tim Omernick Crash calling -[WebScriptObject valueForKey:] when JS disabled * bridge/mac/FrameMac.mm: (WebCore::FrameMac::executionContextForDOM): Early return if JS is not enabled. 2006-06-30 Mitz Pettel Reviewed by Tim H. - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9664 REGRESSION (r15106): Crash in fast/events/mouseover-mouseout2.html * page/FrameView.cpp: (WebCore::FrameView::handleMouseMoveEvent): Added a check that oldSubframe is still a subframe of the view's frame before passing the event to it. 2006-06-29 Timothy Hatcher Reviewed by Darin. -[KWQPageState finalize] is incorrect; design change needed -[WebCoreFrameBridge finalize] is incorrect; design change needed Added close methods that need to be called before these objects can be released. This ensures proper tear-down under GC. * WebCore.xcodeproj/project.pbxproj: * bridge/mac/WebCoreFrameBridge.h: * bridge/mac/WebCoreFrameBridge.mm: (-[WebCoreFrameBridge dealloc]): (-[WebCoreFrameBridge finalize]): (-[WebCoreFrameBridge close]): * bridge/mac/WebCorePageBridge.h: * bridge/mac/WebCorePageBridge.mm: (-[WebCorePageBridge setMainFrame:]): (-[WebCorePageBridge dealloc]): (-[WebCorePageBridge finalize]): (-[WebCorePageBridge close]): (-[WebCorePageBridge mainFrame]): (-[WebCorePageBridge setGroupName:]): (-[WebCorePageBridge groupName]): * kwq/KWQPageState.h: * kwq/KWQPageState.mm: (-[KWQPageState dealloc]): (-[KWQPageState finalize]): (-[KWQPageState close]): 2006-06-29 Sam Weinig Reviewed by Hyatt. - test for http://bugzilla.opendarwin.org/show_bug.cgi?id=4874 Table with absolute bottom positioning is positioned incorrectly Note: patch originally from Mitz, spruced up by Weinig. * rendering/RenderBox.cpp: (WebCore::RenderBox::calcAbsoluteVerticalValues): * rendering/RenderTable.cpp: (WebCore::RenderTable::layout): 2006-06-29 Graham Dennis Reviewed by Justin. - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9505 moveParagraphContentsToNewBlockIfNecessary creates a new block outside the current position * editing/CompositeEditCommand.cpp: Added sanity checking to prevent modifying nodes outside of where we should be (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): 2006-06-29 Brady Eidson Reviewed by Levi. In addition to a few small details, logging changes, and style cleanups, this is a stop-gap hack for a problem in SQLite's blob handling. Querying for a blob in a void* form is reproducibly returning a corrupt buffer. The temporary solution is to query for the blob as "quoted text" and manually convert the return string into a character buffer. * icon/IconDatabase.cpp: (WebCore::IconDatabase::recreateDatabase): (WebCore::IconDatabase::createPrivateTables): (WebCore::hexToUnsignedChar): These two functions are the text-to-character-data converters for the time being (WebCore::hexStringToVector): (WebCore::IconDatabase::imageDataForIconID): (WebCore::IconDatabase::imageDataForIconURL): (WebCore::IconDatabase::imageDataForPageURL): (WebCore::IconDatabase::iconForPageURL): (WebCore::IconDatabase::hasIconForIconURL): * icon/IconDatabase.h: changes the icon data accessors to return a Vector instead of void* * icon/SQLStatement.cpp: (WebCore::SQLStatement::columnCount): (WebCore::SQLStatement::getColumnBlob): * icon/SiteIcon.cpp: (SiteIcon::getImage): 2006-06-29 Mitz Pettel Reviewed by Darin. - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9652 Assertion failure when changing an RTL table cell to display:none Test: fast/table/rtl-cell-display-none-assert.html * rendering/RenderTableSection.cpp: (WebCore::RenderTableSection::layoutRows): Corrected the index used as the last index in the columnPos vector. 2006-06-29 Darin Adler Reviewed by Anders. - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9622 showModalDialog returnValue ignored, function result is always "undefined" * manual-tests/modal-dialog.html: Added. * manual-tests/show-modal-dialog-test.html: Added. * page/Frame.cpp: (WebCore::Frame::clear): Call KJSProxy::clear with the clearWindowProperties parameter instead of not calling it at all when clearWindowProperties is false. * bindings/js/kjs_proxy.h: Add boolean clearWindowProperties parameter. * bindings/js/kjs_proxy.cpp: (WebCore::KJSProxy::clear): Pass clearWindowProperties variable through to Window::clear instead of not calling it at all. * bindings/js/kjs_window.h: Add boolean clearWindowProperties parameter. * bindings/js/kjs_window.cpp: (KJS::Window::clear): If clearWindowProperties is false, do only the returnValue work, not the rest of the work. * manual-tests/modal-dialog.html: Added. * manual-tests/show-modal-dialog-test.html: Added. 2006-06-29 Beth Dakin Reviewed by Hyatt. Fix for Add composite mode to background styles -webkit-background-composite will set a composite mode on a background image. * css/CSSComputedStyleDeclaration.cpp: (WebCore::): (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): * css/CSSPropertyNames.in: Add -webkit-background-composite * css/CSSValueKeywords.in: Add all possible values (clear, copy, source-over, source-in, source-out, source-atop, destination-over, destination-in, destination-out, destination-atop, xor, plus- darker, highlight, and plus-lighter) * css/cssparser.cpp: (WebCore::CSSParser::parseValue): (WebCore::CSSParser::parseBackgroundProperty): * css/cssstyleselector.cpp: (WebCore::CSSStyleSelector::applyProperty): (WebCore::CSSStyleSelector::mapBackgroundComposite): * css/cssstyleselector.h: * platform/GraphicsContext.cpp: (WebCore::GraphicsContext::drawTiledImage): * platform/GraphicsContext.h: drawTiledImage() now takes a composite operator. * platform/Image.h: drawTiled() now takes a composite operator. * platform/cairo/ImageCairo.cpp: (WebCore::Image::drawTiled): Set the composite operator. * platform/mac/ImageMac.mm: (WebCore::Image::drawTiled): Set the composite operator. * platform/win/TemporaryLinkStubs.cpp: (Image::drawTiled): * rendering/RenderBox.cpp: (WebCore::RenderBox::paintBackgroundExtended): Send the composite operator in the render style over to the graphics context. * rendering/render_style.cpp: (WebCore::BackgroundLayer::BackgroundLayer): (WebCore::BackgroundLayer::operator=): (WebCore::BackgroundLayer::operator==): (WebCore::BackgroundLayer::fillUnsetProperties): (WebCore::BackgroundLayer::cullEmptyLayers): * rendering/render_style.h: (WebCore::BackgroundLayer::backgroundComposite): (WebCore::BackgroundLayer::isBackgroundCompositeSet): (WebCore::BackgroundLayer::setBackgroundComposite): (WebCore::BackgroundLayer::clearBackgroundComposite): (WebCore::RenderStyle::backgroundComposite): (WebCore::RenderStyle::initialBackgroundComposite): 2006-06-29 David Kilzer Reviewed by Darin. http://bugzilla.opendarwin.org/show_bug.cgi?id=9649 The no-svg build broke after r15091 * bindings/objc/DOMInternal.h: Added #if XPATH_SUPPORT/#endif. * bindings/objc/DOMInternal.mm: Ditto. (raiseDOMException): * bindings/objc/DOMXPath.h: Ditto. * bindings/objc/DOMXPath.mm: Ditto. * bindings/objc/DOMXPathInternal.h: Ditto. 2006-06-29 Anders Carlsson Reviewed by Tim O. Objective-C XPath support * WebCore.xcodeproj/project.pbxproj: Add files. * bindings/objc/DOMInternal.h: * bindings/objc/DOMInternal.mm: (raiseDOMException): Handle XPath exceptions * bindings/objc/DOMXPath.h: Added. (-[DOMXPathNSResolver lookupNamespaceURI:]): * bindings/objc/DOMXPath.mm: Added. (-[DOMNativeXPathNSResolver dealloc]): (-[DOMNativeXPathNSResolver finalize]): (-[DOMNativeXPathNSResolver _xpathNSResolver]): (-[DOMNativeXPathNSResolver _initWithXPathNSResolver:]): (+[DOMNativeXPathNSResolver _xpathNSResolverWith:]): (-[DOMNativeXPathNSResolver lookupNamespaceURI:]): (-[DOMXPathResult dealloc]): (-[DOMXPathResult finalize]): (-[DOMXPathResult resultType]): (-[DOMXPathResult numberValue]): (-[DOMXPathResult stringValue]): (-[DOMXPathResult booleanValue]): (-[DOMXPathResult singleNodeValue]): (-[DOMXPathResult invalidIteratorState]): (-[DOMXPathResult snapshotLength]): (-[DOMXPathResult iterateNext]): (-[DOMXPathResult snapshotItem:]): (-[DOMXPathResult _xpathResult]): (-[DOMXPathResult _initWithXPathResult:]): (+[DOMXPathResult _xpathResultWith:]): (-[DOMXPathExpression evaluate:::]): (-[DOMXPathExpression _xpathExpression]): (-[DOMXPathExpression _initWithXPathExpression:]): (+[DOMXPathExpression _xpathExpressionWith:]): (-[DOMDocument createExpression::]): (-[DOMDocument createNSResolver:]): (-[DOMDocument evaluate:::::]): * bindings/objc/DOMXPathInternal.h: Added. Add Objective-C XPath API. 2006-06-28 David Hyatt Add support for custom highlighting to paint at the root line box level (and to inflate the box it uses so that it can go outside the bounds of the line if necessary). Reviewed by harrison * bridge/mac/FrameMac.h: * bridge/mac/FrameMac.mm: (WebCore::FrameMac::customHighlightLineRect): (WebCore::FrameMac::paintCustomHighlight): * bridge/mac/WebCoreFrameBridge.h: * rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paintCustomHighlight): * rendering/RootInlineBox.cpp: (WebCore::RootInlineBox::paintCustomHighlight): (WebCore::RootInlineBox::paint): * rendering/RootInlineBox.h: 2006-06-28 Levi Weintraub Reviewed by justin FormatBlock inserts in the wrong place, disregarding editable content FormatBlock for paragraph style doesn't work * dom/Node.cpp: (WebCore::Node::rootEditableElement): Return inline nodes * editing/FormatBlockCommand.cpp: (WebCore::FormatBlockCommand::doApply): Keep from inserting before editable content * editing/JSEditor.cpp: Support html braces (<>) around tag names 2006-06-28 Justin Garcia Reviewed by levi svg/custom/text-hit-test.svg was failing * rendering/RenderContainer.cpp: (WebCore::RenderContainer::positionForCoordinates): Don't skip child renderers that have a height of 0 when looking for the closest child renderer, they may contain content that overflows. * rendering/RenderText.cpp: (WebCore::RenderText::positionForCoordinates): Fixed typos. 2006-06-28 David Hyatt Make the view source document properly handle