blob: 9d9aa470a07d6c10a5c55b75dc406fd286b5f2e7 [file] [log] [blame]
2007-05-16 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- fix <rdar://problem/4928671> Crash due to runaway recursion when fieldset has display: table-row (12066)
Test: fast/css/fieldset-display-row.html
* rendering/RenderContainer.cpp: (WebCore::RenderContainer::addChild):
Change all decision making about special handling for new children to use
the class of the render object instead of the style, except for the cases
where the style is the only way to tell (TABLE_COLUMN_GROUP and TABLE_CAPTION).
Thus a RenderFieldset with table-row style won't get handled as if it was
a table row.
* rendering/RenderTable.cpp: (WebCore::RenderTable::addChild): Same thing.
Except that here the styles that we ahave to look at are TABLE_CAPTION,
TABLE_HEADER_GROUP, TABLE_FOOTER_GROUP, and TABLE_ROW_GROUP.
2007-05-16 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars.
Implement bigger parts of the Canvas element in the
Qt port. Gradients and patterns are missing.
* WebCore/html/CanvasRenderingContext2D.cpp:
* WebCore/html/CanvasStyle.cpp:
* WebCore/html/HTMLCanvasElement.cpp:
* WebCore/html/HTMLCanvasElement:
2007-05-16 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Fix shared timers, make them use miliseconds. Based
on a patch from George.
* WebCore/platform/qt/SharedTimerQt.cpp:
(WebCore::setSharedTimerFireTime):
2007-05-16 David Hyatt <hyatt@apple.com>
Add rudimentary error reporting to the HTML parser. This is disabled
for now until it gets beefed up a bit more (and until we work out how
best to pass the messages up without hurting perf).
Clean up and remove dead error handling code and incorrect error handling
code as well.
Reviewed by mjs
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLParser.cpp:
(WebCore::HTMLParser::HTMLParser):
(WebCore::HTMLParser::handleError):
(WebCore::HTMLParser::headCreateErrorCheck):
(WebCore::HTMLParser::reportErrorToConsole):
* html/HTMLParser.h:
(WebCore::HTMLParser::reportError):
* html/HTMLParserErrorCodes.cpp: Added.
(WebCore::htmlParserErrorMessageTemplate):
* html/HTMLParserErrorCodes.h: Added.
(WebCore::):
* html/HTMLTokenizer.h:
(WebCore::HTMLTokenizer::tagStartLineNumber):
2007-05-15 David Hyatt <hyatt@apple.com>
Make FrameLoader write "<html><body>" instead of just "<body>".
Reviewed by aroben
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::init):
2007-05-15 George Staikos <staikos@kde.org>
Reviewed by Adam Roben.
- Pass cookies through from the loader.
* platform/network/qt/ResourceHandleManagerQt.cpp:
(WebCore::ResourceHandleManager::receivedResponse):
2007-05-15 Adam Treat <adam@staikos.net>
Reviewed by George Staikos.
- Implement drawArc with proper units.
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::strokeArc):
2007-05-15 Adam Treat <adam@staikos.net>
Reviewed by George Staikos.
- Add missing paint for nested subframes.
* platform/qt/WidgetQt.cpp:
(WebCore::Widget::paint):
2007-05-15 Sam Weinig <sam@webkit.org>
Reviewed by Oliver.
- Patch for http://bugs.webkit.org/show_bug.cgi?id=13722
Finish testing and fixing the setting of DOM attributes to JS null
Convert JS null to null string for SVG attributes.
Test: fast/dom/svg-element-attribute-js-null.xhtml
* ksvg2/svg/SVGAngle.idl:
* ksvg2/svg/SVGElement.idl:
* ksvg2/svg/SVGLength.idl:
* ksvg2/svg/SVGScriptElement.idl:
2007-05-15 Sam Weinig <sam@webkit.org>
Reviewed by Oliver.
- Patch for http://bugs.webkit.org/show_bug.cgi?id=13722
Finish testing and fixing the setting of DOM attributes to JS null
Convert JS null to null string for CanvasRenderingContext2D attributes.
Test: fast/dom/canvasContext2d-element-attribute-js-null.html
* html/CanvasRenderingContext2D.idl:
2007-05-15 Oliver Hunt <oliver@apple.com>
Reviewed by Sam and Geoff.
Removing dead code left behind from drag and drop refactoring.
* page/mac/WebCoreFrameBridge.h:
2007-05-15 Sam Weinig <sam@webkit.org>
Reviewed by Oliver.
- Second Patch for http://bugs.webkit.org/show_bug.cgi?id=13722
Finish testing and fixing the setting of DOM attributes to JS null
Convert JS null to null string for remaining CSSOM attributes.
Test: fast/dom/css-element-attribute-js-null.html
* bindings/js/kjs_css.cpp:
(KJS::DOMCSSStyleDeclaration::put):
(KJS::DOMMediaList::put):
(KJS::DOMCSSRule::putValueProperty):
(KJS::DOMCSSValue::put):
* css/CSSPageRule.idl:
* css/CSSRule.idl:
* css/CSSStyleDeclaration.idl:
* css/CSSStyleRule.idl:
* css/CSSValue.idl:
* css/MediaList.idl:
2007-05-15 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
* css/html4.css: Remove wbr style rule -- not needed any more.
2007-05-15 Mitz Pettel <mitz@webkit.org>
Reviewed by Brady
- fix http://bugs.webkit.org/show_bug.cgi?id=13360
REGRESSION: Crash closing live web cam viewer page
Test: http/tests/misc/multipart.html
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::didFail): Avoid calling didFailToLoad() if
didFinishLoad() has already been called (when the first part of a
multipart resource arrived).
(WebCore::ResourceLoader::didCancel): Ditto.
2007-05-15 Sam Weinig <sam@webkit.org>
Reviewed by Darin.
- Patch for http://bugs.webkit.org/show_bug.cgi?id=13722
Finish testing and fixing the setting of DOM attributes to JS null
Convert JS null to null string for remaining Core DOM attributes.
Test: fast/dom/coreDOM-element-attribute-js-null.xhtml
* dom/Attr.cpp:
(WebCore::Attr::setValue): Don't throw an expection for null values as this
is not in the spec and Firefox does not do it either.
* dom/Attr.idl:
* dom/CharacterData.idl:
* dom/ProcessingInstruction.idl:
2007-05-15 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13718
REGRESSION (r21093): editing/execCommand/5136770.html failing pixel test
* rendering/RenderContainer.cpp:
(WebCore::RenderContainer::removeChildNode): Moved the code that clears the
selection when moving a selection border into the fast path.
2007-05-15 Rob Buis <buis@kde.org>
Reviewed by Hyatt.
http://bugs.webkit.org/show_bug.cgi?id=6487
"Make Text Bigger/Smaller" affects SVGs when it probably shouldn't
Ignore Make Text Bigger/Smaller for SVG text.
* css/svg.css:
2007-05-15 Anders Carlsson <andersca@apple.com>
Reviewed by Maciej.
<rdar://problem/5183685>
http://bugs.webkit.org/show_bug.cgi?id=13301
ASSERT or null value when trying to use a getter defined on a window object
Handle the case where the value returned is a getter/setter object.
* bindings/js/kjs_window.cpp:
(KJS::Window::getOverridePropertySlot):
2007-05-14 Anders Carlsson <andersca@apple.com>
Reviewed by Geoff.
<rdar://problem/5200816>
REGRESSION: With Shiira 1.2.2 , I can't open embedded link in flash object by clicking (http:/www.adobe.com )
Shiira under some circumstances passes nil as the request to -[WebFrame loadRequest:]. ToT WebKit doesn't call any policy
delegate methods in this case, which means that the page is actually being loaded.
This patch makes ToT WebKit behave in the same way as Tiger WebKit when the request is nil.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::checkNavigationPolicy):
Don't continue without calling the navigation policy method if the request is null.
(WebCore::FrameLoader::continueAfterNavigationPolicy):
If the request can't be handled, don't continue the load.
* platform/network/mac/ResourceRequestMac.mm:
(WebCore::ResourceRequest::doUpdatePlatformRequest):
Don't create an NSURLRequest object if the request is null.
2007-05-15 Maciej Stachowiak <mjs@apple.com>
Reviewed by Hyatt and Lars.
- fixed <rdar://problem/5201758> REGRESSION: Stop button enabled and other problems caused by [WebView currentURL] returning non-nil for empty window
* WebCore.exp: export new symbol
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::begin): move marker that we committed a real doc load from here...
(WebCore::FrameLoader::transitionToCommitted): ...to here
(WebCore::FrameLoader::frameHasLoaded): check that we have at least started loading something
besides the initial empty doc.
* loader/FrameLoader.h:
2007-05-14 Justin Garcia <justin.garcia@apple.com>
Reviewed by ggaren
<http://bugs.webkit.org/show_bug.cgi?id=13716>
REGRESSION: Three new layout test failures
Two failures are correct. Updated their expected results.
In fast/events/frame-tab-focus.html, as we advance
through focusable nodes, we descend into a subframe
to focus a node and then ascend out of it into the
main frame to focus the next. When we focus the main
frame, the node in that frame that was previously
focused and contains an inactive selection is focused
momentarily because setCaretVisible tries to focus the
node containing the caret.
* page/Frame.cpp:
(WebCore::Frame::setCaretVisible): Don't focus the
node containing the caret. FocusController will focus
the previously focused node (which will contain the
caret) if necessary when the frame gains focus.
2007-05-14 Maciej Stachowiak <mjs@apple.com>
Reviewed by Brady.
- fixed <rdar://problem/5203036> REGRESSION: Assertion failure in WebCore::FrameLoader::restoreScrollPositionAndViewState() going back from fark.com Photoshop contest (13684)
Test: http/tests/navigation/back-to-slow-frame.html
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::restoreScrollPositionAndViewState): Add needed early return.
2007-05-14 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13603
style leaks in washingtonpost.com
also known as http://bugs.webkit.org/show_bug.cgi?id=8750
w3c.org: incorrect recovery from unclosed <a> elements
also known as http://bugs.webkit.org/show_bug.cgi?id=12808
Handling of misnested tags results in entire page appearing as link
also known as http://bugs.webkit.org/show_bug.cgi?id=12861
Post text renders as link
Test: fast/parser/residual-style-close-across-n-blocks.html
* html/HTMLParser.cpp:
(WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks): Changed to
deal with multiple block crossings instead of bailing out, by doing multiple
reparenting passes, starting from the outermost block.
2007-05-14 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13711
REGRESSION - Bookmark Bar text rendering changed
No test possible since this patch affects only Safari chrome.
* platform/Font.cpp:
(WebCore::Font::Font): Initialize m_isPlatformFont according to whether
the Font object is derived from a FontPlatformData or not.
* platform/Font.h:
(WebCore::Font::isPlatformFont): Added. Returns whether this Font was
derived from a platform font.
* platform/mac/FontCacheMac.mm:
(WebCore::FontCache::getFontDataForCharacters): Changed to not enable
synthetic bold and italic in the fallback fonts if the original font
was derived from a platform font.
2007-05-14 Sam Weinig <sam@webkit.org>
Reviewed by Alice!
- Patch for http://bugs.webkit.org/show_bug.cgi?id=13541
REGRESSION: Setting a DOMString attribute to JS null in the
JS bindings should default to converting to the empty string
Convert JS null to the empty string when passing it to an attribute that takes
a DOMString.
Test: fast/dom/document-attribute-js-null.html
Test: fast/dom/element-attribute-js-null.html
* bindings/js/kjs_dom.cpp:
(KJS::DOMNode::putValueProperty):
* bindings/js/kjs_html.cpp:
(KJS::JSHTMLDocument::putValueProperty):
(KJS::JSHTMLElement::objectSetter):
(KJS::JSHTMLElement::embedSetter):
(KJS::JSHTMLElement::tableSetter):
(KJS::JSHTMLElement::tableCaptionSetter):
(KJS::JSHTMLElement::tableColSetter):
(KJS::JSHTMLElement::tableSectionSetter):
(KJS::JSHTMLElement::tableRowSetter):
(KJS::JSHTMLElement::tableCellSetter):
(KJS::JSHTMLElement::frameSetSetter):
(KJS::JSHTMLElement::frameSetter):
(KJS::JSHTMLElement::iFrameSetter):
(KJS::JSHTMLElement::marqueeSetter):
(KJS::JSHTMLElement::putValueProperty):
* bindings/js/kjs_html.h:
* dom/Document.idl:
* dom/Node.idl:
* html/HTMLAnchorElement.idl:
* html/HTMLAppletElement.idl:
* html/HTMLAreaElement.idl:
* html/HTMLBRElement.idl:
* html/HTMLBaseElement.idl:
* html/HTMLBaseFontElement.idl:
* html/HTMLBlockquoteElement.idl:
* html/HTMLBodyElement.idl:
* html/HTMLButtonElement.idl:
* html/HTMLDivElement.idl:
* html/HTMLDocument.idl:
* html/HTMLElement.idl:
* html/HTMLEmbedElement.idl:
* html/HTMLFontElement.idl:
* html/HTMLFormElement.idl:
* html/HTMLFrameElement.idl:
* html/HTMLFrameSetElement.idl:
* html/HTMLHRElement.idl:
* html/HTMLHeadElement.idl:
* html/HTMLHeadingElement.idl:
* html/HTMLHtmlElement.idl:
* html/HTMLIFrameElement.idl:
* html/HTMLImageElement.idl:
* html/HTMLInputElement.idl:
* html/HTMLIsIndexElement.idl:
* html/HTMLLIElement.idl:
* html/HTMLLabelElement.idl:
* html/HTMLLegendElement.idl:
* html/HTMLLinkElement.idl:
* html/HTMLMapElement.idl:
* html/HTMLMetaElement.idl:
* html/HTMLModElement.idl:
* html/HTMLOListElement.idl:
* html/HTMLObjectElement.idl:
* html/HTMLOptGroupElement.idl:
* html/HTMLOptionElement.idl:
* html/HTMLParagraphElement.idl:
* html/HTMLParamElement.idl:
* html/HTMLQuoteElement.idl:
* html/HTMLScriptElement.idl:
* html/HTMLSelectElement.idl:
* html/HTMLStyleElement.idl:
* html/HTMLTableCaptionElement.idl:
* html/HTMLTableCellElement.idl:
* html/HTMLTableColElement.idl:
* html/HTMLTableElement.idl:
* html/HTMLTableRowElement.idl:
* html/HTMLTableSectionElement.idl:
* html/HTMLTextAreaElement.idl:
* html/HTMLTitleElement.idl:
* html/HTMLUListElement.idl:
2007-05-14 Geoffrey Garen <ggaren@apple.com>
Trying to fix the Qt build.
* WebCore.pro:
2007-05-14 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Some improvements on my last patch, suggested by Darin.
* history/PageCache.cpp:
(WebCore::PageCache::autoreleaseNow): Swap with an empty set instead of
building up an array and then calling clear(). This is slightly more
efficient and the code is cleaner.
2007-05-14 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5136696> Selection is removed when focusing a node in another frame
<rdar://problem/5192388> WordPress: Can't insert links/images
Don't clear a selection when changing focus if the new
focus node is in a different frame than the old selection.
* dom/Document.cpp:
(WebCore::Document::setFocusedNode): Moved code to clear
selections to the FocusController, since it is Page level
and will know about the frame/document that contained the
old selection. Moved code to call shouldEndEditing to the
FocusController because selections are now cleared before
calling Document::setFocusedNode and shouldEndEditing must
be called before selections are cleared.
* dom/Element.cpp:
(WebCore::Element::blur): Call FocusController::setFocusNode
instead of Document::setFocusNode, if possible.
* page/EventHandler.cpp:
(WebCore::EventHandler::dispatchMouseEvent): Ditto.
* page/FocusController.cpp:
(WebCore::relinquishesEditingFocus): Moved from Document.cpp.
(WebCore::clearSelectionIfNeeded): Ditto. Don't clear if
the old selection is in a frame that's different than the
one that contains the new focus node.
(WebCore::FocusController::setFocusedNode): Moved code
here from Document::setFocusedNode.
* page/Frame.cpp:
(WebCore::Frame::setFocusedNodeIfNeeded): Call
FocusController::setFocusNode.
2007-05-14 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
Next step toward fixing <rdar://problem/5055182> The back cache has no
global cap.
Created a PageCache singleton. Right now, it only handles the timer-based
deallocation of cached pages. I plan to add HistoryItem->CachedPage tracking
and eviction logic in later patches.
Updated for renames and file changes:
* WebCore.exp:
* WebCore.xcodeproj/project.pbxproj:
* history/BackForwardList.cpp:
(WebCore::BackForwardList::setPageCacheSize):
(WebCore::BackForwardList::clearPageCache):
Removed global timed release code, moved into new PageCache class, since
it's eventually going to be in charge of deciding when things are released:
* history/HistoryItem.cpp:
(WebCore::HistoryItem::setCachedPage):
* history/HistoryItem.h:
Folded into PageCache:
* history/HistoryItemTimer.cpp: Removed.
* history/HistoryItemTimer.h: Removed.
New singleton. Right now, it just handles timed release of cached pages:
* history/PageCache.cpp: Added.
(WebCore::pageCache):
(WebCore::PageCache::PageCache):
(WebCore::PageCache::autoreleaseNowOrReschedule):
(WebCore::PageCache::autoreleaseNow):
(WebCore::PageCache::autorelease):
* history/PageCache.h: Added.
2007-05-14 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Fix for <rdar://problem/5200081> Repro crash in PopupMenu::show clicking popup menu button after reload
* platform/mac/PopupMenuMac.mm: (WebCore::PopupMenu::show): Added call to dismissPopup so the cell gets unattached properly.
2007-05-14 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Remove incorrect assertion.
* page/FrameView.cpp: (WebCore::FrameView::setContentsPos):
2007-05-14 Anders Carlsson <andersca@apple.com>
Reviewed by Geoff.
<rdar://problem/5172056> Regression: cannot open txt file, get broken image
Never let plug-ins override text/plain.
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument):
2007-05-14 Zack Rusin <zrusin@trolltech.com>
Reviewed by Simon.
Do some magic to get better dependency tracking for header
files in the qmake project files.
* ChangeLog:
2007-05-14 Lars Knoll <lars@trolltech.com>
Reviewed by Zack
Required updates after Maciej's frame change.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::mainReceivedCompleteError):
Call checkLoadCompleted() at the end of the method. Without it
we never get the loadDone() signal on the Qt port.
* platform/network/qt/ResourceHandleManagerQt.cpp:
(WebCore::ResourceHandleManager::receivedFinished):
Don't pass a null error to didFail().
2007-05-14 Darin Adler <darin@apple.com>
Reviewed by Antti.
- fix <rdar://problem/3109180> VIP: after go back, page jumps after loading even if I scrolled while loading
* history/CachedPage.cpp: (WebCore::CachedPage::clear): Call clearFrame rather than
clearPart -- the "part" term was leftover prehistoric terminology.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::open): Call setWasScrolledByUser(false) on the page, so that we
can detect any user scrolling that happens during the "go back" process.
(WebCore::FrameLoader::restoreScrollPositionAndViewState): Don't scroll if the view's
wasScrolledByUser flag is set.
(WebCore::FrameLoader::loadItem): Call setWasScrolledByUser(false) false when we do
a new "load" (actually just a scroll) using the same frame. Also moved the line of code that
sets m_currentHistoryItem to make this code path mroe similar to recursiveGoToItem.
(WebCore::FrameLoader::recursiveGoToItem): Ditto.
* page/Frame.cpp:
(WebCore::Frame::~Frame): Call clearFrame rather than stting m_frame directly.
(WebCore::Frame::sendScrollEvent): Call setWasScrolledByUser(true) on FrameView. The FrameView
itself knows to ignore this if the scrolling is being done programmatically instead of by the user.
* page/FrameView.h: Added wasScrolledByUser and setWasScrolledByUser. Also removed unneeded
include and class forward declarations, renamed clearPart to clearFrame, removed uneeded function
haveDelayedLayoutScheduled, and removed unneeded friend declarations.
* page/FrameView.cpp:
(WebCore::FrameViewPrivate::FrameViewPrivate): Added m_inProgrammaticScroll and m_wasScrolledByUser.
(WebCore::FrameViewPrivate::reset): Set m_wasScrolledByUser to false.
(WebCore::FrameView::clearFrame): Renamed from clearPart.
(WebCore::FrameView::scrollRectIntoViewRecursively): Added code to set the m_inProgrammaticScroll flag.
(WebCore::FrameView::setContentsPos): Ditto.
(WebCore::FrameView::wasScrolledByUser): Added.
(WebCore::FrameView::setWasScrolledByUser): Added. Does nothing if called when m_inProgrammaticScroll
is true.
2007-05-14 Darin Adler <darin@apple.com>
Reviewed by Antti.
- <rdar://problem/4865655> REGRESSION: find function does not work for the character ß
The trick was to fold case consistently in the CircularSearchBuffer class.
The problem was that we were folding the search target string with full case folding and
the characters of the text we were searching with simple case folding. We now use full
case folding in both cases.
* editing/TextIterator.cpp:
(WebCore::CircularSearchBuffer::CircularSearchBuffer): Changed the buffer to be a
Vector<UChar>. Added a Vector<bool> to record which characters were starts of characters
in the text we are searching. Changed the cursor to be an int rather than a pointer.
(WebCore::CircularSearchBuffer::append): New function that knows how to append multiple
characters when folding case turns one character into many -- uses the full foldCase
rather than the simplified single-character foldCase. Also removed the append function
that did multiple characters at once; that was part of an optimization we don't need.
(WebCore::CircularSearchBuffer::isMatch): Instead of asserting that the buffer is full,
changed this to return false if it's not full, which lets us fill up the buffer with
the normal loop. Also return false if the start of the buffer is half-way through a
case-folded character and updated this since m_cursor is now an integer.
(WebCore::CircularSearchBuffer::length): This returns the length in non-case-folded
characters of the characters that were appended, which may not be the same as the length
of the original target string. To do that we have to total up the character start
booleans for the current state of the circular buffer.
(WebCore::findPlainText): Streamlined the logic in a few ways: 1) Moved more of the
return value setup to the top of the function so it could be shared with the early
error exit. 2) Removed the separate "fill the buffer" logic, which allowed me to
remove some of the functions from CircularSearchBuffer and eliminated the need for
two nested loops. 3) Replaced the CharacterIterator and bool that were used to record
the location we found with integers matchStart and matchLength. 4) Got rid of the use
of goto since we don't have two nested loops any more.
2007-05-14 Andrew Wellington <proton@wiretapped.net>
Reviewed by Darin.
Fix http://bugs.webkit.org/show_bug.cgi?id=13275
Safari crashed when trying to login using the windows live contact control
Check for cleared windowObj in JSAbstractEventListener::handleEvent
* bindings/js/kjs_events.cpp:
(KJS::JSAbstractEventListener::handleEvent):
2007-05-13 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=13690
JavaScript Form Validation issue on Banco do Brasil site
Test: fast/forms/input-setvalue-selection.html
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setValue): In other browsers, changing textInput.value
always moves the insertion point past the text. In 10.4.9 WebKit, this only worked
for inactive controls, and it never worked in ToT.
2007-05-13 Brady Eidson <beidson@apple.com>
Reviewed by Mitz
http://bugs.webkit.org/show_bug.cgi?id=13701
Since HTMLInputElements register themselves with their Document for special handling, if their document
ever changes then bad things can happen.
Unfortunately, with adoptNode, the document can change. This has been a long standing crasher with all
input fields but was given recent high visibility by r21430
The solution is to add functionality for a Node to react to its owner document changing via a pair of
virtual callbacks. Then we can tap into those callbacks in HTMLInputElement.
No layout test possible until http://bugs.webkit.org/show_bug.cgi?id=13672 is resolved
* dom/Node.cpp:
(WebCore::Node::setDocument): Call willMoveToNewOwnerDocument and didMoveToNewOwnerDocument
* dom/Node.h:
(WebCore::Node::willMoveToNewOwnerDocument): Virtual callback to a node for before an owner document change
(WebCore::Node::didMoveToNewOwnerDocument): Virtual callback to a node for after an owner document change
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::~HTMLInputElement): Unconditionally unregister both for both form state
and the cache restoration callback
(WebCore::HTMLInputElement::setInputType): Change registration with the document only if we're in one
(WebCore::HTMLInputElement::attach): Don't bother registering for the callback here - that will be
handled by setInputType() or by a change in owner document
(WebCore::HTMLInputElement::willMoveToNewOwnerDocument): Unregister with the old owner document
(WebCore::HTMLInputElement::didMoveToNewOwnerDocument): Register with the new owner document
* html/HTMLInputElement.h:
2007-05-13 Darin Adler <darin@apple.com>
* platform/mac/TextBreakIteratorInternalICUMac.mm: Fix comment typo.
2007-05-13 Rob Buis <buis@kde.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=13529
DOM3 keyIdentifier text is incorrect
Use 4 digits for the Unicode based key identifiers.
* html/HTMLButtonElement.cpp:
(WebCore::HTMLButtonElement::defaultEventHandler):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::defaultEventHandler):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::menuListDefaultEventHandler):
* page/EventHandler.cpp:
(WebCore::EventHandler::defaultKeyboardEventHandler):
* page/gdk/EventHandlerGdk.cpp:
(WebCore::isKeyboardOptionTab):
* page/mac/EventHandlerMac.mm:
(WebCore::isKeyboardOptionTab):
* page/qt/EventHandlerQt.cpp:
(WebCore::isKeyboardOptionTab):
* platform/gdk/KeyEventGdk.cpp:
(WebCore::keyIdentifierForGdkKeyCode):
* platform/mac/KeyEventMac.mm:
(WebCore::keyIdentifierForKeyEvent):
* platform/qt/PlatformKeyboardEventQt.cpp:
(WebCore::keyIdentifierForQtKeyCode):
* platform/win/KeyEventWin.cpp:
(WebCore::keyIdentifierForWindowsKeyCode):
* platform/wx/KeyEventWin.cpp:
(WebCore::keyIdentifierForWindowsKeyCode):
* platform/wx/KeyboardEventWx.cpp:
(WebCore::keyIdentifierForWxKeyCode):
2007-05-12 Darin Adler <darin@apple.com>
Reviewed by Antti.
- fix <rdar://problem/5174903> Safari crashes opening the attached webarchive (made by OmniWeb)
* loader/icon/IconLoader.cpp:
(WebCore::IconLoader::didReceiveResponse): Check ResourceHandle for nil before calling url() on it.
(WebCore::IconLoader::didFail): Ditto.
(WebCore::IconLoader::didFinishLoading): Ditto.
2007-05-12 Rob Buis <buis@kde.org>
Reviewed by Oliver.
Cleanup, get rid of the SVGStyledElement::view() call.
* ksvg2/svg/SVGClipPathElement.cpp:
(WebCore::SVGClipPathElement::canvasResource):
* ksvg2/svg/SVGFEFloodElement.cpp:
(WebCore::SVGFEFloodElement::filterEffect):
* ksvg2/svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::buildStops):
* ksvg2/svg/SVGStyledElement.cpp:
* ksvg2/svg/SVGStyledElement.h:
2007-05-12 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13680
Incomplete repaint of focus ring around continuation
Test: fast/repaint/continuation-after-outline.html
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::absoluteClippedOverflowRect):
2007-05-12 Oliver Hunt <oliver@apple.com>
Reviewed by Hyatt.
<rdar://problem/4728842> Can't drag-and-drop files onto <input type="file">
This patch allows a file to be dropped on to a file input field. There
are a few changes for data handling and a few to allow the data to be
threaded to the appropriate places.
* page/DragController.cpp:
(WebCore::asFileInput):
When dropping a file onto a file input we may mouse over either
the element itself, or the contained button element. This method
returns the base element for the file input in either of these
cases.
(WebCore::DragController::tryDocumentDrag):
Don't try to set the drag caret to a file input.
(WebCore::DragController::concludeDrag):
Handle dropping onto a file input element.
(WebCore::DragController::canProcessDrag):
We can now process a file being dragged onto a file input element.
* platform/DragData.h:
New accessors
* platform/gdk/DragDataGdk.cpp:
(WebCore::DragData::containsFiles):
(WebCore::DragData::asFilenames):
Link stubs.
* platform/mac/DragDataMac.mm:
(WebCore::DragData::containsFiles):
(WebCore::DragData::asFilenames):
Implement new accessors
(WebCore::DragData::containsCompatibleContent):
Update containsCompatibleContent to allow standalone files.
* platform/qt/DragDataQt.cpp:
(WebCore::DragData::containsFiles):
(WebCore::DragData::asFilenames):
Link stubs
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::receiveDroppedFile):
* rendering/RenderFileUploadControl.h:
For security reasons we don't have an api to allow us to set
a value directly on a file input -- attempts to do so are
blocked. By adding a method to set the target through the
render we bypass such restrictions, and ensure the renderer
is updated correctly.
2007-05-12 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13695
REGRESSION (r21387): Replaced elements' highlight rects are wrongly positioned
Test: fast/replaced/selection-rect.html
Also fixes the same problem with list markers, covered by existing test
fast/lists/markers-in-selection.html.
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::selectionRect):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::selectionRect):
2007-05-12 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13685
REGRESSION (r21368-r21388): Highlighting text in scrolled textareas behaves oddly
Test: fast/repaint/text-selection-rect-in-overflow.html
* rendering/RenderText.cpp:
(WebCore::RenderText::selectionRect):
2007-05-12 Brady Eidson <beidson@apple.com>
Rubber stamped by Mitz
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::attach): unregister->register - I screwed this one up in last minute renaming
before committing :(
2007-05-11 Brady Eidson <beidson@apple.com>
Reviewed by Darin and Geoff
Fix for http://bugs.webkit.org/show_bug.cgi?id=13630
and
<rdar://problem/4873628>
Back/Forward cache should work with pages with login fields.
First change is to relocate the "useSecureKeyboardEntry" flag to the document. This lets
it persist through page cache transitions and it is truly a per-document concept more than
per-frame anyways since its the document that has a password field, not the frame.
Second change is to introduce the concept of an Element getting a "didRestoreFromCache()" callback.
The idea is for elements to register with the document if they need work to be done when the
page comes out of the back/forward cache. Currently the only client of this service is
HTMLInputElements that are input type == PASSWORD. Such an element's implementation for this
method is to call reset()
Finally, after a page is restored from the cache we have the document send the didRestoreFromCache()
callback to its registered Elements. The whole design is to clear the password fields after
restoring the page instead of when caching the page because we want to defer work for the common
case - there shouldn't be extra work here just to navigate away from a page when the common case
is that you'll never go back!
No layout tests possible until http://bugs.webkit.org/show_bug.cgi?id=13672 is resolved
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::registerForDidRestoreFromCacheCallback): Add an Element to the special page-restoration callback list
(WebCore::Document::unregisterForDidRestoreFromCacheCallback): Remove such an element
(WebCore::Document::didRestoreFromCache): Called by FrameLoader - dispatch to all the registered elements
(WebCore::Document::setUseSecureKeyboardEntryWhenActive): Set the local flag and call updateSecureKeyboardEntryIfActive
on the Frame
(WebCore::Document::useSecureKeyboardEntryWhenActive): Return the flag
* dom/Document.h:
(WebCore::Document::unregisterFormElementWithState): Renamed
* dom/Element.h:
(WebCore::Element::didRestoreFromCache): Added virtual base method
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::~HTMLInputElement): Deregister from the document if inputType == PASSWORD
(WebCore::HTMLInputElement::dispatchFocusEvent): Set the flag on the document, not the frame
(WebCore::HTMLInputElement::dispatchBlurEvent): Ditto
(WebCore::HTMLInputElement::setInputType): If changing to/from PASSWORD, register/deregister in the document accordingly
(WebCore::HTMLInputElement::attach): Call registerForDidRestoreFromCacheCallback(this) instead of passwordFieldAdded()
(WebCore::HTMLInputElement::didRestoreFromCache): Call reset();
* html/HTMLInputElement.h:
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::~HTMLSelectElement): Renamed deregisterFormElementWithState to unregisterFormElementWithState
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::~HTMLTextAreaElement): Ditto
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::canCachePage): Remove the check for password fields - they're allowed now!
(WebCore::FrameLoader::opened): Tell the document to dispatch to the registered elements
(WebCore::FrameLoader::saveDocumentState): Remove the check for password fields. Turns out that when we grab a copy a the
form state we're only copying the state of form elements that are registered with the Document - and that set
explicitly excludes Password elements
* page/Frame.cpp:
(WebCore::Frame::setDocument): If the frame is active, set the setUseSecureKeyboardEntry based on the setting contained
in the new document
(WebCore::Frame::updateSecureKeyboardEntryIfActive): Notification for the secure entry flag changing - if the Frame is
active, then update to the new setting from the document
(WebCore::Frame::setIsActive): Grab the useSecureKeyboardEntry flag from the document instead of FramePrivate
(WebCore::FramePrivate::FramePrivate):
* page/Frame.h:
* page/FramePrivate.h:
2007-05-12 David Hyatt <hyatt@apple.com>
FIx for 13696. Rework residual style to be much more aggressive about reopening. Added
a comprehensive test case of HTML tags to guarantee we match Firefox. We now have an exclusion
set rather than an inclusion set, so unknown future tags will also participate in residual style.
Reviewed by olliej
fast/invalid/residual-style.html
2007-05-12 David Hyatt <hyatt@apple.com>
Fix for bug 12740, bmw.com doesn't work. We were missing a rule that is covered by the HTML5
parsing spec. A <table> encountered while inside stray table content should close up the
table responsible for the stray content and start the new table as a sibling of the first.
Reviewed by mjs
fast/invalid/table-inside-stray-table-content.html
2007-05-12 Eric Seidel <eric@webkit.org>
Reviewed by mjs.
Crash starting Safari with JavaScript disabled.
http://bugs.webkit.org/show_bug.cgi?id=13691
Test: none possible.
* page/mac/FrameMac.mm:
(WebCore::Frame::cleanupPlatformScriptObjects): NULL check d->m_script
2007-05-11 David Hyatt <hyatt@apple.com>
Fix for http://bugs.webkit.org/show_bug.cgi?id=13688, Colloquy is broken!
Make sure to adjust the baseline of a percentage height table cell's row if the
cell flexes (and lowers the baseline).
Reviewed by olliej
fast/tables/vertical-align-baseline-readjust.html
(WebCore::RenderTableSection::calcRowHeight):
(WebCore::RenderTableSection::layoutRows):
* rendering/RenderTableSection.h:
(WebCore::RenderTableSection::getBaseline):
2007-05-11 David Hyatt <hyatt@apple.com>
Make sure focus rings are always using the exterior style, regardless
of what the OS default is.
Reviewed by beth
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::checkbox):
(WebCore::RenderThemeMac::radio):
(WebCore::RenderThemeMac::popupButton):
(WebCore::RenderThemeMac::search):
(WebCore::RenderThemeMac::sliderThumbHorizontal):
(WebCore::RenderThemeMac::sliderThumbVertical):
2007-05-11 Oliver Hunt <oliver@apple.com>
Reviewed by Hyatt.
<rdar://problem/5195473> REGRESSION: "Curly quote" fails to
be displayed correctly even when META tag specifies charset=x-mac-roman
* platform/TextCodecICU.cpp:
(WebCore::TextCodecICU::registerExtendedEncodingNames):
Register the xmacroman encoding
2007-05-11 Maciej Stachowiak <mjs@apple.com>
Reviewed by Hyatt.
REGRESSION (r21367): Crash due to null document deref when closing bookmarks
http://bugs.webkit.org/show_bug.cgi?id=13662
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::provisionalLoadStarted): Remove some useless and now harmful
code - there's no need to clear in this case.
2007-05-11 Oliver Hunt <oliver@apple.com>
GDK Build fix
* ChangeLog:
* dom/Document.cpp:
(WebCore::Document::importNode):
2007-05-11 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff.
- fixed <rdar://problem/5197621> closing second window crashed webkit (13660)
http://bugs.webkit.org/show_bug.cgi?id=13660
No test case; not testable.
* page/mac/FrameMac.mm:
(WebCore::Frame::cleanupPlatformScriptObjects): Check if the interpreter is null;
if so, we don't want to do work that may lazily create it while the Frame is being
destroyed.
2007-05-11 Oliver Hunt <oliver@apple.com>
Reviewed by Brady.
<rdar://problem/5017375> WebKit should disable SVG in Dashboard
Prevents an SVG document or element from being created when in
dashboard compatibility mode.
Manually parsing, or using XHR to created a document removes our
ability to detect Dashboard compatibility mode, so we also perform
the check when importing nodes from one document into another.
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument):
Don't create an SVGDocument if we're in dashboard compatibility mode
* dom/Document.cpp:
(WebCore::Document::importNode):
Don't import SVG nodes if we're in dashboard compatibility mode
* ksvg2/scripts/make_names.pl:
Don't create SVG elements for documents that are in dashboard
compatibility mode
2007-05-11 Holger Hans Peter Freyther <zecke@selfish.org>
Reviewed by Maciej.
Bug 13676: [cairo/gdk] Provide implementation for ImageBufferCairo
http://bugs.webkit.org/show_bug.cgi?id=13676
There are no test cases that explicitly cover platform/graphics at present.
* platform/graphics/ImageBuffer.h: Add cairo bits
* platform/graphics/cairo/ImageBufferCairo.cpp: Untested implementation of the ImagerBuffer using the image_surface
(WebCore::ImageBuffer::create): Create a reasonable sized surface
(WebCore::ImageBuffer::ImageBuffer): Use a cairo_surface and create a GraphicsContext. GraphicsContext takes the cairo_t ownership
(WebCore::ImageBuffer::~ImageBuffer): Unref the surface
(WebCore::ImageBuffer::context): simply return the GraphicsContext, it should be possible to directly draw on it.
2007-05-11 Mitz Pettel <mitz@webkit.org>
Release build fix.
* platform/mac/ShapeArabic.c:
(shapeArabic):
2007-05-11 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
Removed +[WebScriptObject scriptObjectForJSObject:frame:] because the
WebScriptObject API has some serious limitations that make it not ready
to be used everywhere the C API is used. Hopefully we can add a good
ObjC API in the future that doesn't suffer from this problem.
Preliminary notes about these limitations are in <rdar://problem/4876466>.
* bindings/objc/WebScriptObject.mm:
* bindings/objc/WebScriptObjectPendingPublic.h:
2007-05-11 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13635
REGRESSION: Cannot log in to webmail.co.za account
Test: fast/dom/HTMLOptionElement/option-text.html
Despite the specification that the 'text' attribute of HTMLOptionElement
is "the text contained within the option element", other browsers return
the text as displayed in the list box or popup, which is without leading,
trailing and collapsible whitespace.
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::text): Moved the code to trim and collapse
whitespace and replace backslashes with the currency symbol into this
function.
(WebCore::HTMLOptionElement::optionText): Left only the code that adds
the leading spaces for grouped options. Removed code that, in quirks mode,
displayed the label if the option element contained no text. That behavior
did not match WinIE and the description of the expected behavior in
fast/forms/HTMLOptionElement_label06.html.
2007-05-11 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13572
Arabic characters are not correctly joined when using Arial
No tests added because standard fonts do not use the character-based shaping
code path.
Added shapeArabic(), a private version of u_shapeArabic() from ICU,
patched to shape Arabic characters used in Persian, Urdu, Sindhi, etc.
(whose contextual forms belong to the Arabic Presentation Forms-A block).
* WebCore.xcodeproj/project.pbxproj: Added ShapeArabic.{c,h}.
* platform/mac/FontMac.mm:
(WebCore::shapeArabic): Changed to call shapeArabic() instead of u_shapeArabic().
* platform/mac/ShapeArabic.c: Added. Based on ushape.c from ICU, with
additional shaping data and logic for Arabic Presentation Forms-A. Removed
many options that are not used in WebKit and code that malloc()ed a temporary
buffer and reversed the string.
(changeLamAlef):
(specialChar):
(getLink):
(isTashkeelChar):
(shapeUnicode):
(shapeArabic):
* platform/mac/ShapeArabic.h: Added.
2007-05-11 Darin Adler <darin@apple.com>
Reviewed by Mitz.
- fix http://bugs.webkit.org/show_bug.cgi?id=7452
<rdar://problem/3211749> line breaks ignored after <wbr> in <pre> block (affects livejournal.com)
- fix http://bugs.webkit.org/show_bug.cgi?id=10657
<rdar://problem/4274588> <wbr> tags are ignored
- fix http://bugs.webkit.org/show_bug.cgi?id=12689
<wbr> :before/:after content causes line break
- fix <rdar://problem/5127366> DOM tree isn't correct when parsing with <wbr>
Test: fast/text/wbr-pre.html
Test: fast/text/wbr.html
Test: fast/css-generated-content/wbr-with-before-content.html
Test: fast/parser/parse-wbr.html
* html/HTMLElement.h:
* html/HTMLElement.cpp:
(WebCore::HTMLElement::endTagRequirement): Use the same end tag requirement for a <wbr>
element as for a <br> element, TagStatusForbidden.
(WebCore::HTMLElement::tagPriority): Use the same priority for a <wbr> element as for a
<br> element, 0.
(WebCore::HTMLElement::createRenderer): Added. Create a RenderWordBreak to trigger the
new rendering code paths.
* rendering/RenderFlow.h: Add a virtual isWordBreak so we can detect RenderWordBreak.
* rendering/RenderWordBreak.h: Added.
* rendering/RenderWordBreak.cpp: Added.
* WebCore.pro: Added new files.
* WebCore.xcodeproj/project.pbxproj: Added new files.
* WebCoreSources.bkl: Added new files.
* rendering/RenderBlock.cpp: (WebCore::RenderBlock::calcInlinePrefWidths): Reset the
line when we hit a <wbr>.
* rendering/bidi.cpp: (WebCore::RenderBlock::findNextLineBreak): Add a line break when
we hit a <wbr>.
* dom/Node.cpp: (Node::createRendererIfNeeded): Fix a null check for the case where
createRenderer returns 0 even though rendererIsNeeded returned true. I can't reproduce
it on demand, but while running layout tests I hit this once. Since there was already
a null check here, I rearranged it so it guards all the code that uses the renderer.
Later we might want to figure out under exactly what circumstances rendererIsNeeded
will return true but createRenderer return 0 and consider eliminating them.
2007-05-11 David Hyatt <hyatt@apple.com>
Fix for bug 13675, focus rings don't repaint properly on editable
continuations.
Reviewed by olliej
(WebCore::InlineFlowBox::paint):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintObject):
(WebCore::continuationOutlineTable):
(WebCore::RenderBlock::addContinuationWithOutline):
(WebCore::RenderBlock::paintContinuationOutlines):
* rendering/RenderBlock.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::absoluteClippedOverflowRect):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::repaintAfterLayoutIfNeeded):
(WebCore::RenderObject::absoluteOutlineBox):
2007-05-11 Rob Buis <buis@kde.org>
Reviewed by Oliver.
Cleanups mostly inspired by Coverage results.
* ksvg2/css/SVGCSSParser.cpp:
(WebCore::CSSParser::parseSVGValue):
(WebCore::CSSParser::parseSVGStrokeDasharray):
* ksvg2/css/SVGRenderStyleDefs.cpp:
(StyleFillData::operator==):
* ksvg2/svg/SVGColor.cpp:
(WebCore::SVGColor::colorFromRGBColorString):
2007-05-11 Holger Freyther <freyther@kde.org>
Reviewed by Mark Rowe.
Move libcurl configuration into WebKit.pri so it will be used by GdkLauncher.
* WebCore.pro:
2007-05-10 David Hyatt <hyatt@apple.com>
<rdar://problem/5015522> Bounds rectangle of unloaded images is
drawn briefly while loading
When the image is null and has no size, don't draw the grey
rectangles or alt text any more. Wait for an actual error to
occur with the image before we start showing alt text and borders.
(Images with no source set at all will continue to show alt text and
borders immediately.)
Reviewed by bradee-oh
* rendering/RenderImage.cpp:
(WebCore::RenderImage::paint):
2007-05-10 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13655
Incomplete repaint when text-shadow is used in a render layer with explicit height
Test: fast/repaint/layer-full-repaint.html
Removed custom repaint logic from RenderLayer. repaintAfterLayoutIfNeeded()
knows how to do everything we need now. The only catch is that we cannot
rely on its "do a full repaint if the object needs layout" behavior, since
by the time we call it, the needs layout flag has been reset. The solution
is to cache the need for a full repaint in the layer.
* page/FrameView.cpp:
(WebCore::FrameView::layout): Removed call to checkForRepaintOnResize().
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::checkForRepaintOnResize): Removed.
(WebCore::RenderLayer::RenderLayer): Replaced the m_repaintOverflowOnResize
flag with a m_needsFullRepaint flag, which indicates that the layer needs
to do a full repaint in the next call to updateLayerPositions().
(WebCore::RenderLayer::updateLayerPositions): Simplified the repaint logic.
Either call repaintAfterLayoutIfNeeded() or do a full repaint, depending on
m_needsFullRepaint.
* rendering/RenderLayer.h:
(WebCore::RenderLayer::setNeedsFullRepaint):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::setNeedsLayout): Mark the layer for full repaint.
2007-05-10 Justin Garcia <justin.garcia@apple.com>
Reviewed by ggaren
<rdar://problem/5195166> Incorrect proposedRange DOMRange passed to WebViewEditing delegate
In setModifyBias, we must cache the start and the end
because the calls to setBase and setExtent can modify
them (added a testcase).
The temporary SelectionController that we use in modify() to
produce the proposed range that will be passed to
shouldChangeSelectedDOMRange must have the same m_modifyBias
as the original SelectionController, or else when the
modification is performed, setModifyBias can swap the base
and the extent incorrectly (added a testcase).
Renamed m_modifyBias to m_lastChangeWasHorizontalExtension.
Renamed setModifyBias to willBeModified.
* editing/SelectionController.cpp:
(WebCore::SelectionController::SelectionController):
(WebCore::SelectionController::setSelection):
(WebCore::SelectionController::willBeModified):
(WebCore::SelectionController::modify):
* editing/SelectionController.h:
(WebCore::SelectionController::setLastChangeWasHorizontalExtension):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEventSingleClick):
(WebCore::EventHandler::updateSelectionForMouseDragOverPosition):
2007-05-10 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
"IconDatabase::sharedIconDatabase()" => "iconDatabase()" for terseness,
in the style of WebCore::cache().
* WebCore.exp:
* history/HistoryItem.cpp: Removed retainIconInDatabase because calling
"retain" in order to release something is really confusing and, now that
iconDatabase() is more terse, we don't need this helper to shorten the
syntax. (The isEmpty() check is also done by the database, so we don't
need it either.)
(WebCore::IconDatabase::~IconDatabase): ASSERT that our destructor isn't
called. We're a singleton, so it's confusing to have tear-down code.
2007-05-10 Adele Peterson <adele@apple.com>
Reviewed by Hyatt.
WebCore part of fix for <rdar://problem/4100616> Doing a "find" in RSS doesn't scroll to result
Test: fast/overflow/scroll-nested-positioned-layer-in-overflow.html
Merged visibleSelectionRect into selectionRect. selectionRect() now takes an argument to determine
whether or not to return a rect that clips to the visible content. This change makes all of the implementations of selectionRect
consistent by having them all consider the repaint rect when clipping to visible content.
* page/Frame.cpp:
(WebCore::Frame::revealSelection): Call selectionRect with clipToVisibleContent = false, so we can get a rect that's not visible to reveal.
(WebCore::Frame::selectionRect): Added clipToVisibleContent argument, and merged visibleSelectionRect into this method.
(WebCore::Frame::setIsActive): Use selectionRect instead of visibleSelectionRect.
* page/Frame.h:
* page/mac/FrameMac.mm: (WebCore::Frame::selectionImage): Update layout before creating the image. Use selectionRect instead of visibleSelectionRect.
* page/DragController.cpp: (WebCore::dragLocForSelectionDrag): Use selectionRect instead of visibleSelectionRect.
* rendering/RenderBR.h: (WebCore::RenderBR::selectionRect): Updated argument.
* rendering/RenderBlock.h: (WebCore::RenderBlock::selectionRect): ditto.
* rendering/RenderSVGInlineText.cpp: (WebCore::RenderSVGInlineText::selectionRect): ditto.
* rendering/RenderSVGInlineText.h: ditto.
* rendering/RenderObject.h:
(WebCore::RenderObject::selectionRect): ditto.
(WebCore::RenderObject::SelectionInfo::SelectionInfo): ditto.
* rendering/RenderView.cpp:
(WebCore::RenderView::selectionRect): ditto.
(WebCore::RenderView::setSelection): ditto.
* rendering/RenderView.h:
* rendering/RenderText.h:
* rendering/RenderText.cpp: (WebCore::RenderText::selectionRect): Only call computeAbsoluteRepaintRect when clipping to visible content.
Otherwise, just adjust the rect to the correct position.
* rendering/RenderListMarker.h:
* rendering/RenderListMarker.cpp: (WebCore::RenderListMarker::selectionRect):
To match what we do in RenderText, if we're trying to clip to visible content, just call computeAbsoluteRepaintRect.
* rendering/RenderReplaced.h:
* rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::selectionRect): ditto.
* rendering/RenderLayer.cpp: (WebCore::RenderLayer::scrollRectToVisible): Check for a parent layer at the beginning, so we can try to scroll all of our parent layers
first, before trying to scroll the top level view. Also, don't try to scroll overflow layers that have -webkit-line-clamp restricting the height.
This will prevent us from revealing text hidden by the slider in Safari RSS.
* WebCore.exp: Update symbols for WebKit.
2007-05-10 David Hyatt <hyatt@apple.com>
Fix for:
<rdar://problem/5195272> REGRESSION: broke outline rings for continuations
with empty inline containers
http://bugs.webkit.org/show_bug.cgi?id=13667
Make sure to only include collapsed top/bottom margins of the block portion
of the continuation if we know for sure that we have inline line boxes before
and after that would prevent the collapse from going further.
In plain English: the focus rings were too tall. :)
Reviewed by beth
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::addFocusRingRects):
2007-05-10 David Hyatt <hyatt@apple.com>
Fix for:
<rdar://problem/5067235> REGRESSION: Excessively wide table, impossible to resize
The table used white-space: pre-wrap, which is supported only by WebKit. There
was a bug with the computation of min pref width for pre-wrap text.
Reviewed by mitzpettel
fast/text/white-space/pre-wrap-line-test.html
* rendering/RenderText.cpp:
(WebCore::RenderText::calcPrefWidths):
2007-05-10 Brady Eidson <beidson@apple.com>
Reviewed by Oliver
Cleanup from my earlier Java Applet patch. We should keep a central location to query if
a mime type counts as a Java Applet
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::containsJavaApplet): Query MimeTypeRegistry on the type
* platform/MimeTypeRegistry.cpp:
(WebCore::MimeTypeRegistry::isSupportedImageMIMEType): Update style
(WebCore::MimeTypeRegistry::isSupportedImageResourceMIMEType): Ditto
(WebCore::MimeTypeRegistry::isSupportedNonImageMIMEType): Ditto
(WebCore::MimeTypeRegistry::isJavaAppletMIMEType): Perform the Java Applet check
* platform/MimeTypeRegistry.h:
* rendering/RenderPartObject.cpp:
(WebCore::RenderPartObject::updateWidget): Query MimeTypeRegistry on the type
2007-05-10 Patti Hoa <patti@apple.com>
Reviewed by Darin.
<rdar://problem/4720109> Sentence textMarker methods do not work well with empty lines
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject doAXNextSentenceEndTextMarkerForTextMarker:]):
(-[WebCoreAXObject doAXPreviousSentenceStartTextMarkerForTextMarker:]):
When a marker position is given, the sentence ax methods automatically shift position by one to make sure
not to ask for the current sentence again. This is generally fine except when the position
shift over an empty line break, which is should be considered a separate sentence. In this case,
if we used the shifted position to ask for sentence boundary, ICU parser is not given the text data
containing the newline to correctly determine the sentence boundary. Since the ax sentence method is
explicitly shifting the position to ask for sentence boundary, it should make sure not to skip over important
character that can be a standalone sentence.
* editing/visible_units.cpp:
(WebCore::nextBoundary):
When determining boundary, don't stop on a collapsed range, such as newline.
Just pick the next valid position to use as boundary.
2007-05-10 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- WebCore part of fix for:
<rdar://problem/5063277> blank screen after login to Citibank Online (accessing document before frame starts loading cancels load)
<rdar://problem/5159541> REGRESSION (r20972): Wall Street Journal pages replaced by advertisements (13465)
The basic approach is to have Frames start out containing an empty document instead of absolutely nothing,
so there is no need to initialize them on demand. Various side effects of that cause both of these bugs.
However, this caused many regressions so I had to fix the fallout.
* WebCore.exp: fix symbol exports
* bindings/js/kjs_window.cpp:
(KJS::createNewWindow): useless "created" bool (we don't need it here)
(KJS::WindowFunc::callAsFunction): detect if we created a new frame, because if so,
we need to initialize the domain (can't count on it not having a document), also
don't try to make a new document for it.
Also, stop properly.
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::CSSStyleSelector): don't count on document having a view here
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::isImageType): Ask client, to match how other <object> renderer
decisions are made.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader): Initialize new data members
(WebCore::FrameLoader::init): Do the slightly tricky sequence of steps to properly make
an empty document with everything hooked up.
(WebCore::FrameLoader::createWindow): Added "created" bool.
(WebCore::FrameLoader::stopLoading): (whitespace change)
(WebCore::FrameLoader::begin): Don't try to create an empty document.
(WebCore::FrameLoader::finishedParsing): If creating an initial empty document, don't
do any of this work.
(WebCore::FrameLoader::checkCompleted): Do checkLoadComplete() as well.
(WebCore::FrameLoader::baseURL): don't check for null document
(WebCore::FrameLoader::baseTarget): ditto
(WebCore::FrameLoader::completeURL): ditto
(WebCore::FrameLoader::didTellBridgeAboutLoad): ditto
(WebCore::FrameLoader::scheduleLocationChange): determine duringLoad differently; doc won't
be null.
(WebCore::FrameLoader::gotoAnchor): don't check for null document
(WebCore::FrameLoader::canTarget): don't check for null document
(WebCore::FrameLoader::stopForUserCancel): new method for explicit stops like window.stop().
(WebCore::FrameLoader::transitionToCommitted): check for pre-loaded state properly
(WebCore::FrameLoader::createEmptyDocument): removed
(WebCore::FrameLoader::checkLoadCompleteForThisFrame): don't send delegate callbacks when making initial
doc.
(WebCore::FrameLoader::tokenizerProcessedData): Assume document; just checkCompleted now that it
does checkLoadComplete.
(WebCore::FrameLoader::receivedMainResourceError): assume document
(WebCore::FrameLoader::saveDocumentState): Assume there's a document except during initial load
(WebCore::FrameLoader::mainReceivedCompleteError): do checkCompleted, not checkLoadComplete
(WebCore::FrameLoader::continueLoadWithData): assume document
* loader/FrameLoader.h:
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::receivedError): Add more ref protection and do things in a slightly
different order.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::document): don't force document creation, just assert there is one.
* page/Frame.cpp:
(WebCore::Frame::init): Added init method.
(WebCore::Frame::pageDestroyed): when a frame is removed, make sure to check if the parent is
done loading.
* page/Frame.h:
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]): No need to force
document.
(-[WebCoreFrameBridge aeDescByEvaluatingJavaScriptFromString:]): ditto
* platform/graphics/svg/SVGImage.cpp:
(WebCore::SVGImage::dataChanged): init the frame
* rendering/RenderPart.cpp:
(WebCore::RenderPart::updateWidgetPosition): If a subframe needs layout, then lay it out even
if the bounds did not change; the content size might be wrong.
* rendering/RenderTreeAsText.cpp:
(WebCore::externalRepresentation): Don't crash if the frame lacks a view.
2007-05-10 David Hyatt <hyatt@apple.com>
Fix for:
<rdar://problem/5146757> REGRESSION: div that wrapped to screen width in
tiger no longer wraps
http://bugs.webkit.org/show_bug.cgi?id=13654
Reviewed by mitz
fast/text/whitespace/normal-after-nowrap-breaking.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::calcInlinePrefWidths):
2007-05-10 David Hyatt <hyatt@apple.com>
Fix for:
<rdar://problem/4778099> Links with nested continuations fail to
paint their outlines (11255)
http://bugs.webkit.org/show_bug.cgi?id=11255
Fix multiple bugs with outline painting of continuations to ensure that
all combos work (empty/full inline - block with/without margins -
empty/full inline).
Reviewed by mitz
fast/inline/continuation-outlines.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintObject):
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::addFocusRingRects):
2007-05-10 David Hyatt <hyatt@apple.com>
Fix for:
<rdar://problem/5193529> REGRESSION: RTL Overflows scrollbar not showing
when they should be
Fallout from fix for bug 11926. Make sure to restrict the fix to the
RenderView for now, since the full-blown overflow case is pretty involved.
Reviewed by mitzpettel
fast/overflow/unreachable-content-bug-rtl.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::lowestPosition):
(WebCore::RenderBlock::rightmostPosition):
(WebCore::RenderBlock::leftmostPosition):
2007-05-10 Brady Eidson <beidson@apple.com>
Reviewed by Oliver
Fix for http://bugs.webkit.org/show_bug.cgi?id=13636 and <rdar://problem/5190816>
When creating the applets collection, be sure to only count Objects if they contain
a java applet
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::traverseNextItem): Add the qualifier for Objects that
containsJavaApplet() must be true
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::containsJavaApplet): Check this Object element and inner
nodes for any Java applets
* html/HTMLObjectElement.h:
2007-05-10 David Hyatt <hyatt@apple.com>
Fix for:
<rdar://problem/4694859> SAP: HTML tags with overflow:hidden consume
space on page, do not consume space in Firefox (11926)
http://bugs.webkit.org/show_bug.cgi?id=11926
Make sure that unreachable objects along one axis (e.g., top/left) do not
contribute to the scrollable area in the opposite axis (e.g., right/bottom).
Reviewed by olliej
fast/overflow/unreachable-content-test.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::lowestPosition):
(WebCore::RenderBlock::rightmostPosition):
(WebCore::RenderBlock::leftmostPosition):
2007-05-10 David Hyatt <hyatt@apple.com>
Fix for:
<rdar://problem/4656825> REGRESSION: Japanese TV time table widget:
part of the number in background has been cut off.
Now that opacity uses a tight bounding box to clip, we need to make sure
to factor spillout caused by negative letter spacing into our right
overflow. Latch on to the code that does this already for text-stroke
and text-shadow.
Reviewed by olliej
fast/text/letter-spacing-negative-opacity.html
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::placeBoxesHorizontally):
2007-05-10 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
More fix-ups to the WebScriptObject/WebScripting APIs, related to
<rdar://problem/5140447> API for fetching JSGlobalContextRef from WebView
or WebFrame
* bindings/objc/WebScriptObject.h: Fully specified the surprising rules for
type conversion between JavaScript and ObjC.
* bindings/objc/WebScriptObject.mm: Added up-call accessor to WebFrame.
This is kind of stinky, but I'm OK with it because eventually all of this
code should move up into WebKit.
(+[WebScriptObject scriptObjectForJSObject:frame:]):
(-[WebScriptObject valueForKey:]):
(-[WebScriptObject JSObject]):
- Added _rootObject check because if _rootObject returns NULL it means
that _imp is no longer GC protected, so it's not safe to use.
- Added _isSafeScript check because that's what WebScriptObject methods
typically do, even though the value of doing so isn't clear to me.
* bindings/objc/WebScriptObjectPendingPublic.h: Added WebFrame* parameter
to -scriptObjectForJSObject:. This is required to wrap JS objects that
are not already in the wrapper cache. It would be nice to remove this
limitation of WebScriptObject some day.
* page/mac/FrameMac.mm:
(WebCore::Frame::cleanupPlatformScriptObjects): Force removal of m_windowScriptObject
from the cache, to avoid retrieving the m_windowScriptObject from the previous
page on a new page load. (It would be non-functional in that case.)
2007-05-10 David Hyatt <hyatt@apple.com>
Fix for <rdar://problem/5183697>.
http://bugs.webkit.org/show_bug.cgi?id=13576
Make sure verticalPositionHint is not called on an inline-block from
content inside the inline-block (like text).
Reviewed by olliej
fast/inline-block/inline-block-vertical-align.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::verticalPositionHint):
* rendering/RenderText.cpp:
(WebCore::RenderText::verticalPositionHint):
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::setFontFromControlSize):
2007-05-09 Holger Freyther <zecke@selfish.org>
Reviewed by Mark Rowe.
Gdk build fix with SVG enabled. Stub out ImageBufferCairo.
* WebCore.pro: Build ImageBufferCairo.cpp
* platform/graphics/cairo/ImageBufferCairo.cpp: Added.
(WebCore::ImageBuffer::create):
(WebCore::ImageBuffer::~ImageBuffer):
(WebCore::ImageBuffer::context):
2007-05-08 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5017613> Style changes don't effect fully selected ToDo content
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyInlineStyle):
Use a for loop instead of while(1).
Simplify loop termination using Range::pastEndNode.
Don't handle the start.node() == end.node() case
specially, it's unnecessary.
Apply the style change to fully selected plaintext-only
regions, not with wrapper spans inside the region, but
by changing the element's inline style declaration.
Don't descend into nodes whose children we should ignore.
2007-05-09 Adele Peterson <adele@apple.com>
Reviewed by Hyatt.
Fix for <rdar://problem/5113578> REGRESSION: textfields that set the height but not the font
look different from IE & FF because the font is small
For plain text fields, don't stretch the inner text box. Center it vertically in the field.
* rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::layout):
2007-05-09 Atul Mehrotra <atul.mehrotra@celunite.com>
Gdk build fix.
* platform/gdk/TemporaryLinkStubs.cpp:
(Editor::newGeneralClipboard):
2007-05-09 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13037
REGRESSION: Copy-on-scroll not reset properly after back/forward navigation
* page/FrameView.cpp:
(WebCore::FrameViewPrivate::FrameViewPrivate): Moved initialization of
m_slowRepaintObjectCount here.
(WebCore::FrameViewPrivate::reset): Do not reset the slow repaint object
count here.
(WebCore::FrameView::useSlowRepaints):
(WebCore::FrameView::addSlowRepaintObject):
(WebCore::FrameView::removeSlowRepaintObject): Added an assertion that the
object count is positive.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::setStyle): Corrected a mix up between old and new
style, which caused the object count to be decremented when it was supposed
to be incremented and vice versa.
2007-05-09 Peter Müller <pm@one.com>
Reviewed by Dave Hyatt.
Changed the hardcoded colors that are used for CSS 2.1 system colors.
Previous colors had numerous conflicts in semantic pairs, which
made text invisible in highlight, info and menu colored areas.
The new hardcoded colors are inspired by Aqua.
Ideally these colors should be fetched through AppKit instead,
though I am not sure if it is possible to make a 1:1 mapping
between CSS2.1 system colors and Mac OS X.
* css/cssstyleselector.cpp:
(WebCore::):
2007-05-09 Lars Knoll <lars@trolltech.com>
Fix the Qt build.
* editing/qt/EditorQt.cpp:
2007-05-08 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
More fix-ups to the WebScriptObject/WebScripting APIs, related to
<rdar://problem/5140447> API for fetching JSGlobalContextRef from WebView
or WebFrame
1. Added -scriptObjectForJSObject: SPI so you can bridge back from JavaScriptCore
to WebScriptObject.
2. Fixed WebScriptObject bridging so that you always get the same WebScriptObject
for a JSObject (like in the DOM). This makes -scriptObjectForJSObject: a
lot more coherent as an API.
* bindings/objc/DOMInternal.mm: Renamed wrapperCache to DOMWrapperCache
to distinguish from the JSWrapperCache. Added typedef for readability.
(WebCore::getDOMWrapper):
(WebCore::addDOMWrapper):
(WebCore::removeDOMWrapper):
* bindings/objc/WebScriptObject.mm: Added JSWrapperCache, which works just
like the DOMWrapperCache.
(WebCore::getJSWrapper):
(WebCore::addJSWrapper):
(WebCore::removeJSWrapper):
(WebCore::createJSWrapper):
(+[WebScriptObject scriptObjectForJSObject:]): This is the new API. It attempts
to return a specific DOM wrapper object, or, barring that, it returns a
generic WebScriptObject.
(+[WebScriptObject scriptObjectForJSObject:originRootObject:rootObject:]):
Added this method to support our old WebScriptObject security and leak
checking model, even though it doesn't work very well.
(-[WebScriptObject _setImp:originRootObject:rootObject:]):
(-[WebScriptObject dealloc]):
(-[WebScriptObject finalize]):
(+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
* bindings/objc/WebScriptObjectPendingPublic.h:
* bindings/objc/WebScriptObjectPrivate.h:
* page/mac/FrameMac.mm:
(WebCore::Frame::windowScriptObject): Changed to use the new API. This
fixes a bug where the object sent to -windowScriptObjectAvailable: and returned
from -windowScriptObject could not be round-tripped.
2007-05-09 Mark Rowe <mrowe@apple.com>
Build fix.
* editing/Editor.cpp:
(WebCore::findFirstGrammarDetailInRange): Use unsigned rather than int.
(WebCore::findFirstBadGrammarInRange): Cast to unsigned in assertion.
(WebCore::isRangeUngrammatical): Remove unused variables.
2007-05-08 Oliver Hunt <oliver@apple.com>
Reviewed by Darin.
Fix <rdar://problem/5188938> arc method on Canvas causes hang or crash
Workaround bad behaviour of CGPathAddArc when passed inf as start or
end angles.
* platform/graphics/cg/PathCG.cpp:
(WebCore::Path::addArc):
2007-05-08 Darin Adler <darin@apple.com>
Reviewed by Hyatt and Hatcher.
- fix auto-activation code path so Tiger and Leopard aren't different
* platform/mac/WebFontCache.mm: (+[WebFontCache fontWithFamily:traits:size:]):
Do the auto-activation dance first before doing anything else, and ignore the
font that it returns.
2007-05-08 Steve Falkenburg <sfalken@apple.com>
Reviewed by Darin.
Moved most spelling/grammar logic to C++. Now calls through to
WebKit to actually invoke NSSpellChecker.
* editing/Editor.cpp:
(WebCore::Editor::ignoreSpelling): Added (ported from EditorMac).
(WebCore::Editor::learnSpelling): Added (ported from EditorMac).
(WebCore::findFirstMisspellingInRange): Added (ported from EditorMac).
(WebCore::paragraphAlignedRangeForRange): Added (ported from EditorMac).
(WebCore::findFirstGrammarDetailInRange): Added (ported from EditorMac).
(WebCore::findFirstBadGrammarInRange): Added (ported from EditorMac).
(WebCore::Editor::advanceToNextMisspelling): Added (ported from EditorMac).
(WebCore::Editor::isSelectionMisspelled): Added (ported from EditorMac).
(WebCore::isRangeUngrammatical): Added (ported from EditorMac).
(WebCore::Editor::isSelectionUngrammatical): Added (ported from EditorMac).
(WebCore::Editor::guessesForUngrammaticalSelection): Added (ported from EditorMac).
(WebCore::Editor::guessesForMisspelledSelection): Added (ported from EditorMac).
(WebCore::Editor::showSpellingGuessPanel): Added (ported from EditorMac).
(WebCore::Editor::spellingPanelIsShowing): Added (ported from EditorMac).
(WebCore::Editor::markMisspellingsAfterTypingToPosition): Added (ported from EditorMac).
(WebCore::markAllMisspellingsInRange): Added (ported from EditorMac).
(WebCore::markAllBadGrammarInRange): Added (ported from EditorMac).
(WebCore::markMisspellingsOrBadGrammar): Added (ported from EditorMac).
(WebCore::Editor::markMisspellings): Added (ported from EditorMac).
(WebCore::Editor::markBadGrammar): Added (ported from EditorMac).
* editing/mac/EditorMac.mm: Removed Objective C version of spelling/grammar calls.
2007-05-08 Steve Falkenburg <sfalken@apple.com>
Reviewed by Ada.
Slight modification to last editor method fix.
* bridge/EditorClient.h:
* platform/gdk/EditorClientGdk.cpp:
(WebCore::EditorClientGdk::updateSpellingUIWithGrammarString):
* platform/gdk/EditorClientGdk.h:
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyEditorClient::updateSpellingUIWithGrammarString):
2007-05-08 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Hyatt.
http://bugs.webkit.org/show_bug.cgi?id=13480
window.Attr is undefined
Test: fast/dom/Window/attr-constructor.html
* dom/Attr.idl:
* dom/CDATASection.idl:
* dom/CharacterData.idl:
* dom/Comment.idl:
* dom/DOMImplementation.idl:
* dom/DocumentType.idl:
* dom/Entity.idl:
* dom/EntityReference.idl:
* dom/Notation.idl:
* dom/ProcessingInstruction.idl:
* dom/Text.idl:
Added GenerateConstructor.
* page/DOMWindow.idl: Added constructor properties for DOM interfaces.
2007-05-07 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
Fixed <rdar://problem/5140447> API for fetching JSGlobalContextRef from
WebView or WebFrame
Added support for new -[WebScriptObject JSObject] and -[WebFrame globalContext]
APIs.
Also fixed some more cases of <rdar://problem/4395622> API:
WebScriptObject.h incorrectly reports that -isSelectorExcludedFromWebScript
returns NO by default, and generally cleaned up that documentation.
* WebCore.exp: A lot of the diff here is from sorting.
* WebCore.xcodeproj/project.pbxproj:
* bindings/objc/WebScriptObject.h:
* bindings/objc/WebScriptObject.mm:
(-[WebScriptObject JSObject]):
* bindings/objc/WebScriptObjectPendingPublic.h: Added.
2007-05-08 Lars Knoll <lars@trolltech.com>
Reviewed by Hyatt.
Fix valgrind reported uninitialized memory read.
* rendering/RenderText.cpp:
(WebCore::RenderText::RenderText):
2007-05-07 Justin Garcia <justin.garcia@apple.com>
Reviewed by oliver
<rdar://problem/4895428> Can't drag selected ToDo
The user tries to drag a selection by mousing down
on the editable part of a ToDo, which is focusable,
since it is an editable node within non-editable
content. But we focus focusable elements on mouse
down, and focusing the editable piece blows away
the selection and prevents the drag. This is how
IE behaves, but content seems generally difficult
to drag in IE, so this doesn't make it any worse.
Since focus doesn't appear to be cancelable, either
with a DOM event or an editing delegate, I fixed this
by delaying the focus of focusable nodes that are
selected and inside an already focused node. The
node will be focused if the user mouses up without
doing any dragging because the mouse up sets a
selection, which calls setFocusNodeIfNeeded.
* page/EventHandler.cpp:
(WebCore::EventHandler::dispatchMouseEvent):
2007-05-07 Atul Mehrotra <atul.mehrotra@celunite.com>
Reviewed by Maciej.
GDK Build fix
* platform/gdk/TemporaryLinkStubs.cpp:
2007-05-07 Oliver Hunt <oliver@apple.com>
Reviewed by Maciej.
Correcting comparisons to handle NaN in the same manner
as other Canvas methods.
* html/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::arcTo):
(WebCore::CanvasRenderingContext2D::arc):
Correcting arc/arcTo to match the WHAT WG draft.
(WebCore::CanvasRenderingContext2D::rect):
(WebCore::CanvasRenderingContext2D::clearRect):
(WebCore::CanvasRenderingContext2D::fillRect):
(WebCore::CanvasRenderingContext2D::strokeRect):
2007-05-07 David Hyatt <hyatt@apple.com>
Add some comments to the glyph/font code (patch from MarvinD, tweaked by
me to correct a few bits and to make it forward-compatible with the work
going on in 3315.
Reviewed by me
* ChangeLog:
* platform/Font.cpp:
(WebCore::Font::glyphDataForCharacter):
* platform/GlyphPageTreeNode.cpp:
(WebCore::GlyphPageTreeNode::initializePage):
* platform/GlyphPageTreeNode.h:
2007-05-07 Justin Garcia <justin.garcia@apple.com>
Fix layout test failures.
* editing/SelectionController.cpp:
(WebCore::SelectionController::contains): Use comparePositions
instead of Range::comparePoint, because comparePositions can
handle positions inside shadow trees.
2007-05-07 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/4895428> Can't drag selected To Do if it is not showing a due date
The code in SelectionController::contains returned false
incorrectly if the selection end just after a table
and the position was inside that table.
* editing/SelectionController.cpp:
(WebCore::SelectionController::contains): Compare the position with the
ends of the selection and then use Range::comparePoint.
2007-05-07 Darin Adler <darin@apple.com>
- rolling out setInnerHTML optimization until I can figure out why tests are failing
2007-05-07 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13602
Amazon product pages keep repainting over and over again
Optimize setInnerHTML, setOuterHTML, and setInnerText so they don't change the DOM at all
if they don't need to.
Test: fast/dom/HTMLElement/set-inner-outer-optimization.html
* html/HTMLElement.cpp:
(WebCore::equal): Added. Helper function that compares two Text nodes or two NamedAttrMap
attribute maps.
(WebCore::shallowEqual): Added. Helper function that compares two Element nodes or two
arbitrary nodes.
(WebCore::replaceChildrenWithFragment): Added. Helper function used by setInnerHTML and
setInnerText. Optimizes the cases where all the nodes are the same, where both the current
and the new content are single text nodes, and where the current content is a single node
that can be replaced with replaceChild.
(WebCore::replaceChildrenWithText): Added. Helper function used by setInnerText. Optimizes
the case where the current content is a single text node or a single node that can be
replaced with replaceChild.
(WebCore::HTMLElement::setInnerHTML): Changed to call replaceChildrenWithFragment.
(WebCore::HTMLElement::setOuterHTML): Added special case to optimize when the new content
exactly matches the current node.
(WebCore::HTMLElement::setInnerText): Changed to call replaceChildrenWithText in a few
cases instead of doing removeChildren/appendChild. Changed code that was using
DeprecatedString to instead use String. Changed general case to use a document fragment
and replaceChildrenWithFragment.
* dom/CharacterData.cpp: (WebCore::CharacterData::dispatchModifiedEvent):
Fixed bug where we would not dispatch the DOMSubtreeModified event unless someone
was registered for the DOMCharacterDataModified event. Caused trouble in the test.
2007-05-06 Darin Adler <darin@apple.com>
- blind try at fixing the Qt build
* platform/qt/TextBreakIteratorQt.cpp: (WebCore::sentenceBreakIterator):
Added a placeholder.
2007-05-06 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13537
Canvex example starts rendering strangely after a while
* html/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::drawImage):
Don't raise an exception if the source or destination rectangle is empty.
2007-05-06 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- fix <rdar://problem/4585593> REGRESSION: Some 2-byte characters in printed page
header are drawn with too-large font and clipped
Doesn't affect text within web pages, so no layout test.
* platform/mac/FontCacheMac.mm: (WebCore::FontCache::getFontDataForCharacters):
Base the substitute font on the FontPlatformData rather than the FontDescription.
Before, it was a mix of both. This works properly for fonts where we have no
FontDescription and is also more internally consistent.
2007-05-06 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- http://bugs.webkit.org/show_bug.cgi?id=13606
some functions are virtual that don't need to be
* dom/Node.h: Made first/lastChild be inline functions that call virtual functions.
This lets us hide the functions with another inline function in a derived class,
yet still override the behavior here in the base class by overriding the virtual
functions too.
* dom/Node.cpp:
(WebCore::Node::virtualFirstChild): Renamed virtual functions. There are now
non-virtual inline functions that call these virtual functions.
(WebCore::Node::virtualLastChild): Ditto.
* dom/ContainerNode.h: Added non-virtual first/lastChild functions that hide the ones
inherited from the Node class; these also replace the fastFirst/LastChild functions,
and transparently give callers the faster form if they have a pointer of the right
type. But still override the virtual functions named virtualFirst/LastChild, because
those can still be called through a Node*. Removed the "fast" from the names of
fastSetFirst/LastChild.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::virtualFirstChild): Renamed virtual functions. There are now
also non-virtual inline versions.
(WebCore::ContainerNode::virtualLastChild): Ditto.
* dom/CharacterData.cpp: Removed implementations of data and length functons.
* dom/CharacterData.h: Made data, setData, length, substringData, appendData,
insertData, deleteData, and replaceData all non-virtual, and made data and length
both be inline.
* dom/NamedAttrMap.h: (WebCore::NamedAttrMap::attributeItem): Removed a null check
from this function. If the length of the map is known to be greater than 0, then
the null check isn't needed. But if the length of the map hasn't been checked at all,
then it's unsafe to call this function since it doesn't range check the array
index. Thus the null check is never needed. I also looked at all callers.
* dom/Attr.cpp: (WebCore::Attr::createTextChild):
* dom/Document.cpp: (WebCore::Document::recalcStyle):
* dom/Element.cpp: (WebCore::Element::recalcStyle):
* ksvg2/svg/SVGElement.cpp:
(WebCore::SVGElement::haveLoadedRequiredResources):
Removed "fast" prefix from calls to fastFirst/LastChild and fastSetFirst/LastChlld.
It's not needed any more -- you still get fast behavior if the pointer has a type
that's ContainerNode or derived from it.
2007-05-06 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13557
Crash when dragging selection over absolutely positioned generated content on block element
Test: fast/css-generated-content/positioned-background-hit-test-crash.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::enclosingElement): Added. Factored out of hitTestLayer().
(WebCore::RenderLayer::hitTestLayer): Implemented the fix for <rdar://problem/3552346>
from r6106 to the self hit test as well, namely: return the enclosing element
for generated positioned content.
* rendering/RenderLayer.h:
2007-05-06 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=13584
<script> code wrongly assumes requests can't fail
Test: fast/loader/unloadable-script.html
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::parseMappedAttribute):
(WebCore::HTMLScriptElement::insertedIntoDocument):
Check the return value of requestScript().
2007-05-06 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=13304
REGRESSION(14784): WebKit doesn't dynamically reflect changes to the highlight color in System Preferences
Implemented a notification observer that invalidates cached system colors.
No automated test possible.
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::activeSelectionBackgroundColor):
(WebCore::RenderTheme::inactiveSelectionBackgroundColor):
(WebCore::RenderTheme::platformColorsDidChange):
* rendering/RenderTheme.h:
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(-[WebCoreRenderThemeNotificationObserver initWithTheme:WebCore::]):
(-[WebCoreRenderThemeNotificationObserver systemColorsDidChange:]):
(WebCore::theme):
(WebCore::RenderThemeMac::RenderThemeMac):
(WebCore::RenderThemeMac::~RenderThemeMac):
(WebCore::RenderThemeMac::checkbox):
(WebCore::RenderThemeMac::radio):
(WebCore::RenderThemeMac::button):
(WebCore::RenderThemeMac::popupButton):
(WebCore::RenderThemeMac::search):
(WebCore::RenderThemeMac::sliderThumbHorizontal):
(WebCore::RenderThemeMac::sliderThumbVertical):
2007-05-05 Rob Buis <buis@kde.org>
Reviewed by Oliver.
http://bugs.webkit.org/show_bug.cgi?id=13592
parseMappedAttribute inconsistency
Do not use local vars in parseMappedAttribute for attr name and value.
* ksvg2/svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::parseMappedAttribute):
* ksvg2/svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::parseMappedAttribute):
* ksvg2/svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::parseMappedAttribute):
* ksvg2/svg/SVGCircleElement.cpp:
(WebCore::SVGCircleElement::parseMappedAttribute):
* ksvg2/svg/SVGClipPathElement.cpp:
(WebCore::SVGClipPathElement::parseMappedAttribute):
* ksvg2/svg/SVGCursorElement.cpp:
(WebCore::SVGCursorElement::parseMappedAttribute):
* ksvg2/svg/SVGEllipseElement.cpp:
(WebCore::SVGEllipseElement::parseMappedAttribute):
* ksvg2/svg/SVGExternalResourcesRequired.cpp:
(WebCore::SVGExternalResourcesRequired::parseMappedAttribute):
* ksvg2/svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::parseMappedAttribute):
* ksvg2/svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::parseMappedAttribute):
* ksvg2/svg/SVGLineElement.cpp:
(WebCore::SVGLineElement::parseMappedAttribute):
* ksvg2/svg/SVGLinearGradientElement.cpp:
(WebCore::SVGLinearGradientElement::parseMappedAttribute):
* ksvg2/svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::parseMappedAttribute):
* ksvg2/svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::parseMappedAttribute):
* ksvg2/svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::parseMappedAttribute):
* ksvg2/svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::parseMappedAttribute):
* ksvg2/svg/SVGRadialGradientElement.cpp:
(WebCore::SVGRadialGradientElement::parseMappedAttribute):
* ksvg2/svg/SVGRectElement.cpp:
(WebCore::SVGRectElement::parseMappedAttribute):
* ksvg2/svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::parseMappedAttribute):
* ksvg2/svg/SVGScriptElement.cpp:
(WebCore::SVGScriptElement::parseMappedAttribute):
* ksvg2/svg/SVGStopElement.cpp:
(WebCore::SVGStopElement::parseMappedAttribute):
* ksvg2/svg/SVGTests.cpp:
(WebCore::SVGTests::parseMappedAttribute):
* ksvg2/svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::parseMappedAttribute):
* ksvg2/svg/SVGTextPositioningElement.cpp:
(WebCore::SVGTextPositioningElement::parseMappedAttribute):
* ksvg2/svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::parseMappedAttribute):
* ksvg2/svg/SVGViewElement.cpp:
(WebCore::SVGViewElement::parseMappedAttribute):
* ksvg2/svg/SVGZoomAndPan.cpp:
(WebCore::SVGZoomAndPan::parseMappedAttribute):
2007-05-05 Oliver Hunt <oliver@apple.com>
Reviewed by Hyatt.
Initialise default fill with Color::black rather than parsing
the string "black"
* ksvg2/svg/SVGPaint.cpp:
(WebCore::SVGPaint::defaultFill):
2007-05-04 Steve Falkenburg <sfalken@apple.com>
Reviewed by Oliver.
Use TextBreakIterator for sentence breaking instead of TextBoundaries.
* WebCore.xcodeproj/project.pbxproj: Added TextBreakIeratorInternalICUMac.mm
* editing/visible_units.cpp:
(WebCore::startSentenceBoundary): Call TextBreakIterator instead of TextBoundaries.
(WebCore::endSentenceBoundary): Call TextBreakIterator instead of TextBoundaries.
(WebCore::previousSentencePositionBoundary): Call TextBreakIterator instead of TextBoundaries.
(WebCore::nextSentencePositionBoundary): Call TextBreakIterator instead of TextBoundaries.
* platform/TextBoundaries.h: Removed findSentenceBoundary, findNextSentenceFromIndex.
* platform/TextBreakIterator.h: Added sentenceBreakIterator.
* platform/TextBreakIteratorICU.cpp:
(WebCore::setUpIterator): Add locale parameter (needed to maintain functionality that TextBoundaries code had).
(WebCore::characterBreakIterator): Pass en_us for locale (same as old code).
(WebCore::wordBreakIterator): Pass en_us for locale (same as old code).
(WebCore::lineBreakIterator): Pass en_us for locale (same as old code).
(WebCore::sentenceBreakIterator): Added.
* platform/TextBreakIteratorInternalICU.h: Added.
* platform/gdk/TemporaryLinkStubs.cpp: Removed findNextSentenceFromIndex, findSentenceBoundary.
(WebCore::currentTextBreakLocaleID): Added stub.
* platform/mac/TextBoundaries.mm: Removed currentTextBreakLocaleID, findSentenceBoundary, findNextSentenceFromIndex.
* platform/mac/TextBreakIteratorInternalICUMac.mm: Added.
(WebCore::currentTextBreakLocaleID): Moved from TextBoundaries.mm
* platform/qt/TextBoundaries.cpp: Removed findNextSentenceFromIndex, findSentenceBoundary.
2007-05-04 Adele Peterson <adele@apple.com>
Reviewed by Hyatt.
Fix for <rdar://problem/5116871> REGRESSION: Can't select options in widget's listbox
Don't use user-select to determine whether or not options can be selected in listboxes.
This will match Firefox behavior for -moz-user-select.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::canSelectAll):
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
2007-05-04 Geoffrey Garen <ggaren@apple.com>
Reviewed by Tim Hatcher.
First step in fixing <rdar://problem/5055182> The back cache has no global cap
Stop giving SnapBack infinite cache-ability. Instead, make SnapBack rely
on the underlying back cache.
* WebCore.exp:
* history/HistoryItem.cpp:
(WebCore::HistoryItem::HistoryItem):
* history/HistoryItem.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::purgePageCache):
2007-05-04 Geoffrey Garen <ggaren@apple.com>
Reviewed by Brady Eidson.
Removed export of clearPageCache(), since it was unused externally. I plan
to remove its use from WebCore eventually, too.
Removed usesPageCache(), since it was unused and it duplicated pageCacheSize().
* WebCore.exp:
* history/BackForwardList.cpp:
* history/BackForwardList.h: Moved statics to the top of the class definition.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::canCachePage):
2007-05-04 Anders Carlsson <andersca@apple.com>
Reviewed by Antti.
<rdar://problem/5179977> Use the correct URLs when dispatching delegate methods for data loads.
Restore behavior to matching release WebKit by adding a response URL to SubstituteData. If a nil base URL is
passed, set the _request_ URL to "about:blank", but the response URL to a generated "applewebdata" URL.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::commitProvisionalLoad):
First, check for the SubstituteData's response URL.
(WebCore::FrameLoader::continueAfterNavigationPolicy):
No need to special case applewebdata URLs here, they're only used in the response.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::handleDataLoadNow):
If the substitute data has a response URL, use it.
(WebCore::MainResourceLoader::loadNow):
Only load "about:blank" as an empty document if there's no substitute data.
* loader/SubstituteData.h:
(WebCore::SubstituteData::SubstituteData):
(WebCore::SubstituteData::responseURL):
Add responseURL member to SubstituteData.
2007-05-03 Steve Falkenburg <sfalken@apple.com>
Reviewed by Oliver.
Add missing user description parameter to spelling-related editor client method.
* bridge/EditorClient.h:
* platform/gdk/EditorClientGdk.cpp:
(WebCore::EditorClientGdk::updateSpellingUIWithGrammarString):
* platform/gdk/EditorClientGdk.h:
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyEditorClient::updateSpellingUIWithGrammarString):
2007-05-03 Brady Eidson <beidson@apple.com>
Reviewed by Oliver
Resolve an outstanding FIXME in Loader::numRequests()
Before, numRequests() would iterate through the list of requests pending load and the list of currently
loading requests and tally up a count matching the current DocLoader.
I noticed while studying and cleaning up the loader code that numRequests() is potentially very hot!
Indeed load a complex site with many resources and multiple frames, and this method gets called very often,
tallying up this number every time.
The FIXME was to keep a collection of Requests mapped to each DocLoader. In reality, since this map would
simply be used for retrieving a count, that was overkill. Keeping a request count in the DocLoader itself
along with maintaining that count in Loader as requests come and go is a much better way to do this.
* loader/DocLoader.cpp:
(WebCore::DocLoader::DocLoader):
(WebCore::DocLoader::incrementRequestCount):
(WebCore::DocLoader::decrementRequestCount):
(WebCore::DocLoader::requestCount): Emulate the defunct Loader::numRequests()
* loader/DocLoader.h:
* loader/FrameLoader.cpp:
(WebCore::numRequests): Call DocLoader::requestCount() directly
(WebCore::FrameLoader::checkCompleted): Use numRequests()
* loader/loader.cpp:
(WebCore::Loader::load): Increment the DocLoader's request count
(WebCore::Loader::servePendingRequests): If the SubresourceLoader failed to create, decrement the count
(WebCore::Loader::didFinishLoading): If the Request is not Multipart, decrement the count
(WebCore::Loader::didFail): If the Request is not Multipart, decrement the count
(WebCore::Loader::didReceiveResponse): If the Request becomes Multipart, decrement the count
(WebCore::Loader::cancelRequests): Decrement the count for the pending requests being tossed, and ASSERT the
count is zero after all requests have been cancelled
* loader/loader.h:
2007-05-03 Geoffrey Garen <ggaren@apple.com>
Reviewed by Brady Eidson.
Some cleanup in preparation for fixing <rdar://problem/5055182> The
back/forward cache has no global cap
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::provisionalLoadStarted): Moved "Can I cache this
page?" logic to canCachePage(). Moved "I am caching this page" logic to
cachePageToHistoryItem().
(WebCore::FrameLoader::canCachePage): Moved above logic here.
(WebCore::FrameLoader::cachePageToHistoryItem): Removed bogus NULL check
and failure return value. Moved above logic here. Don't call setCachedPage()
until the CachedPage is fully constructed.
(WebCore::FrameLoader::purgePageCache): Removed comment that duplicated
the function name.
* loader/FrameLoader.h:
2007-05-03 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison.
<rdar://problem/5120281> CrashTracer: [USER] 1 crash in Mail at WebCore::CSSComputedStyleDeclaration::copyInheritableProperties() const
Problem is that checkAncestor and lastClosed can be nil when createMarkup is called unrendered nodes, and that was not checked for.
* editing/markup.cpp:
(WebCore::createMarkup):
Nil-check checkAncestor and lastClosed.
2007-05-03 Timothy Hatcher <timothy@apple.com>
Reviewed by Kevin.
<rdar://problem/5016318> Contextual menu item for opening links is missing in compose windows but present in viewer
Add the Open Link, Open Link in New Window, Download Linked File and Copy Link menu
items to the content editable context menu.
* platform/ContextMenu.cpp:
(WebCore::ContextMenu::populate):
2007-05-03 Holger Freyther <freyther@kde.org>
Reviewed by Zack, landed by Simon.
This is bugzilla bug 13499.
* WebCore.pro: Place the Qt port into the qt-port scope, add the Gdk port
2007-05-03 Adele Peterson <adele@apple.com>
Use BUILDING_ON_TIGER.
* page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry):
2007-05-03 Brady Eidson <beidson@apple.com>
Reviewed by Darin
Some more minor cleanup that resolves a FIXME and ditches another pointless method
No change in functionality == no layout test
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::commitProvisionalLoad): Updated a comment
(WebCore::FrameLoader::continueLoadAfterWillSubmitForm): Folded startLoading() into this method
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy): continueAfterWillSubmitForm becomes continueLoadAfterWillSubmitForm
* loader/FrameLoader.h: Removed startLoading()
2007-05-03 Adele Peterson <adele@apple.com>
Reviewed by Tim Hatcher.
Fix for <rdar://problem/4727607> REGRESSION: KeyScript is deprecated, need a new solution for forcing Roman input for password fields on Leopard
* page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry):
Use TSMSetDocumentProperty and TSMRemoveDocumentProperty on Leopard disable and enable non-ascii input sources.
2007-05-03 Brady Eidson <beidson@apple.com>
Reviewed by Anders
commitProvisionalLoad() was the name of two methods.
One of them was private and only called from one other private place.
This was driving me crazy. I had to change that.
No change in functionality == no layout test
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::transitionToCommitted): roll commitProvisionalLoad() into this method
* loader/FrameLoader.h: Removed commitProvisionalLoad()
2007-05-03 Darin Adler <darin@apple.com>
Reviewed by Anders.
- make ICU initialization lazy to speed up application start-up time
(when it includes an initial webpage load)
* platform/TextCodecICU.h: Replaced registerEncodingNames and
registerCodecs with registerBaseEncodingNames, registerBaseCodecs,
registerExtendedEncodingNames, and registerExtendedCodecs.
* platform/TextCodecICU.cpp:
(WebCore::newTextCodecICU): Moved up to the top of the file.
(WebCore::TextCodecICU::registerBaseEncodingNames): Added. Registers
just UTF-8.
(WebCore::TextCodecICU::registerBaseCodecs): Ditto.
(WebCore::TextCodecICU::registerExtendedEncodingNames): Renamed.
(WebCore::TextCodecICU::registerExtendedCodecs): Ditto.
(WebCore::TextCodecICU::createICUConverter): Compare with the name
"GBK" in a way that does not require extending the maps.
* platform/TextEncoding.cpp:
(WebCore::TextEncoding::usesVisualOrdering): Added code so this will
just return false if we haven't used any extended encoding names yet.
The result will be correct, and we won't ask for an encoding name that
will require registering the extended encoding names.
(WebCore::TextEncoding::isJapanese): Ditto.
(WebCore::TextEncoding::backslashAsCurrencySymbol): Ditto, but return
a backslash instead of false.
* platform/TextEncodingRegistry.h: Added a new function named
noExtendedTextEncodingNameUsed.
* platform/TextEncodingRegistry.cpp:
(WebCore::buildBaseTextCodecMaps): Added. Registers the base encodings,
including Latin-1 because it's the default, and the UTF encodings.
(WebCore::extendTextCodecMaps): Added. Registers all the other encodings.
(WebCore::newTextCodec): Removed the all to buildTextCodecMap because
we always build the map when making the canonical encoding name.
(WebCore::atomicCanonicalTextEncodingName): Changed code to build only
the base maps at first, then extend the maps the first time we run into
a name we don't know.
(WebCore::noExtendedTextEncodingNameUsed): Added.
2007-05-03 Mark Rowe <mrowe@apple.com>
Qt build fix. In r21185 the Qt version of WebCore::scaleDragImage was
updated to have the incorrect signature.
* platform/qt/DragImageQt.cpp:
(WebCore::scaleDragImage):
2007-05-02 Beth Dakin <bdakin@apple.com>
* dom/Node.h: Just fixing a variable name because it's driving me
mad.
2007-05-02 Beth Dakin <bdakin@apple.com>
Reviewed by Hyatt.
Fix for <rdar://problem/4513966> Never-ending identical repaint @
orbitz.com (Safari eating 85% CPU)
We need to be a little bit more savvy about when we do a FULL style
recalc since it can be unnecessary and expensive.
* css/CSSMutableStyleDeclaration.cpp:
(WebCore::CSSMutableStyleDeclaration::setChanged): Now takes a
StyleChangeType as a parameter.
(WebCore::CSSMutableStyleDeclaration::setProperty): Send
InlineStyleChange as the paramter. This is the optimization!
* css/CSSMutableStyleDeclaration.h: setChanged takes a
StyleChangeType as a parameter.
* dom/Document.cpp: setChanged now takes a StyleChangeType instead
of a bool.
(WebCore::Document::recalcStyle): Same.
* dom/Element.cpp:
(WebCore::Element::recalcStyle): This is the fix!! Only set change
to Force is we use descendant rules AND it's a FullStyleChange.
* dom/Node.cpp: m_hasStyle was an unused bit on Node, so this patch
gets rid of it and uses that extra bit for m_changed to be a
StyleChangeType instead of a bool.
(WebCore::Node::Node):
(WebCore::Node::setChanged):
(WebCore::Node::dump):
* dom/Node.h: Same.
(WebCore::): Define the StyleChangeType enum.
(WebCore::Node::hasClass):
(WebCore::Node::changed):
(WebCore::Node::styleChangeType):
(WebCore::Node::setHasClass):
* dom/StyledElement.cpp:
(WebCore::StyledElement::parseMappedAttribute): Don't bother
calling setHasStyle() since m_hasStyle is gone now. It was never
used, and this was the only place it was set.
* dom/Text.cpp:
(WebCore::Text::recalcStyle): setChanged now takes a
StyleChangeType instead of a bool.
* html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::recalcStyle): Same.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::restoreState): Same.
(WebCore::HTMLSelectElement::reset): Same.
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::setValue): Same.
* ksvg2/misc/SVGTimer.cpp:
(WebCore::SVGTimer::applyAnimations): Same.
* ksvg2/svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::recalcStyle): Same.
* platform/graphics/svg/SVGResource.cpp:
(WebCore::SVGResource::repaintClients): Same.
2007-05-02 David Harrison <harrison@apple.com>
Reviewed by Antti.
<rdar://problem/4859132> Grammar must always be checked in entire-sentence chunks, and shouldn't show markers for current sentence
Restore the remainder of the original fix now that blocking bug rdar://5174862 is addressed.
John made the original patch on 2007-04-10, but this fell prey to rdar://5157329.
Justin backed out the whole patch on 2007-04-30 to avoid the crash.
Justin then restored most of the original patch, but used word granularity instead, to keep the build working.
I just addressed the root cause of rdar://5157329 in rdar://5174862.
This patch switches the temp uses of word granularity back to sentence granularity.
* editing/mac/EditorMac.mm:
(WebCore::Editor::markMisspellingsAfterTypingToPosition):
* page/Frame.cpp:
(WebCore::Frame::respondToChangedSelection):
2007-05-02 David Harrison <harrison@apple.com>
Reviewed by Antti.
<rdar://problem/5174862> Crash resulting from DeprecatedString::insert()
Test added: editing/selection/move-by-sentence-001.html
* editing/visible_units.cpp:
(WebCore::previousBoundary):
(WebCore::nextBoundary):
Use a UChar Vector instead of DeprecatedString.
Avoid creating an extra string for secure bullet replacement unless it is actually needed.
* platform/DeprecatedString.cpp:
(WebCore::DeprecatedString::insert):
Call forceUnicode() before setLength(), so that only the unicode buffer is resized.
(WebCore::DeprecatedString::setLength):
Adjust the unicode buffer even if the ascii buffer is valid.
2007-05-02 Mitz Pettel <mitz@webkit.org>
Reviewed by Brady.
- http://bugs.webkit.org/show_bug.cgi?id=13564
Remove friend class FrameLoader from Frame
No test added since there is no change in functionality.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didOpenURL):
(WebCore::FrameLoader::begin):
(WebCore::FrameLoader::open):
* loader/FrameLoader.h: Made clear() private.
* page/Frame.cpp:
(WebCore::Frame::setDocument): Changed the argument into a PassRefPtr.
* page/Frame.h:
* xml/XSLTProcessor.cpp:
(WebCore::XSLTProcessor::createDocumentFromSource):
2007-05-02 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=9276
Quirksmode: Image swap resize bug
Test: fast/replaced/image-resize-width.html
* rendering/RenderImage.cpp:
(WebCore::RenderImage::imageChanged): Moved the call to dirtyPrefWidths()
before the call to calcWidth().
2007-05-02 David Hyatt <hyatt@apple.com>
Fix for bug 13566, broken Dashboard widgets. setPrefWidthsDirty did
the wrong thing for text children of a positioned element.
Reviewed by mitz
fast/block/positioning/pref-width-change.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::setPrefWidthsDirty):
2007-05-01 Darin Adler <darin@apple.com>
* rendering/RenderReplaced.cpp: Fix typo in a comment.
2007-05-01 David Hyatt <hyatt@apple.com>
Fix for 13558, crash when using absolutely positioned generated content
inside an inline.
Reviewed by darin
fast/css-generated-content/absolute-position-inside-inline.html
* rendering/RenderContainer.cpp:
(WebCore::RenderContainer::updateBeforeAfterContentForContainer):
2007-05-01 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5002441>
Pressing space key does nothing above quoted content or a signature
Inserting a space under these circumstances inserts a single
text node containing a regular space and then does a layout.
That space isn't rendered (which is correct). Whitespace
rebalancing is supposed to correct it but failed. It replaces
the space with a non-breaking space, but that change doesn't
dirty line boxes (9441) and so the space isn't rendered.
This workaround turns all incoming spaces into non-breaking
spaces before they're inserted (they're rebalanced after
insertion and turned back into regular spaces if possible).
* editing/InsertTextCommand.cpp:
(WebCore::InsertTextCommand::prepareForTextInsertion): Removed
an old irrelevant FIXME.
(WebCore::InsertTextCommand::input): Turn incoming spaces into
non breaking spaces before inserting them.
2007-05-01 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13559
REGRESSION: Canvas aspect ratio is incorrect
- remove intrinsicWidth/Height functions from RenderObject
Test: fast/canvas/canvas-size-change-after-layout.html
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::createRenderer): Removed code to set
the intrinsic size, because the renderer now takes care of this
in its constructor.
(WebCore::HTMLCanvasElement::reset): Instead of calling the
setIntrinsicWidth/Height functions, call canvasSizeChanged, which
takes care of layout, but only if the size actually changed. Also
call repaint if the contents of the canvas changed.
* rendering/RenderApplet.h:
* rendering/RenderApplet.cpp: (WebCore::RenderApplet::intrinsicSize):
Override the new intrinsicSize function. This override still doesn't
make sense, so left a FIXME in here.
* rendering/RenderBox.h: Added an intrinsicSize function here to replace
the intrinsicWidth/Height functions removed from RenderObject.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::calcReplacedWidthUsing): Use intrinsicSize instead
of intrinsicWidth.
(WebCore::RenderBox::calcReplacedHeightUsing): Ditto, but for height.
* rendering/RenderHTMLCanvas.h: Changed the constructor parameter to be
an HTMLCanvasElement* instead of Node*. Also added a canvasSizeChanged
function.
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::RenderHTMLCanvas): Pass an initial intrinsic
size based on the current size of the canvas element. This is now the
responsibility of the renderer and the DOM element calls the canvasSizeChanged
function when the size changes.
(WebCore::RenderHTMLCanvas::paint): Removed checks of the type of the element,
and used the node() function because we don't have to worry about the anonymous
case in this class.
(WebCore::RenderHTMLCanvas::canvasSizeChanged): Added. Changes the size and
then calls setNeedsLayout and setPrefWidthsDirty as needed. I based the logic
here on careful reading of RenderImage::imageChanged.
* rendering/RenderImage.cpp:
(WebCore::RenderImage::RenderImage): Pass a default intrinsic size of 0,0
instead of calling setIntrinsicWidth/Height.
(WebCore::RenderImage::setImageSizeForAltText): Call the new intrinsic size
functions instead of the width/height ones. Simplifies the logic since we
handle both dimensions at once.
(WebCore::RenderImage::imageChanged): Ditto.
(WebCore::RenderImage::layout): Ditto.
(WebCore::RenderImage::calcAspectRatioWidth): Ditto.
(WebCore::RenderImage::calcAspectRatioHeight): Ditto.
* rendering/RenderObject.h: Removed intrinsicWidth/Height virtual functions.
* rendering/RenderReplaced.h: Replaced intrinsicWidth, intrinsicHeight,
setIntrinsicWidth, setIntrinsicHeight, m_intrinsicWidth, and m_intrinsicHeight
with intrinsicSize, setIntrinsicSize, and m_intrinsicSize.
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::RenderReplaced): Added a second contructor that takes
an intrinsic size parameter. Also updated constructor since the intrinsic size
is now an IntSize instead of two integers.
(WebCore::RenderReplaced::intrinsicSize): Added. No point in making this inline
because it's a virtual function.
(WebCore::RenderReplaced::setIntrinsicSize): Added. Didn't make this inline,
partly because in the future we might want this to be more than just a simple
setter function, factoring in common code used in both RenderImage and
RenderHTMLCanvas.
* rendering/RenderWidget.h: Removed a stray using declaration that wasn't needed.
2007-05-01 David Hyatt <hyatt@apple.com>
Fix for hang when incorrectly trying to add before/after content to
a <select>. Disallow generated content in all selects and also turn it
off for <input> buttons.
Reviewed by aroben
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::setStyle):
* rendering/RenderButton.cpp:
(WebCore::RenderButton::canHaveChildren):
* rendering/RenderButton.h:
2007-05-01 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- removed the m_implicit bit from Node, freeing up a bit
- fixed <rdar://problem/5172607> XML parser is creating implicit tbody elements
- fixed <rdar://problem/5172596> HTML-parser-created tbody elements are being
ignored when processing CSS child rules
Test: fast/css/child-selector-implicit-tbody.html
* css/cssstyleselector.cpp: (WebCore::CSSStyleSelector::checkSelector):
Removed code that used to look at implicitNode(), which no longer exists.
* css/html4.css: Added a style rule to handle cases where we have a tr
inside a table with no intervening table section.
* dom/Node.h: Removed the bit.
* dom/Node.cpp:
(WebCore::Node::Node): Don't initialize the bit.
(WebCore::Node::dump): Don't dump the bit.
* dom/XMLTokenizer.cpp:
(WebCore::XMLTokenizer::startElementNs): Remove the code that made a
table body element. This is handled in the render tree, the DOM tree
should not be mangled.
(WebCore::XMLTokenizer::endElementNs): Removed code that used to look at
implicitNode(), which no longer exists.
* html/HTMLElementFactory.cpp: (WebCore::tableSectionConstructor):
Removed boolean parameter that was passed to the HTMLTableSectionElement
constructor.
* html/HTMLParser.cpp: (WebCore::HTMLParser::handleError): Ditto.
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::createTHead): Ditto.
(WebCore::HTMLTableElement::createTFoot): Ditto.
(WebCore::HTMLTableElement::insertRow): Changed to return a PassRefPtr,
because it's possible the row could be removed from the table by JavaScript
code responding to DOM mutation events before the function returns. Just
something I noticed by code inspection.
* html/HTMLTableSectionElement.cpp:
(WebCore::HTMLTableSectionElement::HTMLTableSectionElement): Removed
boolean "implicit" parameter to the constructor.
(WebCore::HTMLTableSectionElement::insertRow): Changed to return a
PassRefPtr for the same reason cited above.
* html/HTMLTableElement.h: Changed the return value of insertRow to be
a PassRefPtr.
* html/HTMLTableSectionElement.h: Ditto.
2007-04-30 David Hyatt <hyatt@apple.com>
Fix for bug 12691, generated content and display: table-cell duplicates
content on a size change. Make sure that the code to update before/after
content is smart enough to drill into anonymous containers to find the
old child.
Reviewed by olliej
Added fast/css-generated-content/table-cell-before-content.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::setStyle):
* rendering/RenderButton.cpp:
(WebCore::RenderButton::updateBeforeAfterContent):
* rendering/RenderButton.h:
* rendering/RenderContainer.cpp:
(WebCore::RenderContainer::beforeAfterContainer):
(WebCore::RenderContainer::updateBeforeAfterContent):
(WebCore::RenderContainer::updateBeforeAfterContentForObject):
* rendering/RenderContainer.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::setStyle):
(WebCore::RenderInline::addChildToFlow):
(WebCore::RenderInline::splitInlines):
2007-04-30 Jungshik Shin <jungshik.shin@gmail.com>
Reviewed by justin
<http://bugs.webkit.org/show_bug.cgi?id=13552>
comment to Range::comparePoint in dom/Range.cpp has
'0xD0' in place of '-': leading to a compiler warning
* dom/Range.cpp:
(WebCore::Range::comparePoint):
2007-04-30 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/4875189> List gets deleted when replacing contents
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::doApply): Don't expand
to include elements, like lists, when deleting a selection
to replace it.
2007-04-30 Justin Garcia <justin.garcia@apple.com>
Reviewed by ggaren
Buildfix. Leave in grammar checking machinery to
keep WebKit building on other platforms but don't
operate on sentence sized chunks so that we don't
re-introduce 5157329.
* editing/Editor.h:
* editing/mac/EditorMac.mm:
(WebCore::Editor::markMisspellingsAfterTypingToPosition):
(WebCore::markMisspellingsOrBadGrammar):
(WebCore::Editor::markMisspellings):
(WebCore::Editor::markBadGrammar):
* page/Frame.cpp:
(WebCore::Frame::respondToChangedSelection):
2007-04-30 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5168598>
Crash when deleting a link inside an input field
Deletion code tries to update one of its positions to keep
it valid and nullifies it. Later in mergeParagraphs we try
to find out if it's valid by checking to see if it's still in
the document and crash.
The fix is just to not bother keeping the position,
m_upstreamStart, valid, since after the point in the code
under examination, it doesn't need to be valid anymore.
Besides, code to update DeleteSelectionCommand's positions
should go in the functions that handle the content removal
that might invalid them (there are already FIXMEs about this).
Also, users shouldn't be able to insert links (or any rich content)
into plaintext-only regions like text fields, even if those
text fields are inside richly editable regions. This is a
separate bug and is filed as 5171552.
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::handleGeneralDelete): Don't
bother updating m_upstreamStart.
2007-04-30 Patti Hoa <patti@apple.com>
Reviewed by Dave Hyatt.
<rdar://problem/5108546> REGRESSION: Zoom follows keyboard focus does not work
* WebCore.xcodeproj/project.pbxproj:
Add new file SelectionControllerMac.mm
* dom/Document.cpp:
(WebCore::Document::updateSelection):
Move the code to fire off AXSelectedTextChanged notification to a new method notifyAccessibilityForSelectionChange in SelectionControllerMac.mm
* editing/SelectionController.cpp:
(WebCore::SelectionController::setSelection):
call notifyAccessibilityForSelectionChange to handle firing of accessibility notification and zoomFocusChange
* editing/SelectionController.h:
Add notifyAccessibilityForSelectionChange method for Mac platform
* platform/Widget.h:
* platform/mac/WidgetMac.mm:
(WebCore::Widget::convertToScreenCoordinate):
Add a helper routine that takes IntPoint in local coordinate and convert that to screen coordinate
2007-04-30 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/5157329>
REGRESSION: Crash at WTF::fastFree() when arrowing or deleting backward through editable text (13493)
Backing out the changes for 4859132.
* editing/Editor.h:
* editing/mac/EditorMac.mm:
(WebCore::Editor::markMisspellingsAfterTypingToPosition):
(WebCore::Editor::markMisspellings):
* page/Frame.cpp:
(WebCore::Frame::respondToChangedSelection):
2007-04-29 Antti Koivisto <antti@apple.com>
Reviewed by Oliver.
Fix <rdar://problem/5169261>
REGRESSION: Google Maps zooming too sensitive when using two fingers on trackpad
Use line based delta values when generating DOM wheel events, use pixel deltas
for scrolling only.
No test case, requires user interaction and specific hardware.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEvent):
* platform/PlatformWheelEvent.h:
(WebCore::PlatformWheelEvent::continuousDeltaX):
(WebCore::PlatformWheelEvent::continuousDeltaY):
* platform/mac/WheelEventMac.mm:
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
2007-04-29 Oliver Hunt <oliver@apple.com>
Reviewed by Brady.
Build fix for experimental features build
* rendering/RenderForeignObject.cpp:
2007-04-29 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13544
REGRESSION (r21120): Member profile frame not erased at Yahoo! Answers
Test: fast/repaint/layer-hide-when-needs-layout.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::setStyle): If we get a layout hint, we count on
layout() or updateLayerPositions() to repaint. In the case of a layer
going invisible, however, we need to repaint here since neither of the
above will do it.
2007-04-29 Oliver Hunt <oliver@apple.com>
Reviewed by Steve.
Fix for <rdar://problem/5126393> REGRESSION (r19672-19697): Safari drag image drags at original size (13261)
Added logic to ensure that when we create the drag image
we're looking at the rendered image size.
* page/DragController.cpp:
(WebCore::DragController::doImageDrag):
Pass the rendered image size to fitDragImageToMaxSize
* platform/DragImage.cpp:
(WebCore::fitDragImageToMaxSize):
Need to do scaling relative to rendered image size
* platform/DragImage.h:
scaleDragImage needs x and y scales to allow for them to be
scaled seperately on a page
* platform/gdk/DragImageGdk.cpp:
(WebCore::scaleDragImage):
Prevent build bustage
* platform/mac/DragImageMac.mm:
(WebCore::scaleDragImage):
scale width and height independently
* platform/qt/DragImageQt.cpp:
(WebCore::scaleDragImage):
Prevent build bustage
2007-04-29 Darin Adler <darin@apple.com>
Reviewed by Adele.
- fix the Gmail part of http://bugs.webkit.org/show_bug.cgi?id=12798
and <rdar://problem/4118559>
This patch changes things so that resizing can make things larger than their
initial size, but not smaller. I believe this resolves the problem for Gmail,
but you can still get strange behavior if you have a small right-aligned <textarea>.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::resize): Rewrote to use more IntPoint and IntSize and add
in a new minimum-size algorithm. This function now has the side effect of storing
a new minimumSizeForResizing in the element being resized, and respects any existing
minimum as well.
(WebCore::RenderLayer::offsetFromResizeCorner): Reversed this so it converts the
point into coordinates relative to the resize corner, hence negative numbers mean
the point is above and to the left. This is used only in the algorithm above.
* dom/Element.h: Removed unneeded include of Attr.h, and added forward declarations
as needed. Removed all friend declarations; there was no need for any of them.
Tweaked formatting of various declarations and removed unneeded parameter names.
Made as much as possible private, and a couple things public to avoid the need for
friend classes. Added minimumSizeForResizing, setMinimumSizeForResizing, rareData,
and createRareData functions.
* dom/Element.cpp:
(WebCore::rareDataMap): Added. Function to return the single global map.
(WebCore::rareDataFromMap): Added. For use by inlined functions to get the
data from the map in the case where it's present.
(WebCore::ElementRareData::ElementRareData): Added.
(WebCore::Element::~Element): Added code to delete the element from the rare
data map when appropriate.
(WebCore::Element::rareData): Added.
(WebCore::Element::createRareData): Added.
(WebCore::Element::setAttributeNodeNS): Got rid of the old inline version of this,
since it was the sole reason we had to include Attr.h in Element.h.
(WebCore::Element::minimumSizeForResizing): Added. Accesses rare data.
(WebCore::Element::setMinimumSizeForResizing): Ditto.
* dom/Node.h: Renamed the m_specified bit since it's now used for two purposes.
Its new long name is m_attrWasSpecifiedOrElementHasRareData.
* dom/Attr.cpp: (WebCore::Attr::Attr): Updated for bit name change.
* dom/Attr.h:
(WebCore::Attr::specified): Ditto.
(WebCore::Attr::setSpecified): Added, since setting the bit directly is pretty ugly now.
* dom/Document.cpp: (WebCore::Document::adoptNode): Updated for bit name change.
* dom/Node.cpp:
(WebCore::Node::Node): Ditto.
(WebCore::Node::dump): Ditto.
* dom/NamedAttrMap.cpp: (WebCore::NamedAttrMap::isReadOnlyNode): Moved out of line,
since this was the sole reason we had to include Element.h in NamedAttrMap.h.
* html/HTMLElement.cpp:
(WebCore::HTMLElement::nodeName): Changed to use tagQName() since that's a public
way to do something that's now private.
(WebCore::HTMLElement::cloneNode): Ditto.
* dom/Attribute.cpp:
* dom/NamedAttrMap.h:
* dom/NamedMappedAttrMap.cpp:
* dom/StyledElement.h:
* html/HTMLTokenizer.h:
* xml/XPathFunctions.cpp:
* xml/XPathStep.cpp:
Updated includes, and other administrivia.
2007-04-29 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin and Hyatt.
- http://bugs.webkit.org/show_bug.cgi?id=13487
Implement O(1) absoluteClippedOverflowRect and absoluteOutlineBox during layout for a possible speed gain
Test for a bug fixed by this patch: fast/repaint/intermediate-layout-position-clip.html
By keeping track of the total translation and clip during layout, absolutePosition and
computeAbsoluteRepaintRect become O(1).
* WebCore.pro: Added LayoutState.cpp
* WebCore.vcproj/WebCore/WebCore.vcproj: Added LayoutState.{cpp,h}
* WebCore.xcodeproj/project.pbxproj: Added LayoutState.{cpp,h}
* WebCoreSources.bkl: Added LayoutState.cpp
* page/FrameView.cpp:
(WebCore::FrameView::layout): When doing subtree layout, push an initial layout state for the
layout root.
* rendering/LayoutState.cpp: Added. A LayoutState corresponding to a box consists of the origin of
its coordinate system in view coordinates and possibly the clip rect, in view coordinates, which
applies to its children.
(WebCore::LayoutState::LayoutState):
(WebCore::LayoutState::destroy):
(WebCore::throw):
(WebCore::LayoutState::operator delete):
* rendering/LayoutState.h: Added.
(WebCore::LayoutState::LayoutState):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock): Factored out the "only positioned objects" case into
layoutOnlyPositionedObjects(). Added code to push/pop LayoutState, unless we have columns, in
which case we disable/enable LayoutState. Removed the translation by the layout delta
of the old absolute rects, since that is now integral to absoluteClippedOverflowRect() and
absoluteOutlineBox().
(WebCore::RenderBlock::layoutOnlyPositionedObjects): Added this helper function that checks for
and handles the case where only positioned objects need layout. Returns true in that case.
(WebCore::RenderBlock::repaintOverhangingFloats): Disabled LayoutState when repainting floats, since
they may belong to other containers.
(WebCore::RenderBlock::updateFirstLetter): Disabled LayoutState when adding and removing from the
first letter container, since it may be different than ourselves.
* rendering/RenderBlock.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::setStyle): Minor cleanup: changed element()->document() to the equivalent document().
(WebCore::RenderBox::offsetForPositionedInContainer): Added. Factored out common code from
absolutePosition, computeAbsoluteRepaintRect and RenderLayer::updateLayerPosition into this function.
(WebCore::RenderBox::absolutePosition): Added an O(1) code path when this function is called during
layout (and LayoutState has not been disabled). Factored out some code into
offsetForPositionedInContainer.
(WebCore::RenderBox::absoluteClippedOverflowRect): Added the layout delta here, so callers don't need
to.
(WebCore::RenderBox::computeAbsoluteRepaintRect): Added an O(1) code path when this function is called
during layout (and LayoutState has not been disabled). Factored out some code into
offsetForPositionedInContainer.
* rendering/RenderContainer.cpp:
(WebCore::RenderContainer::layout): Added LayoutState push/pop.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock): Factored out the "only positioned objects" case into
layoutOnlyPositionedObjects(). Added LayoutState push/pop. Removed the translation by the layout delta
of the old absolute rects, since that is now integral to absoluteClippedOverflowRect() and
absoluteOutlineBox().
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::absoluteClippedOverflowRect): Added an ASSERT.
* rendering/RenderForeignObject.cpp:
(WebCore::RenderForeignObject::layout): Disabled LayoutState because it is incompatible with arbitrary
affine transforms.
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::layout): Removed the translation by the layout delta of the old absolute
rects, since that is now integral to absoluteClippedOverflowRect() and absoluteOutlineBox().
* rendering/RenderImage.cpp:
(WebCore::RenderImage::layout): Ditto.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions): Added ASSERTs. Factored out some code into
RenderBox::offsetForPositionedInContainer.
(WebCore::RenderLayer::updateScrollInfoAfterLayout): Disabled LayoutState around the call to
scrollToOffset.
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::updateMarkerLocation): Disabled LayoutState when moving the list marker, since
it can trigger repainting in other containers.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::isRoot): Minor cleanup: changed element()->document() to the equivalent
document().
(WebCore::RenderObject::computeAbsoluteRepaintRect): Removed 'return' at the end of the function.
(WebCore::RenderObject::container): Reordered to avoid calling isText() twice.
(WebCore::RenderObject::absoluteOutlineBox): Added the layout delta here, so callers don't need to.
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::layout): Disabled LayoutState because it is incompatible with arbitrary
affine transforms.
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout): Factored out the "only positioned objects" case into
layoutOnlyPositionedObjects(). Added LayoutState push/pop. Removed the translation by the layout delta
of the old absolute rects, since that is now integral to absoluteClippedOverflowRect() and
absoluteOutlineBox().
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::absoluteClippedOverflowRect): Added the layout delta here, so callers
don't need to.
(WebCore::RenderTableCell::computeAbsoluteRepaintRect): For the O(1) code path, skipped the correction
for the parent row, because RenderTableRow doesn't push a translation into LayoutState.
(WebCore::RenderTableCell::absolutePosition): Ditto.
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::layout): Added LayoutState push/pop.
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::setCellWidths): Added LayoutState push/pop if cells are repainted or
receive layout.
(WebCore::RenderTableSection::calcRowHeight): Ditto.
(WebCore::RenderTableSection::layoutRows): Added LayoutState push/pop.
* rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
(WebCore::RenderView::layout): Added initial LayoutState setup for the layout.
(WebCore::RenderView::paintBoxDecorations): Minor cleanup: changed element()->document() to the
equivalent document().
(WebCore::RenderView::repaintViewRectangle): Ditto.
(WebCore::RenderView::pushLayoutState): Added. Pushes initial layout state for subtree layout.
* rendering/RenderView.h:
(WebCore::RenderView::pushLayoutState):
(WebCore::RenderView::popLayoutState):
(WebCore::RenderView::layoutState):
(WebCore::RenderView::disableLayoutState):
(WebCore::RenderView::enableLayoutState):
2007-04-29 David Hyatt <hyatt@apple.com>
Fix for bugzilla 13535, regression from positioning cleanup a while
back. Some code got added to compute available width for a relpositioned
inline, only the code meant to be used for inline flows and not inline blocks.
Reviewed by mjs
fast/block/positioning/inline-block-relposition.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::containingBlockWidthForPositioned):
2007-04-29 Oliver Hunt <oliver@apple.com>
Reviewed by Zack.
Implement basic drag and drop support for qt
this allows content and link dragging but does not
provide the DOM data access methods.
* platform/DragData.h:
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::ClipboardQt):
(WebCore::ClipboardQt::~ClipboardQt):
(WebCore::ClipboardQt::clearData):
(WebCore::ClipboardQt::clearAllData):
(WebCore::ClipboardQt::setData):
(WebCore::ClipboardQt::declareAndWriteDragImage):
(WebCore::ClipboardQt::writeURL):
(WebCore::ClipboardQt::writeRange):
(WebCore::ClipboardQt::hasData):
* platform/qt/ClipboardQt.h:
(WebCore::ClipboardQt::clipboardData):
(WebCore::ClipboardQt::invalidateWritableData):
* platform/qt/DragDataQt.cpp:
(WebCore::DragData::canSmartReplace):
(WebCore::DragData::containsPlainText):
(WebCore::DragData::asPlainText):
(WebCore::DragData::createClipboard):
(WebCore::DragData::containsCompatibleContent):
(WebCore::DragData::containsURL):
(WebCore::DragData::asURL):
(WebCore::DragData::asFragment):
2007-04-28 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin and Oliver.
- change Document to hold onto Frame* instead of FrameView*
This is an architectural cleanup and a prerequisite to fixing citibank login
in an architecturally sound way.
Some fixups for the page cache:
* history/CachedPage.cpp:
(WebCore::CachedPage::restore): Add an assert that the document's view
matches the cached page's view - this needs to be true by the time this
function is called.
(WebCore::CachedPage::clear): Change assert to require frame matching, not
view matching.
* history/CachedPage.h:
(WebCore::CachedPage::view): Add a way to get the view out.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::begin): pass Frame, not FrameView, when creating document
(WebCore::FrameLoader::open): restore view based on CachedPage, not Document.
Remaining changes are just straightforward updates based on which
pointer is held or passed:
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument):
(WebCore::DOMImplementation::createHTMLDocument):
* dom/DOMImplementation.h:
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::view):
(WebCore::Document::frame):
(WebCore::Document::recalcStyle):
(WebCore::Document::updateLayout):
(WebCore::Document::attach):
(WebCore::Document::detach):
(WebCore::Document::createTokenizer):
(WebCore::Document::recalcStyleSelector):
(WebCore::Document::setInPageCache):
(WebCore::Document::applyXSLTransform):
* dom/Document.h:
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::HTMLDocument):
* html/HTMLDocument.h:
* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::HTMLViewSourceDocument):
* html/HTMLViewSourceDocument.h:
* ksvg2/svg/SVGDocument.cpp:
(WebCore::SVGDocument::SVGDocument):
* ksvg2/svg/SVGDocument.h:
* loader/ImageDocument.cpp:
(WebCore::ImageDocument::ImageDocument):
* loader/ImageDocument.h:
* loader/PluginDocument.cpp:
(WebCore::PluginDocument::PluginDocument):
* loader/PluginDocument.h:
* loader/TextDocument.cpp:
(WebCore::TextDocument::TextDocument):
* loader/TextDocument.h:
* xml/XSLTProcessor.cpp:
(WebCore::XSLTProcessor::createDocumentFromSource):
(WebCore::XSLTProcessor::transformToDocument):
* xml/XSLTProcessor.h:
2007-04-28 Adele Peterson <adele@apple.com>
RS by Darin.
Update to fix for <rdar://problem/5152299>
Test: fast/events/no-blur-on-enter-button.html
* html/HTMLButtonElement.cpp: (WebCore::HTMLButtonElement::defaultEventHandler):
Don't blur the button when handling the enter key. This matches our new behavior for input elements.
2007-04-28 Adele Peterson <adele@apple.com>
Fix by Darin, reviewed by me.
Fix for <rdar://problem/5152299> REGRESSION: <button> elements do not respond to space and return key as similar <input> elements do
Tests:
fast/forms/button-spacebar-click.html
fast/forms/button-enter-click.html
* html/HTMLButtonElement.h: (WebCore::HTMLButtonElement::): Made type enum private.
Removed unnecessary m_value and m_currValue, and unused m_dirty.
* html/HTMLButtonElement.cpp:
(WebCore::HTMLButtonElement::HTMLButtonElement): Removed initialization of m_dirty.
(WebCore::HTMLButtonElement::parseMappedAttribute): Removed case to parse value and accesskey attributes, which don't do anything.
(WebCore::HTMLButtonElement::defaultEventHandler): Removed unnecessary check for button type.
Added cases to handle spacebar and enter keys in the same way that they're handled for <input type=button/reset/submit> buttons.
(WebCore::HTMLButtonElement::isSuccessfulSubmitButton): Shortened comment.
(WebCore::HTMLButtonElement::appendFormData): Use value() instead of m_currValue. Renamed encoding argument to formData.
2007-04-28 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13501
REGRESSION (r21093): Pasting into text field fails and makes the caret disappear
Test: fast/dynamic/anonymous-block-layer-lost.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::removeChild): Avoid cutting off layers when removing
the anonymous block.
2007-04-28 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13471
REGRESSION (r21045): Secure keyboard entry mode remains in effect after leaving a password field by submitting
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::clear): Replaced direct access to Frame's d->m_doc
with a call to Frame::setDocument.
(WebCore::FrameLoader::begin): Ditto.
(WebCore::FrameLoader::open): Ditto.
(WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady): Ditto.
(WebCore::FrameLoader::canCachePage): Added a comment.
* manual-tests/secure-keyboard-enabled-after-submit.html: Added.
* page/Frame.cpp:
(WebCore::Frame::setDocument): Reset secure keyboard entry, in case the
old document's focused node has set it.
2007-04-28 Mitz Pettel <mitz@webkit.org>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=13379
REGRESSION: Cannot add an option to a selected popup
* manual-tests/update-empty-popup.html: Added.
* platform/mac/PopupMenuMac.mm:
(WebCore::PopupMenu::show): Added a call to the client's hidePopup()
callback before returning in the case that the menu is empty. Otherwise
the client thinks that the menu stayed open.
2007-04-28 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Fix for <rdar://problem/4806988> REGRESSION: history.go(0) doesn't reload page (affects buttons at facebook.com)
Test: fast/history/history_reload.html
* loader/FrameLoader.cpp: (WebCore::FrameLoader::scheduleHistoryNavigation):
We avoid doing a redirection when going to the same url in a history navigation, but we have to still
schedule a redirection when the number of steps is zero so we can force a reload.
2007-04-28 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=13514
REGRESSION (r20997-21003): Crash in WebCore::Node::document
Test: fast/dom/NodeList/childNodes-reset-cache.html
* dom/Node.cpp:
(WebCore::Node::notifyLocalNodeListsChildrenChanged): Reset the common caches for child node
lists. We cannot rely on notifications, since there may be no list objects left around.
* dom/ChildNodeList.cpp:
(WebCore::ChildNodeList::rootNodeChildrenChanged):
* dom/ChildNodeList.h:
Override rootNodeChildrenChanged() with an empty implementation, now that caches are reset
in Node::notifyLocalNodeListsChildrenChanged().
2007-04-28 Mark Rowe <mrowe@apple.com>
Build fix. Change use of nil to 0 in C++ source file.
* editing/Editor.cpp:
(WebCore::Editor::increaseSelectionListLevel):
(WebCore::Editor::increaseSelectionListLevelOrdered):
(WebCore::Editor::increaseSelectionListLevelUnordered):
2007-04-28 Darin Adler <darin@apple.com>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=6216
REGRESSION: getElementsByTagNameNS with empty namespace doesn't work
* dom/Node.cpp:
(WebCore::TagNodeList::TagNodeList): Changed parameter to PassRefPtr, tweaked formatting.
(WebCore::TagNodeList::item): Tweaked formatting.
(WebCore::TagNodeList::nodeMatches): Tweaked formatting.
(WebCore::Node::setPrefix): Tweaked formatting.
(WebCore::Node::getElementsByTagNameNS): Added special case to turn empty namespaces into
null namespaces.
2007-04-28 Darin Adler <darin@apple.com>
Reviewed by Kevin Decker.
- fix <rdar://problem/5148271> Chinese numbers are incorrect in numbered lists
(including pasting from TextEdit to Mail)
Covered by an existing regression test, which had wrong results checked in.
Hyatt told me not to use the algorithm in the CSS 3 specification, but I didn't listen!
This corrects mistakes there and makes our results match current Firefox.
* rendering/RenderListMarker.cpp:
(WebCore::toCJKIdeographic): Added code to strip off trailing zero digits.
Added special case for zero, since that's the one case where we don't want
to strip off trailing zero digits. Fixed mixed-up logic that would put the
digits in each group backwards.
(WebCore::listMarkerText): Corrected character values for the CJK_IDEOGRAPHIC case.
2007-04-28 Darin Adler <darin@apple.com>
Reviewed by Oliver.
- fix <rdar://problem/5138250> REGRESSION (r18245): Changing any one aspect
of a font applies all the aspects to selected text
Since this bug is only visible with the font panel, I don't
think there's any way to make a DumpRenderTree-driven test.
* editing/Editor.cpp: (WebCore::Editor::fontForSelection):
Set hasMultipleFonts properly. The old code had an early exit
that was left over from when hasMultipleFonts was a pointer.
2007-04-27 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13525
Repainting a listbox schedules a relayout
No test possible as there is no change to functionality.
- fix the root cause of http://bugs.webkit.org/show_bug.cgi?id=10862
REGRESSION: Collapsing form input on www.myspace.com
No test possible since text fields are no longer implemented as flexboxes.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::scheduleRelayout): Added a check that the subtree
root is in the tree and not free-floating.
* rendering/bidi.cpp:
(WebCore::RenderBlock::bidiReorderCharacters): Changed addChild and removeChild
to appendChildNode and removeChildNode to save some unnecessary overhead.
These calls still mark the tree for relayout, but the change in scheduleRelayout
ensures that a layout won't be scheduled.
2007-04-27 Patti Hoa <patti@apple.com>
Reviewed by Darin.
<rdar://problem/5153017> REPRODUCIBLE ASSERT: range != nil in WebViewFactory.mm:415 -[WebViewFactory startOfTextMarkerRange:] (13354)
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject textMarkerRangeForRange:]):
Fix the range length check. It was incorrectly assuming that the max range requested cannot be equal
to the length of the string. Since NSRange location is index based, it's perfectly valid to have the max
range equal to the the text length.
2007-04-27 David Harrison <harrison@apple.com>
Reviewed by Darin.
<rdar://problem/5160627> Export JS list creation support as ObjC SPI for Mail
* WebCore.exp:
* editing/Editor.h:
* editing/Editor.cpp:
(WebCore::Editor::insertOrderedList):
(WebCore::Editor::insertUnorderedList):
(WebCore::Editor::canIncreaseSelectionListLevel):
(WebCore::Editor::canDecreaseSelectionListLevel):
(WebCore::Editor::increaseSelectionListLevel):
(WebCore::Editor::increaseSelectionListLevelOrdered):
(WebCore::Editor::increaseSelectionListLevelUnordered):
(WebCore::Editor::decreaseSelectionListLevel):
Add insertOrderedList() and insertUnorderedList().
Move existing list management functions from WebCoreFrameBridge.
The level increasing functions now return a PassRefPtr<Node> instead of Node.
Add check for canEditRichly.
- in many other functions, condense the check for nil client().
* editing/InsertListCommand.h:
* editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::insertList):
(WebCore::InsertListCommand::fixOrphanedListChild):
(WebCore::InsertListCommand::doApply):
Add insertList(), which returns the new list element.
Don't set the list element's ID if the specified ID was an empty string.
* editing/ModifySelectionListLevel.h:
* editing/ModifySelectionListLevel.cpp:
(WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevelWithType):
(WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevel):
(WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevelOrdered):
(WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevelUnordered):
Return PassRefPtr<Node> instead of Node.
* page/mac/WebCoreFrameBridge.h:
* page/mac/WebCoreFrameBridge.mm:
Move list management functions to Editor.h and Editor.cpp.
2007-04-27 David Hyatt <hyatt@apple.com>
Fix for <rdar://problem/5134254>, toolbar buttons don't work in gmail after double-click. Make sure
to clear out the capturing frame, since you don't get a second up when a double-click happens.
Reviewed by mjs
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseDoubleClickEvent):
2007-04-27 Justin Garcia <justin.garcia@apple.com>
Reviewed by oliver
<rdar://problem/5164796>
Enable execCommand("CreateLink", ...) for caret selections
* editing/CreateLinkCommand.cpp:
(WebCore::CreateLinkCommand::doApply): For a caret
selection, insert a link at the caret position
with the url as the link text.
* editing/JSEditor.cpp: Enable CreateLink for caret
selections.
2007-04-27 Antti Koivisto <antti@apple.com>
Reviewed by Darin, Hyatt.
Fix http://bugs.webkit.org/show_bug.cgi?id=13081
Empty table cells not handled correctly
<rdar://problem/5067926>
To match Firefox and IE, empty table cells with variable width need to be
treated as special case. They generally get zero width.
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn):
(WebCore::AutoTableLayout::calcEffectiveWidth):
(WebCore::AutoTableLayout::layout):
* rendering/AutoTableLayout.h:
(WebCore::AutoTableLayout::Layout::Layout):
* rendering/RenderStyle.h:
(WebCore::RenderStyle::hasPadding):
2007-04-27 Rob Buis <buis@kde.org>
Reviewed by Oliver.
http://bugs.webkit.org/show_bug.cgi?id=13052
Text not rendered in a second inline SVG element
Correct the rendering of svg text when embedded in non-svg container.
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::paint):
2007-04-27 Mark Rowe <mrowe@apple.com>
Reviewed by Maciej.
* WebCore.pro: Remove non-existent paths from qmake files.
2007-04-25 Lars Naesbye Christensen <lars@naesbye.dk>
Reviewed by Timothy Hatcher.
http://bugs.webkit.org/show_bug.cgi?id=13477
Bug 13477: Help and context menu cursors need dropshadows.
* Resources/cellCursor.png:
* Resources/contextMenuCursor.png:
* Resources/helpCursor.png:
* platform/mac/CursorMac.mm:
(WebCore::contextMenuCursor):
(WebCore::copyCursor):
(WebCore::progressCursor):
(WebCore::noDropCursor):
2007-04-27 Holger Freyther <freyther@kde.org>
Reviewed by Maciej.
Remove unmaintained CMake build system.
* CMakeLists.txt: Removed.
2007-04-26 Matt Perry <mpComplete@gmail.com>
Reviewed by Maciej.
Added a version check to hackAroundLibXMLEntityBug, since that bug has
been fixed in recent versions of libxml2.
* dom/XMLTokenizer.cpp:
(WebCore::hackAroundLibXMLEntityBug):
2007-04-26 Christopher Brichford <chrisb@adobe.com>
Reviewed by Timothy Hatcher.
- Fix for Bug 13204: Submit initial version of mac project files for apollo
port of WebCore
http://bugs.webkit.org/show_bug.cgi?id=13204
* WebCore.apolloproj/mac/WebCore.Debug.xcconfig: Added.
* WebCore.apolloproj/mac/WebCore.Release.xcconfig: Added.
* WebCore.apolloproj/mac/WebCore.xcconfig: Added.
* WebCore.apolloproj/mac/WebCore.xcodeproj/project.pbxproj: Added.
2007-04-26 Alp Toker <alp@atoker.com>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=13505
Cast loses precision on x86_64
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::beginTransparencyLayer):
(WebCore::GraphicsContext::endTransparencyLayer):
Use a stack of opacity values instead of Cairo user data.
2007-04-26 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13500
REGRESSION: Listbox scrollbar does not reflect actual scrolled position when selected option is added after layout
Test: fast/forms/listbox-scrollbar-incremental-load.html
The scroller position was not updated correctly during insertion, since
scrollbar proportions are updated only during layout
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::selectionChanged): Delay scrolling to reveal the
selection until after layout if m_optionsChanged is set. Layout is
guaranteed to happen soon when the flag is set.
2007-04-26 David Hyatt <hyatt@apple.com>
Fix for 13511, crash on a counters page. Make sure that RenderTexts
never get a null StringImpl. I would have added an assert that the length
had to be nonzero also, but unfortunately editing creates empty RenderTexts
because of its EditingText DOM subclass that always forces renderers to be
made. I suppose there is a good reason for this...
Reviewed by aroben
* dom/CharacterData.cpp:
(WebCore::CharacterData::setData):
(WebCore::CharacterData::appendData):
(WebCore::CharacterData::insertData):
(WebCore::CharacterData::deleteData):
(WebCore::CharacterData::replaceData):
* rendering/RenderCounter.cpp:
(WebCore::RenderCounter::RenderCounter):
* rendering/RenderText.cpp:
(WebCore::RenderText::RenderText):
(WebCore::RenderText::trimmedPrefWidths):
(WebCore::RenderText::setTextWithOffset):
(WebCore::RenderText::setTextInternal):
(WebCore::RenderText::setText):
2007-04-26 Alice Liu <alice.liu@apple.com>
Reviewed by Oliver.
* editing/SelectionController.cpp:
(WebCore::SelectionController::selectAll):
adding null check
2007-04-26 Justin Garcia <justin.garcia@apple.com>
Reviewed by oliver
<rdar://problem/5120591>
Crash when creating a link in Leopard wiki server
* editing/CreateLinkCommand.cpp:
(WebCore::CreateLinkCommand::doApply): Use a RefPtr,
setting the anchor's href can destroy it if there is
an ancestor with a subtree modified event listener.
2007-04-26 Mitz Pettel <mitz@webkit.org>
Reviewed by hyatt
- http://bugs.webkit.org/show_bug.cgi?id=13496
Eliminate repaintObjectsBeforeLayout
No tests added since there is no change to functionality. Several
tests in fast/repaint test repainting of objects that move during layout.
* page/FrameView.cpp:
(WebCore::FrameView::layout):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlockChildren): Removed an early
setNeedsLayout(false). Resetting the bit here prevents the full repaint
that we rely on when we decide not to repaint children that move.
* rendering/RenderBlock.h:
* rendering/RenderObject.cpp:
* rendering/RenderObject.h:
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::setCellWidths): Replaced the call to
repaintObjectsBeforeLayout() if the cell didn't need layout with
an unconditional repaint(). We don't bother with repainting only the
delta between the old and new widths, since by marking the cell for
layout results in a full repaint with the new width anyway.
2007-04-26 David Hyatt <hyatt@apple.com>
Fix for 13509. Don't recur to parent inline flows if they have been
marked as needing layout themselves.
Reviewed by adele
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::dirtyLinesFromChangedChild):
2007-04-26 Matt Perry <mpComplete@gmail.com>
Reviewed and landed by Alexey.
http://bugs.webkit.org/show_bug.cgi?id=13495
Crash when referencing an undefined entity in an XHTML document
Test: fast/parser/badentity.xhtml
* dom/XMLTokenizer.cpp:
(WebCore::getEntityHandler): Check for a NULL returned from getXHTMLEntity
2007-04-26 Anders Carlsson <andersca@apple.com>
Reviewed by Hyatt.
<rdar://problem/4851944>
REGRESSION: With TOT, BMP images can no longer be opened in the browser window
On Tiger, the MIME type for the com.microsoft.bmp UTI isn't in the registry, so add it manually.
* platform/MimeTypeRegistry.cpp:
(WebCore::initialiseSupportedImageMIMETypes):
2007-04-26 David Hyatt <hyatt@apple.com>
Fix for bug 13503, invalidateContainingBlockPrefWidths is 15% of the
nesting PLT. Avoid O(n^2) behavior by including inlines in the minmax
dirty chain.
Reviewed by kevin
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::calcInlinePrefWidths):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::setPrefWidthsDirty):
(WebCore::RenderObject::invalidateContainerPrefWidths):
* rendering/RenderObject.h:
2007-04-26 Anders Carlsson <andersca@apple.com>
Reviewed by Darin.
<rdar://problem/5067925>
Reproducible crash (infinite recursion) with a layout test that submits on unload (13078)
Ask the document loader whether it's loading the main resource, since there are cases where the frame
loader's variable isn't updated correctly.
In the distant future, the frame loader shouldn't have an instance variable but this is the least intrusive fix for now.
I couldn't come up with a good test case for this since it requires running three tests in a row and scheduleLoad didn't work. Also,
calling submit in the onunload prevents any new tests from loading!
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::isLoading):
2007-04-26 Anders Carlsson <andersca@apple.com>
... and fix the build.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::continueAfterNavigationPolicy):
2007-04-26 Anders Carlsson <andersca@apple.com>
Revert the previous change - activeDocumentLoader never returns the policy document loader.
Instead, add a null check for the policy document loader.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::continueAfterNavigationPolicy):
2007-04-26 Anders Carlsson <andersca@apple.com>
Use the active document loader instead of the policy document loader.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::continueAfterNavigationPolicy):
2007-04-26 Anders Carlsson <andersca@apple.com>
Reviewed by Maciej.
<rdar://problem/5049099> documents no longer have a default base URL
Don't call canHandleRequest if we have valid substitute data and the protocol is "applewebdata".
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::continueAfterNavigationPolicy):
2007-04-25 Stephanie Lewis <slewis@apple.com>
Reviewed by Darin.
Fix the build for platforms that overload the abs function.
* dom/ChildNodeList.cpp:
(WebCore::ChildNodeList::item):
2007-04-25 David Hyatt <hyatt@apple.com>
Fix for bug 13373, make sure to invalidate the pref widths for objects
with percentage padding.
Reviewed by beth
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlockChildren):
(WebCore::RenderBlock::layoutPositionedObjects):
* rendering/bidi.cpp:
(WebCore::RenderBlock::layoutInlineChildren):
2007-04-25 David Harrison <harrison@apple.com>
Comment change. Correct the header name in the endif comment.
* editing/FormatBlockCommand.h:
Change InsertListCommand_h to FormatBlockCommand_h.
2007-04-25 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
* platform/AtomicString.cpp: (WebCore::AtomicString::add):
Removed unnecessary use of strlen to check if a string is empty.
2007-04-25 Mitz Pettel <mitz@webkit.org>
Build fix.
* rendering/RenderListMarker.h: Undeleted the m_text member.
2007-04-25 David Hyatt <hyatt@apple.com>
Rearchitect calcPrefWidths. The calculation is now done lazily only when minPrefWidth
or maxPrefWidth are asked for. The result of the calculation is cached.
The new invalidation scheme for pref width invalidation follows the
containing block hierarchy and knows to halt at positioned objects, since
they cannot influence the size of their containers.
Reviewed by darin
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::init):
(WebCore::CSSStyleSelector::initForStyleResolve):
* page/FrameView.cpp:
(WebCore::FrameView::layout):
* rendering/RenderApplet.cpp:
(WebCore::RenderApplet::layout):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::makeChildrenNonInline):
(WebCore::RenderBlock::removeChild):
(WebCore::RenderBlock::layout):
(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::calcPrefWidths):
(WebCore::InlineMinMaxIterator::endOfInline):
(WebCore::shouldGrowTableCellForImage):
(WebCore::RenderBlock::calcInlinePrefWidths):
(WebCore::RenderBlock::calcBlockPrefWidths):
* rendering/RenderBlock.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::setStyle):
(WebCore::RenderBox::minPrefWidth):
(WebCore::RenderBox::maxPrefWidth):
(WebCore::RenderBox::calcWidth):
(WebCore::RenderBox::calcWidthUsing):
(WebCore::RenderBox::calcAbsoluteHorizontal):
(WebCore::RenderBox::calcAbsoluteHorizontalValues):
* rendering/RenderBox.h:
* rendering/RenderContainer.cpp:
(WebCore::RenderContainer::removeChildNode):
(WebCore::RenderContainer::appendChildNode):
(WebCore::RenderContainer::insertChildNode):
(WebCore::RenderContainer::layout):
* rendering/RenderContainer.h:
(WebCore::RenderContainer::moveChildNode):
* rendering/RenderCounter.cpp:
(WebCore::RenderCounter::dirtyLineBoxes):
(WebCore::RenderCounter::calcPrefWidths):
* rendering/RenderCounter.h:
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::calcPrefWidths):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::calcHorizontalPrefWidths):
(WebCore::RenderFlexibleBox::calcVerticalPrefWidths):
(WebCore::RenderFlexibleBox::calcPrefWidths):
(WebCore::RenderFlexibleBox::layoutBlock):
* rendering/RenderForeignObject.cpp:
(WebCore::RenderForeignObject::layout):
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::layout):
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::layout):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::layout):
* rendering/RenderInline.cpp:
* rendering/RenderInline.h:
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::updateFromElement):
(WebCore::RenderListBox::calcPrefWidths):
* rendering/RenderListItem.cpp:
(WebCore::firstNonMarkerChild):
(WebCore::RenderListItem::updateMarkerLocation):
(WebCore::RenderListItem::calcPrefWidths):
(WebCore::RenderListItem::layout):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::layout):
(WebCore::RenderListMarker::calcPrefWidths):
(WebCore::RenderListMarker::updateMargins):
* rendering/RenderListMarker.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::RenderObject):
(WebCore::RenderObject::removeChildNode):
(WebCore::RenderObject::moveChildNode):
(WebCore::RenderObject::appendChildNode):
(WebCore::RenderObject::insertChildNode):
(WebCore::RenderObject::setPrefWidthsDirty):
(WebCore::RenderObject::invalidateContainingBlockPrefWidths):
(WebCore::RenderObject::information):
(WebCore::RenderObject::setStyle):
* rendering/RenderObject.h:
(WebCore::RenderObject::layer):
(WebCore::RenderObject::hasLayer):
(WebCore::RenderObject::prefWidthsDirty):
(WebCore::RenderObject::setNeedsLayoutAndPrefWidthsRecalc):
(WebCore::RenderObject::setHasLayer):
* rendering/RenderPartObject.cpp:
(WebCore::RenderPartObject::layout):
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::layout):
* rendering/RenderSVGContainer.h:
* rendering/RenderSVGHiddenContainer.cpp:
* rendering/RenderSVGHiddenContainer.h:
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::layout):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::calcWidth):
(WebCore::RenderTable::layout):
(WebCore::RenderTable::removeChildNode):
* rendering/RenderTable.h:
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::layout):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::removeChildNode):
* rendering/RenderTableSection.h:
* rendering/RenderText.cpp:
(WebCore::RenderText::trimmedPrefWidths):
(WebCore::isSpaceAccordingToStyle):
(WebCore::RenderText::minPrefWidth):
(WebCore::RenderText::maxPrefWidth):
(WebCore::RenderText::calcPrefWidths):
(WebCore::RenderText::width):
* rendering/RenderText.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
(WebCore::RenderView::calcPrefWidths):
(WebCore::RenderView::layout):
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::layout):
2007-04-25 Steve Falkenburg <sfalken@apple.com>
Reviewed by Adam.
Fix spelling error in spelling method name.
Expose new spelling callback methods to all platforms.
* bridge/EditorClient.h:
* platform/gdk/EditorClientGdk.cpp:
(WebCore::EditorClientGdk::updateSpellingUIWithGrammarString):
* platform/gdk/EditorClientGdk.h:
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyEditorClient::updateSpellingUIWithGrammarString):
(WebCore::SVGEmptyEditorClient::getGuessesForWord):
2007-04-24 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler, Tim Hatcher.
Fixed a few NSAutoreleasePool issues I noticed while reviewing Brady's patch.
* platform/graphics/mac/GraphicsContextMac.mm:
(WebCore::GraphicsContext::setCompositeOperation): Call -drain instead of
-release, since -release is a no-op in a GC world.
2007-04-25 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=13445
NodeList access by index is slow
* dom/ChildNodeList.cpp:
(WebCore::ChildNodeList::item): Support iterating backwards from the last accessed node
or from the last child.
* dom/NodeList.h: Make cachedLength unsigned.
2007-04-26 Mark Rowe <mrowe@apple.com>
Gdk build fix. Add missing stub.
* platform/gdk/TemporaryLinkStubs.cpp:
(Editor::advanceToNextMisspelling):
2007-04-25 Rob Buis <buis@kde.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12163
SVG text does not appear in a scrolling <div>
Make sure SVG text is painted when scrolling by taking into account the relative offset of the non-SVG parent in the paintInfo rect.
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::paint):
2007-04-26 Mark Rowe <mrowe@apple.com>
Fix non-Mac builds after r21081.
Stub out new Editor methods for Qt and Gdk, and new SVGEmptyEditorClient methods
for all non-Mac builds.
* editing/qt/EditorQt.cpp:
(WebCore::Editor::showSpellingGuessPanel):
(WebCore::Editor::spellingPanelIsShowing):
* page/qt/EventHandlerQt.cpp:
(WebCore::EventHandler::passWheelEventToWidget):
(WebCore::EventHandler::passMousePressEventToScrollbar):
* platform/gdk/TemporaryLinkStubs.cpp:
(Editor::showSpellingGuessPanel):
(Editor::spellingPanelIsShowing):
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyEditorClient::ignoreWordInSpellDocument):
(WebCore::SVGEmptyEditorClient::learnWord):
(WebCore::SVGEmptyEditorClient::checkSpellingOfString):
(WebCore::SVGEmptyEditorClient::checkGrammarOfString):
(WebCore::SVGEmptyEditorClient::udpateSpellingUIWithGrammarString):
(WebCore::SVGEmptyEditorClient::updateSpellingUIWithMisspelledWord):
(WebCore::SVGEmptyEditorClient::showSpellingUI):
(WebCore::SVGEmptyEditorClient::spellingUIIsShowing):
(WebCore::SVGEmptyEditorClient::getGuessesForWord):
2007-04-25 Anders Carlsson <andersca@apple.com>
Reviewed by Ada.
<rdar://problem/5122153>
Crash occurs at WebCore::Frame::loader() when switching to Bookmarks view while loading standalone image
Don't call writeRawData if the data length is 0. (This is checked by the decoder for the non-raw case).
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::write):
2007-04-26 Mark Rowe <mrowe@apple.com>
Gdk build fix courtesy of Alp Toker.
* make-generated-sources.sh: Remove conditional logic to ensure the
script exits with the correct exit code.
2007-04-24 Anders Carlsson <andersca@apple.com>
Reviewed by Mitz.
<rdar://problem/4869095>
default content type for XMLHttpRequest POSTs changed (breaks Flickrator 0.1 widget)
Use the right MIME type.
* xml/xmlhttprequest.cpp:
(WebCore::XMLHttpRequest::send):
2007-04-24 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- second round of preparation for Hyatt's "lazy minMaxWidth" change
http://bugs.webkit.org/show_bug.cgi?id=13431
These are small changes that are either safe to do first, or unrelated to the main
change in Hyatt's patch.
- Preallocate 4 entries each in m_layoutStruct and m_spanCells to save allocation
in AutoTableLayout.
- Add an early exit to RenderFlow::dirtyLinesFromChangedChild.
- Change InlineBox::hasTextChildren() to use a bit directly and never a virtual function.
- Save a virtual function call by using a local bool variable for isTableCell().
- Fix containingBlock() so it returns 0 for table cells with no parent.
- Change all callers who are getting at layer() as a boolean to use hasLayer().
- Change if statements to max() function calls (only the ones Hyatt had in his patch).
- Remove some old kdDebug calls.
- Tweak formatting of some code.
- Add const in one place.
* bindings/js/kjs_html.cpp:
(KJS::HTMLElementFunction::callAsFunction):
* page/EventHandler.cpp:
(WebCore::EventHandler::eventMayStartDrag):
* page/Frame.cpp:
(WebCore::Frame::clearTimers):
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn):
* rendering/AutoTableLayout.h:
* rendering/InlineBox.h:
(WebCore::InlineBox::InlineBox):
(WebCore::InlineBox::hasTextChildren):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::nodeAtPoint):
* rendering/InlineFlowBox.h:
(WebCore::InlineFlowBox::InlineFlowBox):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::repaintOverhangingFloats):
(WebCore::RenderBlock::paintChildren):
(WebCore::RenderBlock::paintFloats):
(WebCore::RenderBlock::fillBlockSelectionGaps):
(WebCore::RenderBlock::insertFloatingObject):
(WebCore::RenderBlock::floatRect):
(WebCore::RenderBlock::lowestPosition):
(WebCore::RenderBlock::rightmostPosition):
(WebCore::RenderBlock::leftmostPosition):
(WebCore::RenderBlock::addOverhangingFloats):
(WebCore::RenderBlock::nodeAtPoint):
(WebCore::RenderBlock::hitTestContents):
(WebCore::RenderBlock::calcPrefWidths):
(WebCore::InlineMinMaxIterator::next):
(WebCore::getBorderPaddingMargin):
(WebCore::RenderBlock::calcInlinePrefWidths):
(WebCore::RenderBlock::calcBlockPrefWidths):
* rendering/RenderContainer.cpp:
(WebCore::RenderContainer::appendChildNode):
(WebCore::RenderContainer::insertChildNode):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::calcHorizontalPrefWidths):
(WebCore::RenderFlexibleBox::calcVerticalPrefWidths):
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::dirtyLinesFromChangedChild):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateVisibilityStatus):
(WebCore::RenderLayer::updateLayerPosition):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::containingBlock):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::paint):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::paintBackgroundsBehindCell):
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::nodeAtPoint):
(WebCore::RenderTableRow::paint):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::nodeAtPoint):
* rendering/RenderTreeAsText.cpp:
(WebCore::write):
2007-04-24 Steve Falkenburg <sfalken@apple.com>
Reviewed by Darin, Oliver.
Refactor spelling codepaths
* bridge/EditorClient.h:
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected):
* platform/ContextMenu.cpp:
(WebCore::ContextMenu::populate):
(WebCore::ContextMenu::checkOrEnableIfNeeded):
* platform/gdk/EditorClientGdk.cpp:
(WebCore::EditorClientGdk::ignoreWordInSpellDocument):
(WebCore::EditorClientGdk::learnWord):
(WebCore::EditorClientGdk::checkSpellingOfString):
(WebCore::EditorClientGdk::checkGrammarOfString):
(WebCore::EditorClientGdk::udpateSpellingUIWithGrammarString):
(WebCore::EditorClientGdk::updateSpellingUIWithMisspelledWord):
(WebCore::EditorClientGdk::showSpellingUI):
(WebCore::EditorClientGdk::spellingUIIsShowing):
(WebCore::EditorClientGdk::getGuessesForWord):
* platform/gdk/EditorClientGdk.h:
2007-04-24 Darin Adler <darin@apple.com>
Reviewed by Adele.
- first round of preparation for Hyatt's "lazy minMaxWidth" change
http://bugs.webkit.org/show_bug.cgi?id=13431
This patch limits itself to renaming and making other super-simple
changes so that the above change will be smaller and easier to review
and understand.
Rename:
calcHorizontalMinMaxWidth -> calcHorizontalPrefWidths
calcMinMaxWidth -> calcPrefWidths
calcMinMaxWidthInternal -> calcPrefWidthsInternal
calcVerticalMinMaxWidth -> calcVerticalPrefWidths
setNeedsLayoutAndMinMaxRecalc -> setNeedsLayoutAndPrefWidthsRecalc
trimmedMinMaxWidth -> trimmedPrefWidths
RenderObject::m_maxWidth -> RenderObject::m_maxPrefWidth
RenderObject::m_minWidth -> RenderObject::m_minPrefWidth
RenderObject::maxWidth() -> RenderObject::maxPrefWidth()
RenderObject::minWidth() -> RenderObject::minPrefWidth()
Replace m_minMaxKnown, minMaxKnown(), and setMinMaxKnown() with
m_prefWidthsDirty, prefWidthsDirty(), and setPrefWidthsDirty(),
a boolean with the opposite sense.
Convert some uses of if statements into "max".
Change many uses of layer() to hasLayer(). For now it's just a boolean
version of layer(), but Hyatt's patch makes it faster by using a bit.
Added a guard to use of axObjectCache() to make RenderObject destruction
a little faster for the normal case.
Removed some assertions that will be removed in Hyatt's patch.
Made some functions const that will be const in Hyatt's patch.
Put in some revised comments from Hyatt's patch.
Removed an unneeded nil check from RenderListMarker::setStyle.
Moved RootInlineBox::setHorizontalOverflowPositions and
RootInlineBox::setVerticalSelectionPositions to the RootInlineBox.h
header and marked them inline.
* dom/Document.cpp:
(WebCore::Document::updateStyleSelector):
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::parseMappedAttribute):
* page/Frame.cpp:
(WebCore::Frame::forceLayoutWithPageWidthRange):
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn):
(WebCore::AutoTableLayout::calcPrefWidths):
(WebCore::AutoTableLayout::calcEffectiveWidth):
* rendering/AutoTableLayout.h:
* rendering/CounterNode.cpp:
(WebCore::CounterNode::recount):
* rendering/FixedTableLayout.cpp:
(WebCore::FixedTableLayout::calcPrefWidths):
* rendering/FixedTableLayout.h:
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::paint):
* rendering/RenderApplet.cpp:
(WebCore::RenderApplet::layout):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::removeChild):
(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::handleCompactChild):
(WebCore::RenderBlock::getClearDelta):
(WebCore::RenderBlock::calcPrefWidths):
(WebCore::RenderBlock::calcInlinePrefWidths):
(WebCore::RenderBlock::calcBlockPrefWidths):
* rendering/RenderBlock.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::RenderBox):
(WebCore::RenderBox::nodeAtPoint):
(WebCore::RenderBox::calcWidth):
(WebCore::RenderBox::calcWidthUsing):
(WebCore::RenderBox::calcAbsoluteHorizontal):
(WebCore::RenderBox::calcAbsoluteHorizontalValues):
* rendering/RenderBox.h:
(WebCore::RenderBox::minPrefWidth):
(WebCore::RenderBox::maxPrefWidth):
* rendering/RenderContainer.cpp:
(WebCore::RenderContainer::removeChildNode):
(WebCore::RenderContainer::appendChildNode):
(WebCore::RenderContainer::insertChildNode):
(WebCore::RenderContainer::layout):
* rendering/RenderContainer.h:
(WebCore::RenderContainer::calcPrefWidths):
* rendering/RenderCounter.cpp:
(WebCore::RenderCounter::calcPrefWidths):
* rendering/RenderCounter.h:
* rendering/RenderFieldset.cpp:
(WebCore::RenderFieldset::calcPrefWidths):
* rendering/RenderFieldset.h:
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::calcPrefWidths):
* rendering/RenderFileUploadControl.h:
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::calcHorizontalPrefWidths):
(WebCore::RenderFlexibleBox::calcVerticalPrefWidths):
(WebCore::RenderFlexibleBox::calcPrefWidths):
(WebCore::RenderFlexibleBox::layoutBlock):
(WebCore::RenderFlexibleBox::allowedChildFlex):
* rendering/RenderFlexibleBox.h:
(WebCore::RenderFlexibleBox::hasMultipleLines):
(WebCore::RenderFlexibleBox::isVertical):
(WebCore::RenderFlexibleBox::isHorizontal):
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::absoluteClippedOverflowRect):
* rendering/RenderForeignObject.cpp:
(WebCore::RenderForeignObject::layout):
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::layout):
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::layout):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::imageChanged):
(WebCore::RenderImage::layout):
(WebCore::RenderImage::calcPrefWidths):
* rendering/RenderImage.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::addChildToFlow):
(WebCore::RenderInline::splitInlines):
(WebCore::RenderInline::splitFlow):
(WebCore::RenderInline::calcPrefWidths):
* rendering/RenderInline.h:
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::updateFromElement):
(WebCore::RenderListBox::calcPrefWidths):
* rendering/RenderListBox.h:
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::updateValue):
(WebCore::RenderListItem::updateMarkerLocation):
(WebCore::RenderListItem::calcPrefWidths):
(WebCore::RenderListItem::layout):
(WebCore::RenderListItem::explicitValueChanged):
* rendering/RenderListItem.h:
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::setStyle):
(WebCore::RenderListMarker::layout):
(WebCore::RenderListMarker::imageChanged):
(WebCore::RenderListMarker::calcPrefWidths):
(WebCore::RenderListMarker::calcWidth):
* rendering/RenderListMarker.h:
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::updateOptionsWidth):
(WebCore::RenderMenuList::calcPrefWidths):
* rendering/RenderMenuList.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::RenderObject):
(WebCore::addLayers):
(WebCore::RenderObject::removeLayers):
(WebCore::RenderObject::moveLayers):
(WebCore::RenderObject::addAbsoluteRectForLayer):
(WebCore::RenderObject::checkForRepaintDuringLayout):
(WebCore::RenderObject::dump):
(WebCore::RenderObject::setStyle):
(WebCore::RenderObject::destroy):
(WebCore::RenderObject::recalcMinMaxWidths):
* rendering/RenderObject.h:
(WebCore::RenderObject::hasLayer):
(WebCore::RenderObject::prefWidthsDirty):
(WebCore::RenderObject::setPrefWidthsDirty):
(WebCore::RenderObject::setNeedsLayoutAndPrefWidthsRecalc):
(WebCore::RenderObject::calcPrefWidths):
(WebCore::RenderObject::minPrefWidth):
(WebCore::RenderObject::maxPrefWidth):
* rendering/RenderPart.cpp:
(WebCore::RenderPart::setWidget):
* rendering/RenderPartObject.cpp:
(WebCore::RenderPartObject::updateWidget):
(WebCore::RenderPartObject::layout):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::calcPrefWidths):
* rendering/RenderReplaced.h:
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::calcPrefWidths):
(WebCore::RenderSVGContainer::layout):
* rendering/RenderSVGContainer.h:
* rendering/RenderSVGHiddenContainer.cpp:
(WebCore::RenderSVGHiddenContainer::calcPrefWidths):
* rendering/RenderSVGHiddenContainer.h:
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::layout):
* rendering/RenderSlider.cpp:
(WebCore::RenderSlider::calcPrefWidths):
* rendering/RenderSlider.h:
* rendering/RenderTable.cpp:
(WebCore::RenderTable::calcWidth):
(WebCore::RenderTable::layout):
(WebCore::RenderTable::calcPrefWidths):
(WebCore::RenderTable::splitColumn):
(WebCore::RenderTable::appendColumn):
* rendering/RenderTable.h:
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::updateFromElement):
(WebCore::RenderTableCell::styleOrColWidth):
(WebCore::RenderTableCell::calcPrefWidths):
* rendering/RenderTableCell.h:
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::updateFromElement):
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::layout):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::paint):
* rendering/RenderText.cpp:
(WebCore::RenderText::trimmedPrefWidths):
(WebCore::RenderText::calcPrefWidths):
(WebCore::RenderText::calcPrefWidthsInternal):
(WebCore::RenderText::setText):
* rendering/RenderText.h:
(WebCore::RenderText::minPrefWidth):
(WebCore::RenderText::maxPrefWidth):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::calcPrefWidths):
* rendering/RenderTextControl.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
(WebCore::RenderView::calcPrefWidths):
(WebCore::RenderView::layout):
* rendering/RenderView.h:
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::layout):
* rendering/RootInlineBox.cpp:
* rendering/RootInlineBox.h:
(WebCore::RootInlineBox::setHorizontalOverflowPositions):
(WebCore::RootInlineBox::setVerticalSelectionPositions):
* rendering/TableLayout.h:
2007-04-24 Justin Garcia <justin.garcia@apple.com>
Reviewed by oliver
<rdar://problem/5156401>
Crash when dragging text into a link inside a table cell
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
Don't avoid the anchor if doing so would skip over a line break, that
would put content in the wrong paragraph, which can throw ReplaceSelectionCommand,
which relies on moveParagraphs into infinite recursion.
Renamed the input position.
Don't need to re-fetch the enclosing anchor when preparing to push it down,
since it hasn't changed since the top of the function.
2007-04-24 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam.
<rdar://problem/5133011> 64-bit: Attempting to paste copied text in a input field results in a crash at WebCore::Range::startPosition()
Change a couple incorrect uses of LONG_MAX to INT_MAX to match the variable type they are used in.
The LONG_MAX on 64-bit was overflowing the int variables, causing this crash on paste.
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject value]):
* editing/TextIterator.cpp:
(WebCore::TextIterator::handleTextNode):
(WebCore::TextIterator::handleTextBox):
2007-04-24 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam.
<rdar://problem/4966982> 64-bit: In a unordered list, TYPE=DISC and TYPE=CIRCLE attribute values are ignored
We need to draw our full-circle arcs counter-clockwise, since a clockwise arc from 0 to 2π is no arc at all!
This only worked on 32-bit due to a rounding error in CoreGraphics, causing it to draw a full circle anyway.
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawEllipse):
2007-04-24 Brady Eidson <beidson@apple.com>
Reviewed by Beth, Hyatt, Ada, and Darin
<rdar://problem/5011477> and <rdar://problem/5011514>
Provide support for the icon.db to be moved to a different directory from the old WebKit-style
icons, and remove the old directory if that is the case
Support for this starts in WebCore, where we can use the metadata table in the icon.db to track
whether or not we've ever done the import
* WebCore.exp:
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::defaultDatabaseFilename): Changed to "Icons.db"
(WebCore::IconDatabase::IconDatabase):
(WebCore::IconDatabase::deleteAllPreparedStatements): Delete the new statements added
(WebCore::IconDatabase::imported): Grab this flag from the DB or return the cached flag
(WebCore::IconDatabase::setImported): Store this flag into the DB
(WebCore::IconDatabase::importedQuery): Actually do the DB query for this save
(WebCore::IconDatabase::setImportedQuery): Actually do the DB query for this retrieval
* loader/icon/IconDatabase.h:
2007-04-24 Darin Adler <darin@apple.com>
Reviewed by Justin.
- fix <rdar://problem/4356361> Selection after multiple delete
keypresses and undo selects only the last deleted character
Test: editing/undo/undo-combined-delete-boundary.html
Test: editing/undo/undo-combined-delete.html
Test: editing/undo/undo-delete-boundary.html
Test: editing/undo/undo-delete.html
Test: editing/undo/undo-forward-delete-boundary.html
Test: editing/undo/undo-forward-delete.html
* editing/TypingCommand.cpp:
(WebCore::TypingCommand::insertText): Fix obviously-wrong code where there were missing
braces. I couldn't find any real symptom of this, but I think the fix should go in anyway.
All layout tests still pass.
(WebCore::TypingCommand::deleteKeyPressed): Added code to compute a selection that goes
back to the beginning of the composite editing operation.
(WebCore::TypingCommand::forwardDeleteKeyPressed): Ditto.
* editing/Selection.h:
* editing/Selection.cpp: (WebCore::Selection::setWithoutValidation):
Added. Back door to allow setting the ends of a selection without revalidating,
because we need to use it on a selection where the endpoints may no longer be
valid due to mutations done by earlier pieces of the editing operation.
* editing/EditCommand.h:
(WebCore::EditCommand::startingSelection): Return a const& for speed.
(WebCore::EditCommand::endingSelection): Ditto.
2007-04-24 Sam Weinig <sam@webkit.org>
Reviewed by Mitz.
- fix for http://bugs.webkit.org/show_bug.cgi?id=13448
REGRESSION: setting an input element's value to JavaScript null gives "null"
Test: fast/forms/input-null.html
* html/HTMLInputElement.idl: Convert JS null to the empty string on setting
DOMString attributes.
2007-04-24 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13453
Control clip isn't applied to children's backgrounds, outlines and floats
Test: fast/forms/control-clip.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paint): Apply the clip in all phases that paint
children. Split PaintPhaseOutline and PaintPhaseChildBlockBackground into
two phases each, applying the clip only to the children.
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::paintObject): Treat the scrollbar as part of the
background rather than as a child's background, now that children are
clipped out.
2007-04-24 Benjamin Otte <otte@gnome.org>
Reviewed by Mark Rowe.
Gdk build system improvements.
* make-generated-sources.sh: Exit with failure status if make fails.
2007-04-24 Benjamin Otte <otte@gnome.org>
Reviewed by Mark Rowe.
Gdk build system improvements.
* Projects/gdk/webcore-gdk.bkl:
fail if running any of the commands failed. In particular
make-generated-sources.sh
2007-04-23 Beth Dakin <bdakin@apple.com>
Reviewed by Adam.
Fix for <rdar://problem/5155507> REGRESSION: Crash in
RenderLayer::setHasVisibleContent()
* rendering/RenderContainer.cpp:
(WebCore::RenderContainer::appendChildNode): Must null-check
enclosingLayer()
(WebCore::RenderContainer::insertChildNode): Same.
2007-04-23 David Hyatt <hyatt@apple.com>
Fix for bug 13337, deep tag nesting is slow. This patch fixes a number of O(n^2) issues as well as making
a few performance optimizations based off profiling. Details next to each change below.
Note that calcMinMaxWidth being slow is a critical separate piece of this puzzle. Until bug 13430 is fixed,
render tree construction will be O(n^2) (because of the minmaxrecalc bit setting being stupid enough to
always crawl to the root of the tree) and calcMinMaxWidth will waste tons of unnecessary time.
When these fixes are combined with the calcMinMaxWidth fix in 13430, the penguin page specified in 13337
loads in < 2 seconds (down from an infinite hang before).
Reviewed by aroben, ollie
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::locateCousinList):
(WebCore::CSSStyleSelector::locateSharedStyle):
* css/csstyleselector.h
Cap the depth of cousin searching on the shared style optimization. We will be willing to (at most) crawl
up the tree the same distance that we were willing to crawl backwards through sibling lists. Leaving it
uncapped resulted in pathological style resolution for the case of an infinitely nested chain of singletons.
* html/HTMLParser.cpp:
(WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks):
(WebCore::HTMLParser::popBlock):
Cap the number of residual style tags that we are willing to reopen. We will reopen at most 200
residual style tags, since the assumption is that once that many tags are on the stack, you're probably already
every kind of bold, italic, and color of the rainbow.
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::absoluteClippedOverflowRect):
absoluteClippedOverflowRect can just return the empty rect when the inline flow has no line boxes instead of
doing a bunch of work (and calling containingBlock()) for no reason.
* rendering/RenderInline.cpp:
(WebCore::RenderInline::addChildToFlow):
Remove the useless containingBlock() check from addChildToFlow. Obviously every inline's containing block
is a block flow.
* rendering/bidi.cpp:
(WebCore::inlineWidth):
(WebCore::RenderBlock::createLineBoxes):
Cap the depth of individual line trees to 200. Again the assumption is that once that many open inlines exist
all on one line that there's no way this would be intentional.
2007-04-23 David Hyatt <hyatt@apple.com>
Fix for bug 13430, cap inline splitting for continuations to a maximum depth of 200.
Reviewed by olliej, antti
* rendering/RenderInline.cpp:
(WebCore::RenderInline::splitInlines):
2007-04-23 Alp Toker <alp@atoker.com>
Gdk build fix. Track EventHandler change made in r21042.
* page/gdk/EventHandlerGdk.cpp:
(WebCore::EventHandler::passWheelEventToWidget):
(WebCore::EventHandler::passMousePressEventToScrollbar):
2007-04-23 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin.
<rdar://problem/5024945> -[DOMRange lineBoxRects] doesn't include start and end nodes that have offsets
* rendering/RenderText.cpp:
(WebCore::RenderText::addLineBoxRects): Use min(box->len(), end) instead of special-casing UINT_MAX.
2007-04-23 Adele Peterson <adele@apple.com>
Fix by Darin, reviewed by me.
Fix for REGRESSION: Can't upload attachments to bugzilla since the file upload control is reset immediately
http://bugs.webkit.org/show_bug.cgi?id=13461
* rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::updateFromElement):
Only clear the FileChooser if the value is empty *and* (not or) the filename is empty.
2007-04-23 Adele Peterson <adele@apple.com>
Reviewed by Adam.
Updated fix for <rdar://problem/4887426> Set a reasonable maximum number of recent searches for search menu
* html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::parseMappedAttribute): Use a const int maxSavedResults instead of magic number 256.
2007-04-23 Timothy Hatcher <timothy@apple.com>
Reviewed by Hyatt.
<rdar://problem/5024945> -[DOMRange lineBoxRects] doesn't include start and end nodes that have offsets
Don't call selectionRect with a -1 end position, instead use the text length.
* rendering/RenderText.cpp:
(WebCore::RenderText::addLineBoxRects):
2007-04-23 Adele Peterson <adele@apple.com>
Fixed and reviewed by Darin, Adele, and Oliver.
WebCore part of fix for <rdar://problem/5107538> REGRESSION: Page scroll when selecting characters from inline input candidate window by arrow buttons
http://bugs.webkit.org/show_bug.cgi?id=13263
* dom/KeyboardEvent.h: (WebCore::KeypressCommand::isEmpty): Added helper method.
2007-04-23 Patti Hoa <patti@apple.com>
<rdar://problem/4938364> Attachment button has different string length between attributeStringForRange and stringForRange
<rdar://problem/4939536> AXLengthForTextMarkerRange returns zero length for the range of an attachment
Reviewed by Darin.
* bridge/mac/WebCoreAXObject.mm:
(nsStringForReplacedNode):
Added helper routine to check if the replaced node should be exposed as an attachment character in string representation.
Added an additional check to make sure that text node is not considered a replaced node.
Removed helper routine AXAttributedStringAppendReplaced since half of the functions are now taken care by nsStringForReplacedNode.
The other half is directly used in the doAXAttributedStringForTextMarkerRange method.
(-[WebCoreAXObject doAXStringForTextMarkerRange:]):
(-[WebCoreAXObject doAXAttributedStringForTextMarkerRange:]):
Both string and AttrbributedString methods will now utilize the helper routine nsStringForReplacedNode to return replacement
characters for range occupied by attachment.
2007-04-23 Adele Peterson <adele@apple.com>
Reviewed by Oliver.
Fix for <rdar://problem/4887426> Set a reasonable maximum number of recent searches for search menu
* html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::parseMappedAttribute):
Enforce a maximum of 256 saved results for the search field.
2007-04-23 Adele Peterson <adele@apple.com>
Reviewed by Hyatt & Adam.
Fix for <rdar://problem/4807799> REGRESSION: calling select() in onSearch handler doesn't work if you hit enter to trigger the event
Fix for <rdar://problem/5153970> onChange doesn't fire when focusing a popup, using type-ahead to select, and leaving
This previous behavior to blur controls when hitting enter was added to achieve the result of firing the change event. Firefox does not
fire blur- just the change event, so this fix will match Firefox behavior.
This also fixes a bug where we didn't fire the change event when using type-ahead selection with the popup menu.
* html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler): Fire change event instead of blur event when hitting enter.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::dispatchFocusEvent): Now that we have type-ahead selection for popups that can be opened with the arrow keys,
we should always save the last selection when a popup gets focus, so it can be compared to the current selection when it loses focus.
(WebCore::HTMLSelectElement::dispatchBlurEvent): For the same reasons as above, we should fire onChange for all popups on blur.
(WebCore::HTMLSelectElement::menuListDefaultEventHandler): Fire change event instead of blur event when hitting enter. Removed an unnecessary
check for form() before calling menuListOnChange(). Removed an unnecessary check for renderer() and usesMenuList().
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler): Remove call to blur. Since list boxes fire the change event immediately after an
action is taken, we don't need to fire anything after hitting enter.
(WebCore::HTMLSelectElement::menuListOnChange): Reset m_lastOnChangeIndex after firing the change event.
2007-04-23 Anders Carlsson <andersca@apple.com>
Reviewed by Ada.
<rdar://problem/5061022>
REGRESSION: Acrobat 8 plug-in fails to scroll with trackpad two-finger scroll or mouse wheel (12995)
Pass wheel events to all widgets.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEvent):
* page/EventHandler.h:
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::passWheelEventToWidget):
2007-04-23 Alp Toker <alp@atoker.com>
Reviewed by Mark.
Save and restore the context state when beginning and ending a transparency layer.
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::beginTransparencyLayer):
(WebCore::GraphicsContext::endTransparencyLayer):
2007-04-23 Alp Toker <alp@atoker.com>
Reviewed by Mark.
Further implementation and checks. The opacity layer code is not so beautiful
but gets the job done with fewer complications than maintaining our own stack.
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::translate):
(WebCore::GraphicsContext::setPlatformStrokeThickness):
(WebCore::GraphicsContext::beginTransparencyLayer):
(WebCore::GraphicsContext::endTransparencyLayer):
(WebCore::GraphicsContext::setCompositeOperation):
(WebCore::GraphicsContext::rotate):
(WebCore::GraphicsContext::scale):
2007-04-23 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- rename box-sizing to -webkit-box-sizing
because of <rdar://problem/4667227> REGRESSION: Shifted table on page at
https://us.etrade.com/e/t/home (due to box-sizing)
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Rename.
* css/CSSPropertyNames.in: Ditto.
* css/cssparser.cpp: (WebCore::CSSParser::parseValue): Rename and take out comment
explaining why we aren't prefacing with -webkit.
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::applyProperty): Rename.
* css/html4.css: Rename.
* css/quirks.css: Rename.
2007-04-23 Alp Toker <alp@atoker.com>
Reviewed by Hyatt.
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawEllipse):
(WebCore::GraphicsContext::drawConvexPolygon):
Fix stroking and filling of ellipses and polygons.
* platform/graphics/cairo/ImageCairo.cpp:
(WebCore::BitmapImage::draw): Make use of a new GraphicsContext
function to simplify the code.
(WebCore::Image::drawPattern): Now implemented. This makes content
with tiled patterns (eg. CSS repeat) render correctly.
* platform/graphics/gdk/ImageGdk.cpp:
(WebCore::Image::drawPattern): Remove old stub.
2007-04-22 Lars Naesbye Christensen <lars@naesbye.dk>
Reviewed by Tim Hatcher.
Prettier, more modern 'cell' cursor
http://bugs.webkit.org/show_bug.cgi?id=13441
Also updates past ChangeLog entries to new email address
* ChangeLog:
* ChangeLog-2006-12-31:
* Resources/cellCursor.png:
2007-04-23 Mark Rowe <mrowe@apple.com>
Rubber-stamped by Hyatt.
Rename cMaxPenderingSourceLengthInLowBandwidthDisplay to cMaxPendingSourceLengthInLowBandwidthDisplay.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
2007-04-22 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin and Geoff.
- move most of Window's data members into a separate private object, to avoid needing
to use the oversize allocator for it
http://bugs.webkit.org/show_bug.cgi?id=13381
It was the only remaining JSObject subclass to use the oversize
allocator on 32-bit platforms, and having oversize objects around
makes garbage collection slower so this would hurt performance
with many tabs/windows open.
No significant effect on JS iBench.
* bindings/js/kjs_events.cpp:
(KJS::JSUnprotectedEventListener::JSUnprotectedEventListener):
(KJS::JSUnprotectedEventListener::~JSUnprotectedEventListener):
(KJS::JSEventListener::JSEventListener):
(KJS::JSEventListener::~JSEventListener):
(KJS::JSLazyEventListener::parseCode):
* bindings/js/kjs_window.cpp:
(KJS::WindowPrivate::WindowPrivate):
(KJS::Window::Window):
(KJS::Window::~Window):
(KJS::Window::location):
(KJS::Window::selection):
(KJS::Window::locationbar):
(KJS::Window::menubar):
(KJS::Window::personalbar):
(KJS::Window::statusbar):
(KJS::Window::toolbar):
(KJS::Window::scrollbars):
(KJS::Window::mark):
(KJS::Window::getValueProperty):
(KJS::Window::findJSEventListener):
(KJS::Window::findJSUnprotectedEventListener):
(KJS::Window::clearHelperObjectProperties):
(KJS::Window::clear):
(KJS::Window::setCurrentEvent):
(KJS::Window::setReturnValueSlot):
(KJS::Window::clearAllTimeouts):
(KJS::Window::installTimeout):
(KJS::Window::pauseTimeouts):
(KJS::Window::resumeTimeouts):
(KJS::Window::clearTimeout):
(KJS::Window::timerFired):
(KJS::Window::disconnectFrame):
(KJS::Window::jsEventListeners):
(KJS::Window::jsHTMLEventListeners):
(KJS::Window::jsUnprotectedEventListeners):
(KJS::Window::jsUnprotectedHTMLEventListeners):
* bindings/js/kjs_window.h:
2007-04-22 David Hyatt <hyatt@apple.com>
Fix 1% regression on the PLT. Make sure roundToDevicePixels does no
work when no scale is in effect.
Reviewed by mjs
2007-04-22 Darin Adler <darin@apple.com>
Reviewed by Oliver.
- fix small things noticed while looking into a font subsitution bug
* platform/Font.h: (WebCore::Font::operator==): Corrected a misleading comment.
* platform/Font.cpp:
(WebCore::Font::Font): Initialize m_pageZero to 0 in the empty constructor instead
of leaving it uninitialized. Initialize m_fontList for tighter code. Remove unneeded
initialization of RefPtr members to 0. Changed the copy constructor to use initialization
for tighter code.
(WebCore::Font::operator=): Sorted to match the order from the header and the copy
constructor, and removed the uneeded self-assignment check.
2007-04-22 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=5196
<rdar://problem/4537384> input type=file fields with style=display:none do not post
their values (5196)
- fix http://bugs.webkit.org/show_bug.cgi?id=8248
Can not clear file input field
* manual-tests/clear-input-file.html: Added.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::appendFormData): Remove check that prevents submission of
form data when there is no renderer or the renderer is invisible. While well-intentioned,
the rule does not match the behavior of other web browsers.
(WebCore::HTMLInputElement::setValue): Instead of disallowing all value changes for file
type, allow changes to the empty string.
(WebCore::HTMLInputElement::storesValueSeparateFromAttribute): Made file type return true
for this. 1) The file type does store its value separate from the value attribute.
2) The code in setInputType() should do the right thing given this new value, according to
my inspection of the code. 3) The code in both reset() and setValue() will work properly
if this is true, which was the motivation for changing it.
* platform/FileChooser.h: Added a clear function.
* platform/FileChooser.cpp: (WebCore::FileChooser::clear): Clear the filename and the icon.
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::valueChanged): Used a local variable to make the code
a little bit more readable (and match the change below).
(WebCore::RenderFileUploadControl::updateFromElement): Used local variables a bit more in
the old code. Added code that will call clear on the FileChooser and repaint if the DOM
element has an empty value and the FileChooser does not.
2007-04-22 Grace Kloba <klobag@gmail.com>
Reviewed by Hyatt.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12279
Implemented two pass loading. Enabled by WTF_USE_LOW_BANDWIDTH_DISPLAY flag.
* dom/Document.cpp:
(WebCore::Document::Document): initialize member variable m_inLowBandwidthDisplay
* dom/Document.h:
(WebCore::Document::haveStylesheetsLoaded): while in low bandwidth display mode, ignore pending style sheets
(WebCore::Document::setDocLoader):
(WebCore::Document::inLowBandwidthDisplay):
(WebCore::Document::setLowBandwidthDisplay):
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::scriptHandler): while in low bandwidth display mode, don't execute JavaScript
* loader/Cache.cpp:
(WebCore::Cache::requestResource): while in low bandwidth display mode, don't let style sheet and JavaScript block
* loader/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::checkNotify): add notifyFinished() as client may need "this" pointer
* loader/DocLoader.h:
(WebCore::DocLoader::replaceDocument):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader):
(WebCore::FrameLoader::requestFrame): while in low bandwidth display mode, don't load sub-frame
(WebCore::FrameLoader::stopLoading):
(WebCore::FrameLoader::begin): set to low bandwidth display mode if the top frame is HTML document
(WebCore::FrameLoader::write):
(WebCore::FrameLoader::endIfNotLoading):
(WebCore::FrameLoader::checkCompleted): while in low bandwidth display mode, don't set complete
(WebCore::FrameLoader::requestObject): while in low bandwidth display mode, don't care Object
(WebCore::FrameLoader::addLowBandwidthDisplayRequest):
(WebCore::FrameLoader::removeAllLowbandwidthDisplayRequests):
(WebCore::FrameLoader::notifyFinished):
(WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
* loader/FrameLoader.h:
(WebCore::FrameLoader::FrameLoader::needToSwitchOutLowBandwidthDisplay):
(WebCore::FrameLoader::FrameLoader::setUseLowBandwidthDisplay):
(WebCore::FrameLoader::FrameLoader::useLowBandwidthDisplay):
2007-04-22 Darin Adler <darin@apple.com>
Reviewed by Tim Hatcher.
- fix http://bugs.webkit.org/show_bug.cgi?id=13439
4 problems found in dashboard-region parser and serializer
Test: fast/css/dashboard-region-parser.html
* css/CSSPrimitiveValue.cpp: (WebCore::CSSPrimitiveValue::cssText):
Fix code that overwrote each additional region with the previous one to
instead build a space-separated list. Check for the case of an identifier
that's invalid, since that's (accidentally) how we represent a region
value that doesn't have explicit top/right/bottom/left values. The old code
would end up writing out four spaces after the region type.
* css/cssparser.cpp: (WebCore::CSSParser::parseDashboardRegions):
Fail to parse if there is something after the "none" identifier or after
the arguments inside the dashboard-region "function". Also replaced code
that produced a identifier with CSS_VAL_INVALID in a roundabout way with
code that does it explicitly.
2007-04-22 Darin Adler <darin@apple.com>
Reviewed by Adele.
- support for fix for <rdar://problem/5100240> REGRESSION: Control-O broken
* dom/KeyboardEvent.h: Include a vector of command names in the KeypressCommand object
instead of a single command name.
2007-04-22 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=13115
REGRESSION: 1000% performance regression in DOM access by index, which was already slow
* dom/NodeList.h: Move cached data into a separate class, so it can be shared.
* dom/Node.h: Replace the set of registered NodeLists with a struct that also
contains a shared NodeList::Caches (so the size of Node doesn't change).
* dom/NodeList.cpp:
(WebCore::NodeList::NodeList):
(WebCore::NodeList::~NodeList):
(WebCore::NodeList::recursiveLength):
(WebCore::NodeList::itemForwardsFromCurrent):
(WebCore::NodeList::itemBackwardsFromCurrent):
(WebCore::NodeList::recursiveItem):
(WebCore::NodeList::itemWithName):
(WebCore::NodeList::rootNodeChildrenChanged):
(WebCore::NodeList::NodeListInfo::NodeListInfo):
(WebCore::NodeList::NodeListInfo::reset):
* dom/ChildNodeList.cpp:
(WebCore::ChildNodeList::ChildNodeList):
(WebCore::ChildNodeList::length):
(WebCore::ChildNodeList::item):
(WebCore::ChildNodeList::nodeMatches):
* dom/ChildNodeList.h:
* dom/Node.cpp:
(WebCore::Node::childNodes):
(WebCore::Node::registerNodeList):
(WebCore::Node::unregisterNodeList):
(WebCore::Node::notifyLocalNodeListsAttributeChanged):
(WebCore::Node::notifyLocalNodeListsChildrenChanged):
Adjust for the above changes.
2007-04-21 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13391
REGRESSION (r18819): Incomplete repaint of button text
Test: fast/repaint/control-clip.html
Ignore controls' lightweight clip in repaint rect computation for now.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeAbsoluteRepaintRect):
2007-04-21 Darin Adler <darin@apple.com>
Reviewed by Adam.
- fix <rdar://problem/4816343> :-khtml-drag CSS pseudo-class changed to :-webkit-drag, need alias
* css/CSSSelector.cpp: (WebCore::CSSSelector::extractPseudoType):
Since Apple documentation claims "-khtml-drag" works, we need to keep it working,
so add it back as an alias.
2007-04-21 Darin Adler <darin@apple.com>
Reviewed by Oliver.
- fix <rdar://problem/4782422> REGRESSION: -[stringByEvaluatingJavaScriptFromString]
returns an empty string instead of nil for non-string results
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
Added a call to nsStringNilIfEmpty to restore the old behavior. It might be nice to
distinguish the empty string from a non-string result, but there's no obvious way
to do that, and for compatibility it's probably best to just restore the old
behavior instead.
2007-04-21 David Hyatt <hyatt@apple.com>
Fix for bug 13432, determineFlowSpacing is O(n^2).
Reviewed by aroben
* rendering/InlineBox.cpp:
(WebCore::InlineBox::nextOnLineExists):
(WebCore::InlineBox::prevOnLineExists):
* rendering/InlineBox.h:
(WebCore::InlineBox::InlineBox):
2007-04-21 Lamar Goddard <lamargoddard@gmail.com>
Reviewed by Darin.
Fix for http://bugs.webkit.org/show_bug.cgi?id=5262
<rdar://problem/5018778>
XMLSerializer drops Namespace information
Updated WebCore::markup to output namespace information for elements/attributes whose namespace information
doesn't appear in its scope in the output.
Added test case: fast/dom/serialize-nodes.xhtml
* WebCore/editing/markup.cpp:
(WebCore::createMarkup(const Node*, ...)): Changed call to WebCore::markup to match parameters
(WebCore::markup): Changed recursive call to match tree structure, removed ASSERT and no longer needed includeSiblings parameter.
(WebCore::startMarkup): Added optional parameter to track namespaces in the current scope.
(WebCore::addNamespace): Function to add namespace information to markup.
(WebCore::shouldAddNamespaceAttr):
(WebCore::shouldAddNamespaceElem): Functions that test whether namespace information should be added for a given node.
* WebCore/dom/Document.idl:
(createElementNS):
(createAttributeNS):
(getElementsByTagNameNS): Added [ConvertNullToNullString] to namespaceURI parameter.
* WebCore/dom/Node.cpp:
(Node::getElementsByTagNameNS): removed test for namespaceURI being null as null can be a valid namespace.
2007-04-21 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=13300
Reproducible crash opening anekdot.ru
* html/HTMLParser.cpp:
(WebCore::HTMLParser::HTMLParser):
(WebCore::HTMLParser::getNode):
(WebCore::HTMLParser::handleIsindex):
* html/HTMLParser.h:
Made HTMLParser::form a RefPtr, and renamed it to m_currentFormElement.
Made m_currentMapElement a RefPtr.
2007-04-21 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13353
REGRESSION (r20754-20766): Textarea does not resize when scrollbar is present
Test: fast/overflow/hit-test-overflow-controls.html
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseMoveEvent): Avoid activating scrollbars
during layer resize.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::isPointInOverflowControl): Renamed isPointInScrollbar
to this, to reflect that it returns true for points in the resize corner
as well. Changed it to call the layer to do the actual work.
(WebCore::RenderBlock::nodeAtPoint): Updated for the above rename.
* rendering/RenderBlock.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::horizontalScrollbarWidget): Fixed typo in this function's
name (it was horizontaScrollbarWidget).
(WebCore::RenderLayer::hitTestOverflowControls): Added. Returns whether the
hit point is in one of the scrollbars or the resize corner, and updates the
platform scrollbar in the hit test result if a scrollbar was hit.
* rendering/RenderLayer.h:
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::isPointInOverflowControl): Rename.
* rendering/RenderListBox.h:
2007-04-21 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13417
Repro crash when the first argument to getMatchedCSSRules is not an element
Test: fast/dom/Window/getMatchedCSSRules-null-crash.html
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::styleRulesForElement): Added null check.
2007-04-21 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13416
Repro crash after referencing the user stylesheet from JavaScript
No test included because DumpRenderTree does not support setting the user stylesheet.
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::CSSStyleSelector):
(WebCore::CSSStyleSelector::~CSSStyleSelector):
* css/cssstyleselector.h: Made m_userSheet a RefPtr.
2007-04-21 MorganL <morganl.webkit@yahoo.com>
Reviewed by Adam.
NPObject should be forward declared using 'struct' instead of 'class'
* page/Frame.h:
2007-04-21 Alp Toker <alp@atoker.com>
Gdk build fix.
* platform/gdk/FontPlatformDataGdk.cpp:
(WebCore::FontPlatformData::FontPlatformData): Use the correct casts.
2007-04-20 Brady Eidson <beidson@apple.com>
Reviewed by Oliver (Black Sheep)
<rdar://problem/3559794>
[WebView setMaintainsBackForwardList:] doesn't actually flush out the current page caches
* WebCore.exp:
* history/BackForwardList.cpp:
(WebCore::BackForwardList::BackForwardList): Set the flag to true by default
(WebCore::BackForwardList::addItem): Check the flag and bail if its false
(WebCore::BackForwardList::setCapacity): More correct if it set the m_current to
NoCurrentItemIndex if we're setting capacity to 0
(WebCore::BackForwardList::enabled):
(WebCore::BackForwardList::setEnabled): If we're disabling, cycle capacity to 0 and
back to flush things out
* history/BackForwardList.h: Add enabled(), setEnabled(bool), and m_enabled
2007-04-20 David Hyatt <hyatt@apple.com>
Bug 13424, firstLineStyle and verticalPositionHint together take
33% of the time on the new tag nesting PLT. Don't waste time even
looking for first-line styles if no stylesheet used them.
Reviewed by beth
* css/CSSGrammar.y:
* dom/Document.cpp:
(WebCore::Document::Document):
* dom/Document.h:
(WebCore::Document::usesFirstLineRules):
(WebCore::Document::setUsesFirstLineRules):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::verticalPositionHint):
(WebCore::RenderObject::firstLineStyle):
2007-04-20 Peter Kasting <pkasting@google.com>
Reviewed by Oliver.
- fix http://bugs.webkit.org/show_bug.cgi?id=13420
* platform/TextEncodingRegistry.cpp:
(WebCore::addToTextEncodingNameMap): Change a pointer comparison to a
strcmp(), since the strings here are not necessarily
pointer-equivalent.
2007-04-20 Darin Adler <darin@apple.com>
Reviewed by Geoff Garen and John Sullivan.
- fix <rdar://problem/4671964> document property on <iframe> elements causes problems for SAP application
Test: fast/dom/iframe-document.html
* bindings/js/kjs_html.h: Removed IFrameDocument.
* bindings/js/kjs_html.cpp: (KJS::JSHTMLElement::iFrameGetter): Ditto.
2007-04-19 Alp Toker <alp@atoker.com>
Reviewed by Mark.
* platform/gdk/FontGdk.cpp:
(WebCore::Font::drawGlyphs):
* platform/gdk/FontPlatformDataGdk.cpp:
(WebCore::FontPlatformData::FontPlatformData): Fix font support in Gdk port.
2007-04-19 David Hyatt <hyatt@apple.com>
Fix for bug 13208, implement word-break. This patch produces a partial
implementation of word-break. word-break: break-all is implemented. In
addition, a custom value, word-break: break-word is added that is a hybrid
of word-wrap: break-word and word-break: break-all (and more useful than
either).
Reviewed by beth
Added fast/text/word-break.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSPropertyNames.in:
* css/CSSValueKeywords.in:
* css/cssparser.cpp:
(WebCore::CSSParser::parseValue):
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
* rendering/RenderStyle.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):
(WebCore::RenderStyle::diff):
* rendering/RenderStyle.h:
(WebCore::):
(WebCore::RenderStyle::breakWords):
(WebCore::RenderStyle::wordBreak):
(WebCore::RenderStyle::setWordBreak):
(WebCore::RenderStyle::initialWordBreak):
(WebCore::RenderStyle::initialWordWrap):
* rendering/RenderText.cpp:
(WebCore::RenderText::calcMinMaxWidthInternal):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::createInnerTextStyle):
(WebCore::RenderTextControl::calcHeight):
* rendering/bidi.cpp:
(WebCore::RenderBlock::findNextLineBreak):
2007-04-20 Mark Rowe <mrowe@apple.com>
Qt build fix for FreeBSD.
* WebCore.pro: FreeBSD needs HAVE_PTHREAD_NP_H defined.
2007-04-19 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13403
REGRESSION (r18875-r18899): Can no longer type into search form field after searching and then clicking "back"
The problem was that the page was loaded from the page cache with a subtree
marked for layout and the layout timer stopped (having been stopped when the
page entered the page cache). FrameView::needsLayout() was returning false
which prevented the pending layout from completing.
* page/FrameView.cpp:
(WebCore::FrameView::clear): Removed the call to stop the layout timer, since
reset() does that already.
(WebCore::FrameView::needsLayout): Changed to return true if there's a subtree
pending relayout.
2007-04-19 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/5144139>
On delete, <BR> inserted into non-editable ToDo <TABLE> element
The fact that the br was being inserted at a bad position
(a non-editable position and one inside a table instead of
before it) was fixed in the previous checkin. This change
stops us from inserting a br at all, to fix the bug.
After a delete, we need a placeholder if the selection
started at the start of a paragraph and ended at the end
of a paragraph. But not if it starts just before a table
and ends inside that table. We need placeholders to hold
open emptied out table cells, but that is handled separately.
Also, moved lineBreakExistsAtPosition to htmlediting.cpp
so that it can be used in more places.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::removePlaceholderAt):
(WebCore::CompositeEditCommand::moveParagraphs):
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::doApply):
* editing/InsertLineBreakCommand.cpp:
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply):
* editing/htmlediting.cpp:
(WebCore::lineBreakExistsAtPosition):
* editing/htmlediting.h:
2007-04-19 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
Fixes some issues found while investigating:
<rdar://problem/5144139> On delete, <BR> inserted into non-editable ToDo <TABLE> element
Move the code to handle inserting content before/after
tables for [table, 0/max] to insertNodeAt, so that
all insertions get it, not just some.
Changed insertNodeAt to take in a position instead of a
node and an offset.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::insertNodeAt):
(WebCore::CompositeEditCommand::insertNodeAtTabSpanPosition):
(WebCore::CompositeEditCommand::insertBlockPlaceholder):
(WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
If paragrahStart.node() is an atomic node, insertNodeAt can handle
insertion, we don't need to special case it.
(WebCore::CompositeEditCommand::moveParagraphs):
(WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
* editing/CompositeEditCommand.h:
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::mergeParagraphs):
(WebCore::DeleteSelectionCommand::doApply):
* editing/FormatBlockCommand.cpp:
(WebCore::FormatBlockCommand::doApply):
* editing/IndentOutdentCommand.cpp:
(WebCore::IndentOutdentCommand::indentRegion):
(WebCore::IndentOutdentCommand::outdentParagraph):
* editing/InsertLineBreakCommand.cpp:
(WebCore::InsertLineBreakCommand::doApply):
* editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::doApply):
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply):
* editing/InsertTextCommand.cpp:
(WebCore::InsertTextCommand::prepareForTextInsertion): Removed some
dead code that handled insertion at non-editable positions.
(WebCore::InsertTextCommand::insertTab):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::doApply):
(WebCore::ReplaceSelectionCommand::insertNodeAtAndUpdateNodesInserted):
* editing/ReplaceSelectionCommand.h:
2007-04-19 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13336
REGRESSION (r20646): editing/execCommand/hilitecolor.html crashes under guardMalloc
Avoid calling selectionRect() and selectionGapRects() on a renderer that needs
layout.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::selectionGapRects):
* rendering/RenderBlock.h:
(WebCore::RenderBlock::BlockSelectionInfo::BlockSelectionInfo):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::selectionRect):
* rendering/RenderObject.h:
(WebCore::RenderObject::SelectionInfo::SelectionInfo):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::selectionRect):
* rendering/RenderText.cpp:
(WebCore::RenderText::selectionRect):
2007-04-19 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5142012>
GoogleDocs: Crash at WebCore::Range::startPosition() when creating a list from a link
List creation uses moveParagraphs to push content into list items.
Its fragment creation (using createMarkup) incorrectly uses regular
spaces instead of nbsps for spaces that were rendered (11475), which
causes spaces to be collapsed during the move operation. This results
in a call to rangeFromLocationAndLength with a location past the end
of the document. We use the result from rangeFromLocationAndLength
(null) and crash.
Also when moveParagraphs tries to push content into a list item surrounded
by an anchor, it fails because positionAvoidingSpecialElementBoundary avoids
the anchor, which also avoids the list item. This was fixed by pushing
down anchors before avoiding them.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::pushAnchorElementDown): Remove the
old anchor after we push down clones of it, this is what callers
expect.
(WebCore::CompositeEditCommand::pushPartiallySelectedAnchorElementsDown):
Call the new enclosingAnchorElement, that takes in a position instead
of a node.
(WebCore::CompositeEditCommand::moveParagraphs): If spaces collapsed
as a result of the move, rangeFromLocationAndLength can return null,
bail and don't try to preserve the selection in that case.
(WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
Moved from htmlediting.cpp.
Make sure anchors are pushed down before avoiding them so that we don't
also avoid structural elements like lists and blocks.
* editing/CompositeEditCommand.h:
* editing/TypingCommand.cpp: Moved isFirst/LastPositionBefore/AfterTable
to htmlediting.cpp.
* editing/htmlediting.cpp:
Moved positionAvoidingSpecialElementBoundary so that it could call
pushAnchorElementDown.
(WebCore::isFirstPositionAfterTable): Moved here.
(WebCore::isLastPositionBeforeTable): Moved here.
(WebCore::enclosingAnchorElement): Moved here.
(WebCore::enclosingListChild): Removed an extraneous space.
* editing/htmlediting.h:
2007-04-19 Beth Dakin <bdakin@apple.com>
Reviewed by Hyatt.
Fix for <rdar://problem/5120889> Sized table cells w/borders not
drawn to correct size
When table cells have children with %-height, the cells were
incorrectly shrinking down to be the size of the child. This
exposed another problem with replaced children and sizing.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::calcReplacedHeightUsing): The exposed problem.
Subtract our borders and padding in the auto or percent table cell
containing block case.
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::layoutRows): When our children can
flex, do not always set the cellTopExtra and cellBottomExtra to 0!
That is bad! We should do the same as the non-flex case.
2007-04-19 Anders Carlsson <andersca@apple.com>
Reviewed by Geoff.
http://bugs.webkit.org/show_bug.cgi?id=13333
Support naturalWidth/naturalHeight on image elements
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::naturalWidth):
(WebCore::HTMLImageElement::naturalHeight):
* html/HTMLImageElement.h:
* html/HTMLImageElement.idl:
2007-04-19 Patti Hoa <patti@apple.com>
Reviewed by Darin.
- review suggestion for rdar://5145011 code change
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject value]):
return early if value attribute is not supported by the attachment view.
2007-04-19 Patti Hoa <patti@apple.com>
Reviewed by Darin.
<rdar://problem/5145011> Allow attachment view of web object to handle accessibility actions
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject value]):
Only allow asking the attachmentView for value if attachmentView supports this value attribute
(-[WebCoreAXObject title]):
(-[WebCoreAXObject accessibilityAttributeNames]):
Should not return that long list of unrelated attributes for attachmentView.
(-[WebCoreAXObject accessibilityActionNames]):
(-[WebCoreAXObject accessibilityPerformAction:]):
Allow attachmentView a chance to handle actions.
(-[WebCoreAXObject accessibilityParameterizedAttributeNames]):
Should not return that long list of unrelated attributes for attachmentView.
2007-04-19 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13291
REGRESSION (r19595): WebViewDidBeginEditingNotification not posted when focusing with the mouse
Covered by editing tests.
* dom/Document.cpp:
(WebCore::Document::setFocusedNode): Moved the call to Editor::didBeginEditing()
back into here.
* dom/Element.cpp:
(WebCore::Element::updateFocusAppearance): Removed the call to didBeginEditing().
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateFocusAppearance): Ditto.
2007-04-19 Sam Weinig <sam@webkit.org>
Reviewed by Darin.
- Patch for http://bugs.webkit.org/show_bug.cgi?id=12249
FCKeditor: <hr>, <ul> and <ol> have id="undefined"
Convert undefined and null to a null string for third argument of
execCommand();
Test: editing/execCommand/arguments-combinations.html
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/kjs_binding.cpp:
(KJS::valueToStringWithUndefinedOrNullCheck):
* bindings/js/kjs_binding.h:
* bindings/scripts/CodeGeneratorJS.pm:
* dom/Document.idl:
2007-04-19 Alp Toker <alp@atoker.com>
Reviewed by hyatt.
* WebCoreSources.bkl: Remove obsolete source file from build.
2007-04-18 Alp Toker <alp@atoker.com>
Gdk build fix. Reviewed by Sam Weinig.
Track changes to make GdkLauncher work again.
* WebCoreSources.bkl:
* platform/gdk/ChromeClientGdk.h:
* platform/gdk/TemporaryLinkStubs.cpp:
(ChromeClientGdk::createWindow):
(ChromeClientGdk::createModalDialog):
(Editor::markBadGrammar):
2007-04-17 Brady Eidson <beidson@apple.com>
Reviewed by Tim
<rdar://problem/5008925>
Expose the NSURLConnection delegate willCacheResponse API to WebResourceLoadDelegate
* WebCore.xcodeproj/project.pbxproj: Added ResourceLoaderMac.mm
* loader/FrameLoaderClient.h: Add the willCacheResponse SPI for WebKit to implement
* loader/ResourceLoader.h:
* loader/mac/ResourceLoaderMac.mm: Added.
(WebCore::ResourceLoader::willCacheResponse): Return the new cachedResponse from the client
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::willCacheResponse): Stub
* platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::willCacheResponse): Return the new cachedResponse from the client
* platform/network/mac/ResourceHandleMac.mm:
(-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]): Call to get the new
cachedURLResponse before calling for the cache policy
2007-04-18 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13375
REGRESSION (r20901): failing fast/overflow/scrollRevealButton.html
* dom/Document.cpp: (WebCore::Document::updateLayout):
If we have a parent frame, update its layout too.
2007-04-18 Alp Toker <alp@atoker.com>
Gdk build fix. Reviewed by Mark.
* loader/gdk/FrameLoaderClientGdk.cpp:
(WebCore::FrameLoaderClientGdk::loadedFromCachedPage):
(WebCore::FrameLoaderClientGdk::setDocumentViewFromCachedPage):
(WebCore::FrameLoaderClientGdk::saveDocumentViewToCachedPage):
* loader/gdk/FrameLoaderClientGdk.h:
* platform/gdk/TemporaryLinkStubs.cpp:
(CachedPage::close): Track PageCache to CachedPage refactoring.
2007-04-17 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13369
REGRESSION (r13366): Invisible table cell background is painted
Test: fast/table/invisible-cell-background.html
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::paintBackgroundsBehindCell): Don't paint any
background if the cell is not visible. This behavior matches WinIE and Opera.
2007-04-17 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/5119244>
Crash when indenting a selected ToDo
indentRegion() was using the old (incorrect) editable root
getter, which returned null for a valid, editable position,
causing the crash.
* editing/IndentOutdentCommand.cpp:
(WebCore::IndentOutdentCommand::indentRegion):
The editable root for a position is editableRootForPosition(p),
not p.node()->rootEditableElement(), because of VisiblePositions
before/after tables, replaced elements and others.
2007-04-17 Justin Garcia <justin.garcia@apple.com>
Reviewed by hyatt
<rdar://problem/5138441>
GoogleDocs: Indented text looks like text that's been Quoted
GoogleDocs uses FormatBlock, blockquotes and a style rule
for blockquotes to implement a "Quote Text" feature. Styles
intended only for those blockquotes were added to the
blockquotes that we use for indenting.
* css/html4.css: Removed the webkit-indent-blockquote class rule.
* editing/IndentOutdentCommand.cpp:
(WebCore::createIndentBlockquoteElement): Use custom margins
and turn off border and padding to override author rules for
blockquotes.
2007-04-17 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5136770>
Gmail Editor: Hang when turning a particular multi-line selection into a list
When InsertListCommand pushes content into list items,
it creates an empty list item and then calls moveParagraphs.
But moveParagraphs' selection preservation code fails when
it encounters empty list items (list items w/o placeholders).
This causes InsertListCommand to lose track of where it has
already been performed, which causes the hang.
* editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::doApply): Use brs to hold open
empty list items.
2007-04-17 Darin Adler <darin@apple.com>
Oops, rolled that last change out. I'll redo it again later after making
som additional refinments.
2007-04-17 Darin Adler <darin@apple.com>
Reviewed by Brady.
- a few baby steps to try to make lockHistory and userGesture less confusing
* page/FrameLoadRequest.h:
(WebCore::FrameLoadRequest::FrameLoadRequest): Add initialization of m_isUserGesture
to true.
(WebCore::FrameLoadRequest::shouldLockHistory): Renamed from lockHistory to avoid having
a getter that sounds like a verb phrase.
(WebCore::FrameLoadRequest::setShouldLockHistory): Ditto.
(WebCore::FrameLoadRequest::isUserGesture): Added.
(WebCore::FrameLoadRequest::setIsUserGesture): Ditto.
* loader/FrameLoader.h: Remove userGesture parameter from load that takes
FrameLoadRequest. Remove default values for lockHistory and userGesture parameters,
since that just makes it more likely we'll forget to pass them in. Remove one of
the overloads of urlSelected, since it's only called one place.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::createWindow): Remove userGesture parameter, relying on
the true default in FrameLoadRequest.
(WebCore::FrameLoader::urlSelected): Call setShouldLockHistory and setIsUserGesture
on the FrameLoadRequest, and call load directly; also eliminate the other urlSelected
overload since this was the only place it was called.
(WebCore::FrameLoader::load): Remove userGesture parameter, relying on the true
default in FrameLoadRequest. In the other overload, clean up logic to eliminate the
argsReferrer variable and get rid of the userGesture parameter, using the value from
FrameLoadRequest.
(WebCore::FrameLoader::submitForm): Remove userGesture parameter, relying on the value
in the FrameLoadRequest. This actually changes behavior.
* bindings/js/kjs_html.cpp: (KJS::JSHTMLDocument::putValueProperty): Pass
false for userGesture explicitly instead of relying on default argument.
* page/ContextMenuController.cpp: (WebCore::ContextMenuController::contextMenuItemSelected):
Remove userGesture parameter, relying on the true default in FrameLoadRequest.
2007-04-16 David Kilzer <ddkilzer@webkit.org>
Reviewed by NOBODY (fixed misspelling).
* manual-tests/containing-block-position-chage.html: Removed.
* manual-tests/containing-block-position-change.html: Added.
2007-04-16 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5134759>
GMail Editor: Hang after pasting underlined text multiple times
The moveParagraphs call that ReplaceSelectionCommand
performs must receive only inline content from createMarkup,
or else it will result in another call to moveParagraphs
when it performs the move, resulting in infinite recursion.
* editing/markup.cpp:
(WebCore::startMarkup): We were only converting a block to
an inline if it had an inline style declaration or styles
coming from matched rules. Cleaned up this code a bit by
handling an element's style separately from its other
attributes.
2007-04-16 Darin Adler <darin@apple.com>
- get layout tests going again
* page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry):
Replace assertion with a runtime check. We can consider changing it back to
an assertion some day, but it's not important.
2007-04-16 Darin Adler <darin@apple.com>
Reviewed by John Sullivan.
- fix http://bugs.webkit.org/show_bug.cgi?id=13303
<rdar://problem/5126341> REGRESSION: controls in a background Safari window
maintain active appearance if the address bar has focus (13303)
- fix a related problem where elements could look focused in non-active windows
- simplify secure keyboard entry logic in Frame::setIsActive
* WebCore.exp: Add two new symbols for use by WebKit.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::dispatchFocusEvent): Call setUseSecureKeyboardEntryWhenActive
rather than calling setSecureKeyboardEntry directly -- does nothing if the frame is not active.
(WebCore::HTMLInputElement::dispatchBlurEvent): Ditto.
* page/Frame.cpp:
(WebCore::Frame::setUseSecureKeyboardEntryWhenActive): Added. Calls
setUseSecureKeyboardEntry only if the frame is active, but also stores away the state,
so that the setIsActive function doesn't have to recompute it.
(WebCore::Frame::setIsActive): Rewrote all the comments in the function. Removed the code
to manage control tints, which are not based on the whether the frame is active but rather
on AppKit's concept of whether the window should have "key appearance". Simplified the
logic about when to call setUseSecureKeyboardEntry by using the value of
m_useSecureKeyboardEntryWhenActive.
(WebCore::FramePrivate::FramePrivate): Initialize m_useSecureKeyboardEntryWhenActive.
* page/Frame.h: Made setSecureKeyboardEntry private and renamed it to
setUseSecureKeyboardEntry, removed isSecureKeyboardEntry, and
added a public setUseSecureKeyboardEntryWhenActive.
* page/FramePrivate.h: Added m_useSecureKeyboardEntryWhenActive.
* page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry): Added an assertion,
and removed isSecureKeyboardEntry().
* page/FrameView.h: Added updateControlTints.
* page/FrameView.cpp: (WebCore::FrameView::updateControlTints): Added. Code was moved
here from setIsActive for two reasons: (1) it makes more sense in the view class, and
(2) it needs to be called at the appropriate time for AppKit, not when active changes.
* rendering/RenderTheme.cpp: (WebCore::RenderTheme::isFocused): Added an isActive
check here to match the logic in the implementation of the CSS pseudo-state.
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::updateFocusedState): Use the isFocused function instead of
repeating the logic here. Removed the "need to add a key window test here" comment.
(WebCore::RenderThemeMac::controlSupportsTints): Added a comment about the NSCell
SPI that's related to the _windowChangedKeyState method we now use in WebHTMLView.
2007-04-16 Darin Adler <darin@apple.com>
Reviewed by John Sullivan.
- fix http://bugs.webkit.org/show_bug.cgi?id=13227
StringImpl::isLower incorrectly assumes islower returns 1 (it can return any non-0)
* platform/StringImpl.cpp:
(WebCore::StringImpl::isLower): Based on test application results, changed to use &&
instead of trying to use & to avoid branches. Use U16_NEXT so we can handle characters
outside the BMP. Improved comments.
(WebCore::StringImpl::lower): Improved comments.
(WebCore::equalIgnoringCase): Changed to use && instead of trying to use & to avoid
branches. Improved comments. Added an assertion about the assumption we're
making that characters in the char* are all ASCII.
2007-04-13 David Kilzer <ddkilzer@webkit.org>
Patch and review by hyatt. Testing and landing by ddkilzer.
<rdar://problem/5078866>
tables don't inherit text-align (in strict mode; they're not supposed to in quirks mode)
Test: fast/css/table-text-align-quirk.html
fast/css/table-text-align-strict.html
Previous commit (r20731) removed the wrong property from WebCore/css/html4.css. However,
when the correct property was removed, it caused tables to inherit alignment properties
from tags like <center> and <div align="center">. This is fixed in
WebCore::CSSStyleSelector::adjustRenderStyle() by special-casing tables to reset the
text-align property.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForTextAlign): Renamed KHTML_CENTER, KHTML_LEFT and KHTML_RIGHT to
WEBKIT_CENTER, WEBKIT_LEFT and WEBKIT_RIGHT.
* css/cssparser.cpp:
(WebCore::CSSParser::parseValue): Ditto.
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::adjustRenderStyle): Tables should not support -webkit-center,
-webkit-left or -webkit-right values for text-align, so reset them back to auto.
* css/html4.css: Removed "text-align: -webkit-auto;" property from tables selector. It
was previously added to css/quirks.css in r20731.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::determineHorizontalPosition): Renamed KHTML_* to WEBKIT_*.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::calcHorizontalMargins): Ditto.
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::caretRect): Ditto.
* rendering/RenderStyle.h: Ditto.
(WebCore::):
* rendering/bidi.cpp:
(WebCore::RenderBlock::computeHorizontalPositionsForLine): Ditto.
2007-04-12 Brady Eidson <beidson@apple.com>
Reviewed by Black Sheep
<rdar://problem/4664154> and http://bugs.webkit.org/show_bug.cgi?id=3546
When you click on a link that opens in a new window from within gmail, they first create a new window
with an empty URL, then immediately document.write() into the window to schedule a redirect.
Since the initial page doesn't have a URL associated with it, a history item never gets created. The
reasonable solution? To actually create the history item after the redirect (in updateHistoryForInternalLoad)
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::addHistoryForCurrentLocation): Updates global and B/F history with a new history item
(WebCore::FrameLoader::updateHistoryForStandardLoad): Call addHistoryForCurrentLocation
(WebCore::FrameLoader::updateHistoryForInternalLoad): Call addHistoryForCurrentLocation if there is not already
a current history item
* loader/FrameLoader.h:
2007-04-12 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
This fixes <rdar://problem/5060766> -- Frameset with
an empty frame crashes due to null document. Debug
builds hit the frame->document() assertion in
EventHandler::prepareMouseEvent
This null check seems necessary now, having run through
all the logic on the path to this crash it appears that
we can't avoid this null check.
* page/EventHandler.cpp:
(WebCore::EventHandler::updateDragAndDrop):
2007-04-12 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5131716>
Clicking just before a ToDo doesn't put the caret before the ToDo
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::positionForCoordinates):
Consider clicks inside the blocks padding, instead of
incorrectly sending them to the position before the block.
2007-04-12 John Sullivan <sullivan@apple.com>
Reviewed by Anders
- WebCore part of fix for:
<rdar://problem/5128697> REGRESSION: At least one PDF context menu item isn't appearing on Leopard
* platform/ContextMenuItem.h:
(WebCore::):
add two PDF-related context menu items to enum to keep it in sync with WebKit
* platform/ContextMenu.cpp:
(WebCore::ContextMenu::checkOrEnableIfNeeded):
add the new context menu items to the do-nothing case of a big switch statement
2007-04-12 Simon Hausmann <hausmann@kde.org>
Reviewed by Zack.
Fixed drawing of justified text in the Qt port.
* platform/qt/FontQt.cpp:
(Font::drawGlyphs):
2007-04-11 Oliver Hunt <oliver@apple.com>
Reviewed by Maciej.
Adding RetainPtr to the many global obj-c pointers we use in
C/C++ methods. This is necessary to prevent GC from collecting
globals we want to keep around.
We use RetainPtr in obj-c++ and c++ files, and CFRetain/Release in pure
obj-c.
Also made the Pasteboard::m_pasteboard a RetainPtr although it
shouldn't be necessary as the only NSPasteboard instances that
should ever be inserted are the system clipboard and dragging
pasteboard. Neither of which should ever be collected.
* page/mac/WebCoreFrameBridge.mm:
(_getPreSmartSet):
(_getPostSmartSet):
* platform/Pasteboard.h:
* platform/graphics/mac/ColorMac.mm:
(WebCore::nsColor):
* platform/graphics/mac/GraphicsContextMac.mm:
(WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
* platform/mac/FontDataMac.mm:
(WebCore::webFallbackFontFamily):
* platform/mac/PasteboardMac.mm:
(WebCore::writableTypesForURL):
(WebCore::writableTypesForImage):
(WebCore::Pasteboard::clear):
(WebCore::Pasteboard::writeSelection):
(WebCore::Pasteboard::writeURL):
(WebCore::Pasteboard::writeFileWrapperAsRTFDAttachment):
(WebCore::Pasteboard::writeImage):
(WebCore::Pasteboard::canSmartReplace):
(WebCore::Pasteboard::plainText):
(WebCore::Pasteboard::documentFragment):
2007-04-11 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=11362
Native popup with size="1" wraps options
Test: fast/forms/menulist-option-wrap.html
* css/html4.css: Added white-space declaration for select[size="0"] and
select[size="1"]. Added border-radius declaration for select.
2007-04-11 MorganL <morganl.webkit@yahoo.com>
Reviewed by Maciej.
Add a Frame pointer to ChromeClient methods:
http://bugs.webkit.org/show_bug.cgi?id=13127
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::createWindow):
* page/Chrome.cpp:
(WebCore::Chrome::createWindow):
(WebCore::Chrome::createModalDialog):
* page/Chrome.h:
* page/ChromeClient.h:
* page/ContextMenuController.cpp:
(WebCore::openNewWindow):
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyChromeClient::createWindow):
(WebCore::SVGEmptyChromeClient::createModalDialog):
2007-04-11 Brady Eidson <beidson@apple.com>
Reviewed by Ada
<rdar://problem/5080987> - Crash in DocumentLoader::frameLoader() const
This was free nil checking lost during the ObjC -> C++ conversion
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::checkLoadCompleteForThisFrame): Null check the DocumentLoader
2007-04-11 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/5126166>
Deleting selection starting at before ToDo checkbox to end of line, inserts a BR in the subsequent ToDo
If a selection ends in a table cell, we shouldn't perform
a merge after deleting that selection. We have code in
place to prevent those merges, but it failed here.
It fails because the end of the selection was [tableCell, 0],
(normally not a valid VisiblePosition, but valid here
because the table cell is empty). We prevent the merge
if the node of the position at the end of the selection
has an enclosingTableCell. Even though [tableCell, 0] has
an enclosing table cell, the node tableCell doesn't, so
the check fails.
Fixed this by changing enclosingTableCell to take in
a position, instead of a node. The other enclosing element
getters should be changed in this way as well.
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::initializePositionData):
Call the new enclosingTableCell.
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::shouldMerge): Ditto.
* editing/htmlediting.cpp:
(WebCore::enclosingTableCell): Take in a position instead
of a node.
* editing/htmlediting.h:
2007-04-12 Mark Rowe <mrowe@apple.com>
Qt build fix.
* WebCore.pro:
* editing/qt/EditorQt.cpp:
(WebCore::Editor::markBadGrammar):
* history/qt/CachedPageQt.cpp: Added.
(WebCore::CachedPage::close):
* history/qt/PageCacheQt.cpp: Removed.
2007-04-11 Brady Eidson <beidson@apple.com>
Reviewed by Antti
<rdar://problem/5125648> and http://bugs.webkit.org/show_bug.cgi?id=13326
Crash opening a link in a new window from Gmail
Problem here is that the currentHistoryItem in the new window is null. This *shouldn't* be the case,
and is the cause of a very long standing bug -
http://bugs.webkit.org/show_bug.cgi?id=3546 - Can't go back to first page in new window opened from gmail
For now, adding a null check prevents this crash and restores the original, long standing regression
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::updateHistoryForInternalLoad): NULL check
2007-04-11 Adam Roben <aroben@apple.com>
Reviewed by Anders.
Made image document copying more cross-platform.
All layout tests pass.
* editing/Editor.cpp:
(WebCore::imageNodeFromImageDocument): Added.
(WebCore::Editor::canCopy): Called imageNodeFromImageDocument.
(WebCore::Editor::copy): Ditto.
(WebCore::Editor::copyImage): Updated for changes to Pasteboard.
* platform/Pasteboard.h: Made writeImage more general, which allowed
getting rid of its second incarnation.
* platform/gdk/TemporaryLinkStubs.cpp:
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::writeImage): Collapsed logic from the two
writeImage methods into one.
(Pasteboard::writeImage): Updated for Pasteboard changes.
* platform/qt/PasteboardQt.cpp:
(WebCore::Pasteboard::writeImage): Ditto.
2007-04-11 Darin Adler <darin@apple.com>
* css/CSSValueKeywords.in: Fix a comment.
2007-04-09 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/4932260>
Invalid attributed string for attachment range obtained via AXPreviousWordStartTextMarkerForTextMarker
By default, text iterators don't emit anything for replaced
elements. Boundary finding code works around this but has
bugs: replaced elements act as sentence boundaries and the
above bug, where previousBoundary moves past the start of a
word if there is a replaced element just before it. This
patch fixes these issues by treating replaced elements as
punctuation for boundary finding.
* editing/TextIterator.cpp:
(WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
Set m_pastStartNode, the node after (in a reverse pre-order traversal) the
last one that should be processed.
(WebCore::SimplifiedBackwardsTextIterator::advance):
Stop at m_pastStartNode.
Iterate over nodes in reverse pre-order (TextIterator traverses in
pre-orer). This makes knowing when to emit characters after nodes vs. when
to emit characters before nodes easier.
Remove the special case for entering a new block, emitting characters
after nodes can now be handled generally, in handleNonTextNode(), because
of the way we traverse.
Set m_handledChildren to false every iteration since we now do traverse in
reverse pre-order.
(WebCore::SimplifiedBackwardsTextIterator::handleReplacedElement):
Emit a comma for replaced elements. We only use this kind of iterator
for finding boundaries, so we can do this unconditionally.
(WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode):
Don't use emitNewline, instead specify where the newline should be positioned.
A node is handled before its children, so characters emitted here should
be positioned after the node, not before it.
(WebCore::SimplifiedBackwardsTextIterator::exitNode):
Don't use emitNewline, instead specify where the newline should be positioned.
(WebCore::CharacterIterator::CharacterIterator):
Create a TextIterator that emits content for replaced elements, if requested.
* editing/TextIterator.h:
* editing/visible_units.cpp:
(WebCore::previousBoundary):
Removed replaced element handling code.
If the start of the chunk that contained the boundary was in a non-text
node, then the boundary is not necessarily in that node. Particularly
because it is only the end of the chunk that is guaranteed to be a valid
position in those cases. We must iterate backwards by character from
the end of the chunk to find the boundary.
(WebCore::nextBoundary): Removed replaced element handling code.
2007-04-10 Brady Eidson <beidson@apple.com>
Reviewed by Darin
<rdar://problem/4887095> - PageCache and PageState should be combined
These two objects are a relic of when the PageCache was split between WebCore and WebKit
It just makes good sense to combine them now, and the new object is more appropriately
called "CachedPage"
This patch is vast in scope, but simple in depth - anywhere a PageCache or PageState object
was used has been adjusted to use a CachedPage object instead. The most notable change is
that HistoryItem - which always used to have a PageCache object which may or may not have
had a PageState - now may or may not have a CachedPage. This actually simplifies the
HistoryItem code a bit while making the role of CachedPage much more clear.
* WebCore.exp:
* WebCore.xcodeproj/project.pbxproj:
* history/BackForwardList.cpp:
(WebCore::BackForwardList::addItem):
(WebCore::BackForwardList::setCapacity):
(WebCore::BackForwardList::setPageCacheSize):
(WebCore::BackForwardList::clearPageCache):
(WebCore::BackForwardList::close):
* history/PageCache.cpp: Removed.
* history/PageCache.h: Removed.
* page/PageState.cpp: Removed.
* page/PageState.h: Removed.
* history/CachedPage.cpp: Added.
(WebCore::CachedPage::create):
(WebCore::CachedPage::CachedPage):
(WebCore::CachedPage::~CachedPage):
(WebCore::CachedPage::restore):
(WebCore::CachedPage::clear):
(WebCore::CachedPage::setDocumentLoader):
(WebCore::CachedPage::documentLoader):
(WebCore::CachedPage::setTimeStamp):
(WebCore::CachedPage::setTimeStampToNow):
(WebCore::CachedPage::timeStamp):
* history/CachedPage.h: Added.
(WebCore::CachedPage::document):
(WebCore::CachedPage::mousePressNode):
(WebCore::CachedPage::URL):
* history/HistoryItem.cpp:
(WebCore::HistoryItem::HistoryItem):
(WebCore::HistoryItem::setCachedPage):
(WebCore::HistoryItem::setURL):
(WebCore::HistoryItem::alwaysAttemptToUseCachedPage):
(WebCore::HistoryItem::setAlwaysAttemptToUseCachedPage):
(WebCore::HistoryItem::cachedPage):
(WebCore::cachedPagesPendingRelease):
(WebCore::HistoryItem::releaseCachedPagesOrReschedule):
(WebCore::HistoryItem::releaseAllPendingCachedPages):
(WebCore::HistoryItem::scheduleCachedPageForRelease):
* history/HistoryItem.h:
* history/mac/HistoryItemMac.mm:
* history/HistoryItemTimer.cpp:
(WebCore::HistoryItemTimer::HistoryItemTimer):
(WebCore::HistoryItemTimer::callReleaseCachedPagesOrReschedule):
* history/HistoryItemTimer.h:
* history/mac/PageCacheMac.mm: Removed.
* history/mac/CachedPageMac.mm: Added.
(WebCore::CachedPage::close):
(WebCore::CachedPage::setDocumentView):
(WebCore::CachedPage::documentView):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::loadFromCachedPage):
(WebCore::DocumentLoader::setLoadingFromCachedPage):
(WebCore::DocumentLoader::isLoadingFromCachedPage):
* loader/DocumentLoader.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::provisionalLoadStarted):
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::transitionToCommitted):
(WebCore::FrameLoader::open):
(WebCore::FrameLoader::startLoading):
(WebCore::FrameLoader::receivedMainResourceError):
(WebCore::FrameLoader::opened):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
(WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
(WebCore::FrameLoader::cachePageToHistoryItem):
(WebCore::FrameLoader::createHistoryItem):
(WebCore::FrameLoader::purgePageCache):
(WebCore::FrameLoader::invalidateCurrentItemCachedPage):
(WebCore::FrameLoader::loadItem):
(WebCore::FrameLoader::updateHistoryForStandardLoad):
(WebCore::FrameLoader::updateHistoryForClientRedirect):
(WebCore::FrameLoader::updateHistoryForBackForwardNavigation):
(WebCore::FrameLoader::updateHistoryForReload):
(WebCore::FrameLoader::updateHistoryForInternalLoad):
(WebCore::FrameLoader::updateHistoryForCommit):
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* page/mac/WebCoreFrameBridge.h: Got rid of unused WebCorePageCacheStateKey
* page/mac/WebCoreFrameBridge.mm: Ditto
* platform/graphics/svg/SVGImage.cpp:
* platform/graphics/svg/SVGImageEmptyClients.h: Update to reflect the new names
(WebCore::SVGEmptyFrameLoaderClient::loadProvisionalItemFromCachedPage):
(WebCore::SVGEmptyFrameLoaderClient::invalidateCurrentItemCachedPage):
(WebCore::SVGEmptyFrameLoaderClient::loadedFromCachedPage):
(WebCore::SVGEmptyFrameLoaderClient::clearLoadingFromCachedPage):
(WebCore::SVGEmptyFrameLoaderClient::isLoadingFromCachedPage):
(WebCore::SVGEmptyFrameLoaderClient::setDocumentViewFromCachedPage):
(WebCore::SVGEmptyFrameLoaderClient::saveDocumentViewToCachedPage):
2007-04-10 Antti Koivisto <antti@apple.com>
Reviewed by Hyatt.
Fix <rdar://5057686>
Flex box layout example hangs in WebCore::RenderFlexibleBox::allowedChildFlex
Forcibly distribute remaining pixels if the algorithm is not advancing.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutHorizontalBox):
(WebCore::RenderFlexibleBox::layoutVerticalBox):
2007-04-11 Mark Rowe <mrowe@apple.com>
Build fix.
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject accessibilityDescription]):
2007-04-10 Patti Hoa <patti@apple.com>
Reviewed by Justin Garcia.
<rdar://problem/5122276> Allow focused frame to fire off notification
Improve accessibility support for Mail WebView embedded Notes.
* bridge/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::postNotification):
The focused document with the selection change should fire the selection changed notification, not the top level document
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject accessibilityDescription]):
Allow the name attribute of the html body to be used as the accessibility description
2007-04-09 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
Support for fixing fast/forms/textarea-paste-newline.html.
Changed clients to use new preference specifying whether a Page should
allow pasting through the DOM API, instead of a global flag.
Removed old behavior of always allowing DOM paste in debug builds. In
light of the new preference-based API, that behavior makes no sense anymore.
Instead, developers who want to test paste inside Safari can set the
preference for themselves.
* WebCore.exp:
* editing/CommandByName.cpp: Removed crazy hack to keep an identically
named but invalid copy of the global "pate allowed" flag in this file.
(WebCore::Frame::enabledPaste):
* editing/JSEditor.cpp: Removed "always allow" behavior for debug builds.
(WebCore::JSEditor::queryCommandSupported):
* editing/JSEditor.h:
* page/Settings.cpp:
(WebCore::Settings::setDOMPasteAllowed):
* page/Settings.h:
(WebCore::Settings::isDOMPasteAllowed):
* rendering/RenderTreeAsText.cpp:
(WebCore::externalRepresentation): Removed crazy hack to allow DOM paste
after this function has been called.
2007-04-10 John Sullivan <sullivan@apple.com>
Reviewed by Tim Hatcher
- fixed <rdar://problem/4859132> Grammar must always be checked in entire-sentence chunks,
and shouldn't show markers for current sentence
* editing/Editor.h:
add markBadGrammar, now distinct from markMisspellings
* editing/mac/EditorMac.mm:
(WebCore::Editor::markMisspellingsAfterTypingToPosition):
call markMisspellings on one word, and markBadGrammar on entire sentence
(WebCore::markMisspellingsOrBadGrammar):
new static function, extracted from markMisspellings
(WebCore::Editor::markMisspellings):
now calls extracted function
(WebCore::Editor::markBadGrammar):
new method, calls extracted function
* page/Frame.cpp:
(WebCore::Frame::respondToChangedSelection):
update grammar markers for entire new and old sentences
2007-04-09 Anders Carlsson <andersca@apple.com>
Reviewed by John.
* WebCore.exp:
Add __ZNK7WebCore11FrameLoader10isCompleteEv.
2007-04-09 Brady Eidson <beidson@apple.com>
Reviewed by Darin
Fixes <rdar://4921797> and http://bugs.webkit.org/show_bug.cgi?id=12005
The original regression was to claim that more loads were the result of a "user gesture" than really
were. A lot of the ways a frame load could be kicked off didn't properly set up this flag, and it
wasn't properly propagated and respected where it should've been.
This patch cleans much of that up. One loose end is the "treatAsUserGesture" flag which is a stop
gap measure to keep "slow redirects" working to create a new history item. In the future, we need
to cleanup the meaning and use of "userGesture" and "lockHistory." This includes integrating them
in to FrameLoadRequest and being very clear of what their meaning actually is at different stages of
the Frame load process.
* dom/Document.cpp:
(WebCore::Document::processHttpEquiv): Pass only the delay for the redirect
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::defaultEventHandler): Pass "lockHistory" false, "userGesture" true
* ksvg2/svg/SVGAElement.cpp:
(WebCore::SVGAElement::defaultEventHandler): Pass "lockHistory" false, "userGesture" true
* loader/FrameLoader.cpp:
(WebCore::ScheduledRedirection::ScheduledRedirection): Figure "lockHistory" and "userGesture" from the
delay here, instead of at 3 other different sites that call this method
(WebCore::FrameLoader::changeLocation): Set userGesture correctly
(WebCore::FrameLoader::urlSelected): Propagate userGesture down
(WebCore::FrameLoader::requestFrame):
(WebCore::FrameLoader::receivedFirstData):
(WebCore::FrameLoader::scheduleRedirection): Pass only the delay here
(WebCore::FrameLoader::redirectionTimerFired): Set userGesture correctly
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::updateHistoryForInternalLoad): Insteading of asserting we aren't a redirect,
handle the case where we *are* a redirect by updating the previous history item
* loader/FrameLoader.h:
2007-04-09 Anders Carlsson <andersca@apple.com>
Reviewed by Darin.
<rdar://problem/5120801>
http://bugs.webkit.org/show_bug.cgi?id=13247
Closing a page during slow cloning causes crash in setJSStatusBarText (13247)
* bindings/js/kjs_window.cpp:
(KJS::Window::put):
Return early if m_frame is null. A closed window only has one property, "closed"
so no properties should be settable in that case.
2007-04-09 Andrew Wellington <proton@wiretapped.net>
Reviewed by Justin Garcia.
Fix for http://bugs.webkit.org/show_bug.cgi?id=12959
"REGRESSION: Edit -> Copy not enabled on standalone images"
* dom/Document.h: Add support for determining if a document is an image
(WebCore::Document::isImageDocument):
* editing/Editor.cpp:
(WebCore::Editor::canCopy): Image documents are copyable
(WebCore::Editor::copy): If copying an image document, call appropriate pasteboard methods
* loader/ImageDocument.h:
(WebCore::ImageDocument::isImageDocument): Override to return true for image documents
* platform/Pasteboard.h: Add new writeImage function to pasteboard
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::writeImage): Add writeImage implementation that takes Node and URL
* platform/qt/PasteboardQt.cpp:
(WebCore::Pasteboard::writeImage): Stub for Qt implementation of pasteboard
2007-04-08 Oliver Hunt <oliver@apple.com>
rs=Adam.
Add ASSERT(selectedRange) to previous change
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::writeSelection):
2007-04-08 Oliver Hunt <oliver@apple.com>
rs=Adam.
Fix minor error when writing selection to pasteboard.
This shouldn't have an effect as selectedRange should be the
selected range from source frame, however this is safer.
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::writeSelection):
2007-04-08 David Hyatt <hyatt@apple.com>
Fix mouseover/out failing layout tests.
Reviewed by aroben
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::updateMouseEventTargetNode):
(WebCore::EventHandler::dispatchMouseEvent):
* page/EventHandler.h:
2007-04-08 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
Fix for <rdar://problem/5113621> REGRESSION: Dragging PDF as image does not give any feedback
If we fail when attempting to create a drag image for a dragged
image, we fall back to the appropriate icon.
* page/DragController.cpp:
(WebCore::DragController::doImageDrag):
2007-04-08 Adam Roben <aroben@apple.com>
Reviewed by Oliver.
Bestowed the gift of -webkit-dashboard-region upon all platforms, since
there's nothing Mac-specific about it other than the name. This also
allowed me to get rid of FrameViewMac.mm.
Removed a lot of #if PLATFORM(MAC):
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::cssText):
* css/CSSPrimitiveValue.h:
(WebCore::CSSPrimitiveValue::getDashboardRegionValue):
(WebCore::CSSPrimitiveValue::):
* css/cssparser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseDashboardRegions):
* css/cssparser.h:
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
* dom/Document.cpp:
(WebCore::Document::Document):
* dom/Document.h:
* page/Frame.cpp:
(WebCore::Frame::paint):
* page/Frame.h:
* page/FrameView.cpp:
(WebCore::FrameView::layout):
(WebCore::FrameView::updateDashboardRegions): Moved from FrameViewMac.mm.
* page/FrameView.h:
* page/qt/FrameQt.cpp:
(WebCore::Frame::dashboardRegionsChanged): Stubbed out.
* platform/gdk/FrameGdk.cpp:
(WebCore::Frame::dashboardRegionsChanged): Ditto.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollToOffset):
(WebCore::RenderLayer::setHasHorizontalScrollbar):
(WebCore::RenderLayer::setHasVerticalScrollbar):
(WebCore::RenderLayer::updateScrollInfoAfterLayout):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::setStyle):
* WebCore.xcodeproj/project.pbxproj: Removed FrameViewMac.mm.
* bridge/mac/FrameViewMac.mm: Removed.
2007-04-08 Mark Rowe <mrowe@apple.com>
Qt build fix.
* platform/qt/TemporaryLinkStubs.cpp:
2007-04-06 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
Fixed one more case of <rdar://problem/5112273> REGRESSION(TOT):
Reproducible crash loading an old version of amazon.com as a web archive
* bindings/js/JSXMLHttpRequest.cpp:
(KJS::JSXMLHttpRequestPrototypeFunction::callAsFunction):
2007-04-06 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
Fix MouseEvent so it's possible to distinguish between
a MouseMouseEvent with NoButton down, and a move with
LeftButton down. It would be nice if the DOM allowed
for NoButton to exist, but it doesn't so this is necessary.
* dom/EventTargetNode.cpp:
(WebCore::EventTargetNode::dispatchMouseEvent):
* dom/MouseEvent.cpp:
(WebCore::MouseEvent::MouseEvent):
(WebCore::MouseEvent::initMouseEvent):
* dom/MouseEvent.h:
(WebCore::MouseEvent::noButton):
2007-04-06 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed - gdk build fix.
* platform/gdk/MouseEventGdk.cpp:
2007-04-06 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by darin.
Coverity fix. Coverity says:
"Event var_deref_op: Variable "info_ptr" tracked as NULL was dereferenced."
* platform/image-decoders/png/pngrutil.c:
(png_handle_gAMA):
2007-04-06 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by darin.
Coverity fix. Coverity says:
"Event var_deref_model: Variable "(this)->clientptr" tracked as NULL was passed to a function that dereferences it."
* platform/image-decoders/gif/GIFImageReader.cpp:
(GIFImageReader::read):
2007-04-06 David Hyatt <hyatt@apple.com>
Fix more of the layout test failures caused by fixing the slider layout test failure (sigh). clear()
needs to null out the capturingMouseEventsNode in the case where a mousedown or move while captured
causes a navigation to another page.
* page/EventHandler.cpp:
(WebCore::EventHandler::clear):
(WebCore::EventHandler::handleMouseReleaseEvent):
2007-04-06 David Hyatt <hyatt@apple.com>
Fix failing slider layout test. Don't clear the subframe capture unless we really were capturing on a
subframe.
Reviewed by adele, darin
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseReleaseEvent):
2007-04-06 Beth Dakin <bdakin@apple.com>
Reviewed by Geoff and Darin.
Fix for <rdar://problem/4875433> WebView underlines are too thick
when scaled small
When we have a small scale factor, we should follow the line-
drawing code as if we were printing. Meaning, specifically, that we
should not round to device pixels and we should antialias.
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawLineForText):
2007-04-06 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
Fixed <rdar://problem/5112273> REGRESSION(TOT): Reproducible crash loading
an old version of amazon.com as a web archive
The problem was JavaScript executing inside a frame with a NULL document.
It's probably a bug that the document was NULL, but we don't want a minor
bug to be a crasher, and we don't want the DOM to depend on the implementation
details of the JS bindings, so I added NULL checks.
* bindings/js/kjs_window.cpp: Call FrameLoader::completeURL instead of
Document::completeURL, since FrameLoader::completeURL is safe against a
NULL document.
(KJS::Window::put):
(KJS::WindowFunc::callAsFunction):
(KJS::Location::put):
(KJS::LocationFunc::callAsFunction):
2007-04-06 David Hyatt <hyatt@apple.com>
Fix for bug 13274. Rework mouse events so that subframe capturing works again. Make sure
everything just comes down through the top FrameView even when capturing is in effect. Update
scrollbar handling logic so that scrollbars receive events correctly while capturing is in
effect. Eliminate the notion of widget capture. Fix mouse moves so that they only fire
on the innermost hit frame.
Reviewed by olliej
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseDraggedEvent):
(WebCore::subframeForTargetNode):
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
* page/EventHandler.h:
* platform/PopupMenu.h:
(WebCore::PopupMenu::scrollbarCapturingMouse):
(WebCore::PopupMenu::setScrollbarCapturingMouse):
* platform/ScrollBar.h:
(WebCore::Scrollbar::handleMouseReleaseEvent):
* platform/Widget.h:
(WebCore::Widget::geometryChanged):
2007-04-06 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/5115601>
REGRESSION: Crash deleting a selection that starts in an editable table cell
The selection starts at the start of an editable
root that's embedded in a non-editable ToDo (table).
Removing the selection removes all editable
VisiblePositions from the root. Then, the creation
of mergeDestination fails, and using it causes a crash.
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::mergeParagraphs):
Nil-check mergeDestination to avoid crashing and
also insert a break in that case at m_upstreamStart,
so that we can create a valid mergeDestination and
perform the merge.
2007-04-06 Mitz Pettel <mitz@webkit.org>
Reviewed by Oliver.
Eliminate PlatformMouseEvent::currentEvent.
No test possible (no change to functionality).
* page/EventHandler.cpp:
(WebCore::EventHandler::handleDrag):
* platform/PlatformMouseEvent.h:
* platform/gdk/TemporaryLinkStubs.cpp:
* platform/mac/PlatformMouseEventMac.mm:
(WebCore::PlatformMouseEvent::PlatformMouseEvent):
* platform/qt/PlatformMouseEventQt.cpp:
* platform/win/TemporaryLinkStubs.cpp:
2007-04-05 Oliver Hunt <oliver@apple.com>
Reviewed by Maciej.
Fix for rdar://problem/4849948 -- JSCanvasRenderingContext2D::drawImage
crashes when given invalid arguments.
JSCanvasRenderingContext2D frequently casts from JSValue* to JSObject*
and then checks isObject *after* the cast. JSObject::isObject is unsafe
if applied to a JSImmediate value (null, undefined, etc). This patch
corrects the logic in a number of places by performing the isObject check
before casting to JSObject.
* bindings/js/JSCanvasRenderingContext2DCustom.cpp:
(WebCore::JSCanvasRenderingContext2D::drawImage):
(WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
(WebCore::JSCanvasRenderingContext2D::createPattern):
2007-04-05 Adele Peterson <adele@apple.com>
Reviewed by Oliver.
Fix for <rdar://problem/4965597> REGRESSION: mouseup doesn't fire for slider (causes it to always default to max)
Test: fast/forms/slider-mouse-events.html
* page/EventHandler.cpp: (WebCore::EventHandler::dispatchMouseEvent):
Since the actual target node of the event can't be a shadow node, set the target node to the capturing node before adjusting it.
2007-04-05 Kevin McCullough <kmccullough@apple.com>
Reviewed by Darin.
- Added reportLocalLoadFailed to FrameLoader to send an error to the console when
calls to canLoad fail.
* loader/Cache.cpp:
(WebCore::Cache::requestResource):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadSubframe):
(WebCore::FrameLoader::loadPlugin):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::reportLocalLoadFailed):
* loader/FrameLoader.h:
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::create):
2007-04-05 Adele Peterson <adele@apple.com>
Reviewed by Maciej.
Add text-align: -webkit-auto for form controls. Buttons already override this property to center their text.
* css/html4.css:
2007-04-05 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by rwlbuis.
Coverity fix. Coverity says:
"Event var_deref_model: Variable "page" tracked as NULL was passed to a function that dereferences it."
* platform/Font.cpp:
(WebCore::Font::glyphDataForCharacter):
2007-04-05 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by darin.
Coverity fix. Coverity says:
"Event var_deref_model: Variable "unicode" tracked as NULL was passed to a
function that dereferences it."
* platform/DeprecatedString.cpp:
(WebCore::DeprecatedString::DeprecatedString):
2007-04-05 Adele Peterson <adele@apple.com>
Reviewed by Hyatt.
Fix for <rdar://problem/5113593> REGRESSION: Search fields in RSS pages don't show ibeam cursor
* css/html4.css: Set the cursor values explicitly for input, textarea (to auto), & select (to default).
2007-04-05 David Hyatt <hyatt@apple.com>
Fix for <rdar://problem/5078866> tables should only reset text-align
in quirks mode.
Reviewed by beth
* css/html4.css:
* css/quirks.css:
2007-04-05 Adele Peterson <adele@apple.com>
Fixing typo that's crashing.
* html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::defaultEventHandler):
Use evt instead of null variable k.
2007-04-05 Adele Peterson <adele@apple.com>
Reviewed by Hyatt.
Fix for <rdar://problem/5021500> Cursor should stay as pointer when slider is being dragged
Don't set the selection ibeam cursor when there's a node that's capturing mouse events.
* page/EventHandler.cpp:
(WebCore::selectCursor):
(WebCore::EventHandler::handleMouseMoveEvent):
2007-04-05 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
More clean-up while fixing <rdar://problem/5112273> REGRESSION(TOT):
Reproducible crash loading an old version of amazon.com as a web archive
Layout tests pass.
Removed more superfluous document NULL checks. (Node::document() never
returns NULL, and it asserts as much.)
Merged some duplicate editing code into a static inline function.
* page/mac/WebCoreFrameBridge.mm:
(updateRenderingForBindings): Removed superfluous static_cast.
2007-04-05 Adele Peterson <adele@apple.com>
Reviewed by Darin.
A little cleanup from my last checkin. Always check if an Event is really a MouseEvent or a KeyboardEvent
before casting it.
* html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::defaultEventHandler):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::menuListDefaultEventHandler):
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
* html/HTMLTextFieldInnerElement.cpp:
(WebCore::HTMLSearchFieldResultsButtonElement::defaultEventHandler):
(WebCore::HTMLSearchFieldCancelButtonElement::defaultEventHandler):
* ksvg2/svg/SVGAElement.cpp: (WebCore::SVGAElement::defaultEventHandler):
* page/ContextMenuController.cpp: (WebCore::ContextMenuController::handleContextMenuEvent):
* rendering/RenderFrameSet.cpp: (WebCore::RenderFrameSet::userResize):
* rendering/RenderSlider.cpp: (WebCore::HTMLSliderThumbElement::defaultEventHandler):
2007-04-05 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
Some clean-up while fixing <rdar://problem/5112273> REGRESSION(TOT):
Reproducible crash loading an old version of amazon.com as a web archive
Removed superfluous document NULL checks. (Node::document() never returns
NULL, and it asserts as much.)
Removed duplicate implementation of displayString.
Layout tests pass.
* bindings/objc/DOMInternal.h:
* bindings/objc/DOMInternal.mm:
* html/HTMLGenericFormElement.cpp:
(WebCore::HTMLGenericFormElement::supportsFocus):
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::createNPObject):
* platform/ContextMenu.cpp:
(WebCore::ContextMenu::checkOrEnableIfNeeded):
* rendering/HitTestResult.cpp:
(WebCore::displayString):
* rendering/HitTestResult.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateHoverActiveState):
=== Safari-5522.6 ===
2007-04-05 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
Fix rdar://problem/5030934 -- landscape PDFs embedded as an image are cut off
also fixes scaling of pdf images
PDFDocumentImage was not accounting for page rotation in a number of places
* platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::size):
we need to account for rotation of the pdf image effecting our bounds
(WebCore::PDFDocumentImage::draw):
When compensating for flipped coords we need to use the correct rect for the
coordinate space. We can't pass size() to CGContextDrawPDFDocument as it
returns the rotated bounds now -- this is also save the old
FloatSize -> IntSize -> FloatSize conversions.
2007-04-04 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=13278
REGRESSION: cannot change SELECT option
Test: fast/forms/option-change-single-selected.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::setSelectedIndex): If multiple selection is not allowed,
be sure to deselect the previous option.
2007-04-04 Adele Peterson <adele@apple.com>
Reviewed by Oliver.
Fix for <rdar://5105009> Prepare for fix to send mousedown and mouseup (but not click) events when right-clicking
* page/EventHandler.cpp: Don't ever send click events for right-clicks.
(WebCore::EventHandler::handleMouseDoubleClickEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
Check that the mousedown and mouseup are not with the right button before performing default behavior.
* html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::defaultEventHandler):
* html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::menuListDefaultEventHandler):
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
* html/HTMLTextFieldInnerElement.cpp:
(WebCore::HTMLSearchFieldResultsButtonElement::defaultEventHandler):
(WebCore::HTMLSearchFieldCancelButtonElement::defaultEventHandler):
* ksvg2/svg/SVGAElement.cpp:(WebCore::SVGAElement::defaultEventHandler):
* rendering/RenderFrameSet.cpp: (WebCore::RenderFrameSet::userResize):
* rendering/RenderSlider.cpp: (WebCore::HTMLSliderThumbElement::defaultEventHandler):
2007-04-03 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5026848> Can cut/delete ToDo subunits
We were removing non-editable content during a delete.
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::initializePositionData):
Set m_startRoot and m_endRoot.
(WebCore::DeleteSelectionCommand::removeNode): If a node
is not inside both the start and end roots, remove it only
if it is in editable content.
* editing/DeleteSelectionCommand.h: Added m_startRoot and
m_endRoot, the editable roots that contain the start and end
of the selection, respectively. We consult these every
time we remove a node, and don't want to recompute them
on every call to removeNode().
2007-04-03 David Hyatt <hyatt@apple.com>
Fix for <rdar://problem/5108896>, make sure the assert for setEncodedSize
deals with the error case.
Reviewed by andersca
* loader/CachedResource.cpp:
(WebCore::CachedResource::setEncodedSize):
2007-04-03 Anders Carlsson <andersca@apple.com>
Reviewed by Dave Hyatt.
* loader/ImageDocument.cpp:
Don't call error() in stopParsing.
2007-04-03 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5107422>
TOT REGRESSION: Delete key fails to delete text, and cursor disappears in Mail.app
<rdar://problem/5107413>
TOT REGRESSION: Crash deleting text in email (infinite recursion in shouldInsertNode)
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs):
Back out the call to shouldInsert until we
add WebViewInsertActionMoved, because Mail returns
NO from shouldInsert for WebViewInsertActionPasted
to override our Paste operation.
2007-04-03 Anders Carlsson <andersca@apple.com>
Reviewed by Mitz.
Make window.innerWidth/innerHeight include the size of any present scrollbar to match Firefox.
Make document.body.clientWidth/clientHeight return the width/height of the visible content when in
quirks mode to match WinIE.
* bindings/js/kjs_window.cpp:
(KJS::Window::getValueProperty):
Return the width and height of the scroll view, not the visible width and height.
* dom/Element.cpp:
(WebCore::Element::clientWidth):
(WebCore::Element::clientHeight):
Return the visible size if the element is the body element and we're in quirks mode.
2007-04-03 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Updated fix for <rdar://problem/5107095> REGRESSION: disabled text color calculations are slowing down launchtime measurements
* platform/graphics/Color.cpp: Moved optimization for lightening black and darkening white into the Color class.
(WebCore::Color::light):
(WebCore::Color::dark):
* rendering/RenderTextControl.cpp: (WebCore::disabledTextColor): Skip the difference calculation for black text, which will always be lightened.
2007-04-03 Anders Carlsson <andersca@apple.com>
Reviewed by Tim.
<rdar://problem/4649516>
Turn off slow script dialog or crank up time that makes it come up
* bindings/js/kjs_binding.cpp:
(KJS::ScriptInterpreter::ScriptInterpreter):
Increase the timeout to 10 seconds to match Firefox.
2007-04-03 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13251
editing/style/fontsize-1.html fails intermittently when run multiple times on Intel, generates incorrect DOM
Covered by existing editing tests.
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::getFloatValue): Added ASSERTs that the requested conversion
is from a scalar type to a scalar type. The intermittent failures in the test were
the result of trying to convert an identifier type to a scalar type.
* editing/ApplyStyleCommand.cpp:
(WebCore::StyleChange::checkForLegacyHTMLStyleChange): Added a check that the
font-size property value is an absolute length. If it is not (such as in the case
of relative units or keywords like "x-large"), then no corresponding 'size' attribute
will be generated for legacy HTML.
2007-04-03 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13218
<rdar://problem/5095977>
Reproducible crash after call to window.close()
* manual-tests/stale-currentEvent.html: Added.
* page/EventHandler.cpp:
(WebCore::EventHandler::hoverTimerFired): Instead of faking a mouse event,
just hit-test the last mouse event coordinates and update for hover state
changes. This eliminates the use of currentEvent, which can be a non-mouse
event or even a stale event.
2007-04-02 Adele Peterson <adele@apple.com>
Reviewed by Maciej.
Fix for <rdar://problem/5107095> REGRESSION: disabled text color calculations are slowing down launchtime measurements
Hardcode disabled text colors for the most common cases- black and white.
* rendering/RenderTextControl.cpp: (WebCore::disabledTextColor):
2007-04-02 David Hyatt <hyatt@apple.com>
Fix for <rdar://problem/5105784>, assertion failure in cache. Encoded sizes were being set to
garbage by accident because of a mismatch between derived class and base class constructors. This
patch cleans all of this up and gets rid of expiration date as a concept separate from the response.
Reviewed by anders
* dom/Document.cpp:
(WebCore::Document::processHttpEquiv):
* html/HTMLImageLoader.cpp:
(WebCore::HTMLImageLoader::updateFromElement):
* loader/Cache.cpp:
(WebCore::createResource):
(WebCore::Cache::requestResource):
* loader/Cache.h:
* loader/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
* loader/CachedCSSStyleSheet.h:
* loader/CachedImage.cpp:
(WebCore::CachedImage::CachedImage):
* loader/CachedImage.h:
* loader/CachedResource.cpp:
(WebCore::CachedResource::CachedResource):
(WebCore::CachedResource::finish):
* loader/CachedResource.h:
* loader/CachedScript.cpp:
(WebCore::CachedScript::CachedScript):
* loader/CachedScript.h:
* loader/CachedXBLDocument.cpp:
(WebCore::CachedXBLDocument::CachedXBLDocument):
* loader/CachedXBLDocument.h:
* loader/CachedXSLStyleSheet.cpp:
(WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
* loader/CachedXSLStyleSheet.h:
* loader/DocLoader.cpp:
(WebCore::DocLoader::DocLoader):
(WebCore::DocLoader::requestResource):
* loader/DocLoader.h:
2007-04-03 Antti Koivisto <antti@apple.com>
Reviewed by Hyatt.
Render tree memory savings, part 3
These changes shrink all RenderBlocks by additional 28 bytes. Together with parts 1 and 2
RenderBlock goes from 172 bytes to 128 bytes, a saving of 26%.
- Pack bitfields together in RenderFlow
- Move top/bottom min/max margin values to a struct that is only allocated in case these
variables have non default values. Usually this is <5% of all blocks.
- Move rarely used column variables to hash
* rendering/RenderBlock.cpp:
(WebCore::ColumnInfo::ColumnInfo):
(WebCore::RenderBlock::RenderBlock):
(WebCore::RenderBlock::~RenderBlock):
(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::collapseMargins):
(WebCore::RenderBlock::clearFloatsIfNeeded):
(WebCore::RenderBlock::setCollapsedBottomMargin):
(WebCore::RenderBlock::layoutBlockChildren):
(WebCore::RenderBlock::paintColumns):
(WebCore::RenderBlock::paintObject):
(WebCore::RenderBlock::fillSelectionGaps):
(WebCore::RenderBlock::lowestPosition):
(WebCore::RenderBlock::rightmostPosition):
(WebCore::RenderBlock::leftmostPosition):
(WebCore::RenderBlock::nodeAtPoint):
(WebCore::RenderBlock::hitTestColumns):
(WebCore::RenderBlock::positionForCoordinates):
(WebCore::RenderBlock::availableWidth):
(WebCore::RenderBlock::calcColumnWidth):
(WebCore::RenderBlock::setDesiredColumnCountAndWidth):
(WebCore::RenderBlock::desiredColumnWidth):
(WebCore::RenderBlock::desiredColumnCount):
(WebCore::RenderBlock::columnRects):
(WebCore::RenderBlock::layoutColumns):
(WebCore::RenderBlock::adjustPointToColumnContents):
(WebCore::RenderBlock::adjustRectForColumns):
(WebCore::RenderBlock::setMaxTopMargins):
(WebCore::RenderBlock::setMaxBottomMargins):
* rendering/RenderBlock.h:
(WebCore::RenderBlock::maxTopMargin):
(WebCore::RenderBlock::maxBottomMargin):
(WebCore::RenderBlock::maxTopPosMargin):
(WebCore::RenderBlock::maxTopNegMargin):
(WebCore::RenderBlock::maxBottomPosMargin):
(WebCore::RenderBlock::maxBottomNegMargin):
(WebCore::RenderBlock::initMaxMarginValues):
(WebCore::RenderBlock::MaxMargin::MaxMargin):
(WebCore::RenderBlock::MaxMargin::topPosDefault):
(WebCore::RenderBlock::MaxMargin::topNegDefault):
(WebCore::RenderBlock::MaxMargin::bottomPosDefault):
(WebCore::RenderBlock::MaxMargin::bottomNegDefault):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
* rendering/RenderFlow.h:
(WebCore::RenderFlow::RenderFlow):
(WebCore::RenderFlow::hasColumns):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::RenderInline):
* rendering/RenderInline.h:
2007-04-03 Antti Koivisto <antti@apple.com>
Reviewed by Hyatt.
Fix asserts, these may also be called for rel positioned elements
* rendering/RenderBox.cpp:
(WebCore::RenderBox::setStaticX):
(WebCore::RenderBox::setStaticY):
2007-04-02 David Hyatt <hyatt@apple.com>
Throw in an assert to try to track down a problem where an image is being set to a smaller encoded
size.
* loader/CachedResource.cpp:
(WebCore::CachedResource::setEncodedSize):
2007-04-02 Ada Chan <adachan@apple.com>
Reviewed by Adele.
<rdar://5105331> Missing null check in Editor::execCommand
Added null check.
* editing/Editor.cpp:
(WebCore::Editor::execCommand):
2007-04-02 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5058163>
Hitting return inserts a new line between two To Dos, but caret is position after second ToDo
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply):
Removed refPos, it was unused.
Don't assume that upstream() moves to a different
node. This assumption caused the line break to
be inserted *after* the caret and a bad position
to be set (added a testcase).
Use isStartOfParagraph instead of checking
for the existence of a br because the line might
be broken by a newline character in text that
preserves newlines. Paragraphs that are created
in other ways, like with blocks, are handled
above (added a testcase).
2007-04-02 David Harrison <harrison@apple.com>
Reviewed by Darin.
<rdar://problem/4906488> text attributes are not working for frame based web page
Attribute handling now treats each WebArea as its own world, rather than sometimes
referring back up to the top WebArea. e.g. getting/setting the selection now
operates on the WebArea containing the WebCoreAXObject that is being messaged (self).
The methods that sit above this and are able to go into arbitrary WebAreas
are accessibilityFocusedUIElement and doAXTextMarkerForPosition, allowing VoiceOver
to navigate between frames.
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject topRenderer]):
(-[WebCoreAXObject frameView]):
(-[WebCoreAXObject topFrameView]):
Removed topDocument, renamed topView to topFrameView, added frameView.
(-[WebCoreAXObject accessibilityAttributeValue:]):
AXSelectedTextMarkerRange, AXStartTextMarker, and AXEndTextMarker now use
self's WebArea, rather than the top WebArea.
(-[WebCoreAXObject doAXTextMarkerRangeForLine:]):
Use self's WebArea, rather than the top WebArea.
(-[WebCoreAXObject doAXTextMarkerForPosition:]):
Use renamed methods for accessing top WebArea.
(-[WebCoreAXObject doAXBoundsForTextMarkerRange:]):
Use renamed methods for accessing self's WebArea.
(AXAttributeStringSetColor):
(AXAttributeStringSetNumber):
(AXAttributeStringSetFont):
(AXAttributeStringSetStyle):
(AXAttributeStringSetElement):
(-[WebCoreAXObject rendererForView:]):
Clean up uses of nil and NULL.
(-[WebCoreAXObject accessibilityFocusedUIElement]):
Find the focused node on the whole page. If there is no focused node,
return the WebArea for the focused document.
(-[WebCoreAXObject doSetAXSelectedTextMarkerRange:]):
Use self's WebArea, rather than the top WebArea.
2007-04-02 Antti Koivisto <antti@apple.com>
Fix build. This one was not supposed to be checked in.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
2007-03-30 Antti Koivisto <antti@apple.com>
Reviewed by Hyatt.
Render tree memory savings, part 2
- Move staticX and staticY variables to RenderLayer since they are only
applicable to positioned objects
- Move very rarely used overrideSize variable to hash
These changes shrink all box types by 12 bytes
* rendering/RenderBox.cpp:
(WebCore::RenderBox::RenderBox):
(WebCore::RenderBox::destroy):
(WebCore::RenderBox::overrideSize):
(WebCore::RenderBox::setOverrideSize):
(WebCore::RenderBox::overrideWidth):
(WebCore::RenderBox::overrideHeight):
(WebCore::RenderBox::position):
(WebCore::RenderBox::calcWidth):
(WebCore::RenderBox::calcHeight):
(WebCore::RenderBox::staticX):
(WebCore::RenderBox::staticY):
(WebCore::RenderBox::setStaticX):
(WebCore::RenderBox::setStaticY):
(WebCore::RenderBox::calcAbsoluteHorizontal):
(WebCore::RenderBox::calcAbsoluteVertical):
(WebCore::RenderBox::calcAbsoluteHorizontalReplaced):
(WebCore::RenderBox::calcAbsoluteVerticalReplaced):
* rendering/RenderBox.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
* rendering/RenderLayer.h:
(WebCore::RenderLayer::staticX):
(WebCore::RenderLayer::staticY):
(WebCore::RenderLayer::setStaticX):
(WebCore::RenderLayer::setStaticY):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::RenderObject):
* rendering/RenderObject.h:
(WebCore::):
(WebCore::RenderObject::hasOverrideSize):
(WebCore::RenderObject::setHasOverrideSize):
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::destroy):
2007-03-31 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed - gdk build fix.
* platform/gdk/TemporaryLinkStubs.cpp:
(Font::selectionRectForComplexText):
(Font::drawComplexText):
2007-03-31 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12778
REGRESSION: Nightly won't load Curl plugin for full page use
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument): Re-order cases to give more priority to plugins.
This also fixes Adobe SVG Viewer and any plugins that register XML MIME types.
Added a case for XHTML to avoid enumerating plugins.
2007-03-31 David Hyatt <hyatt@apple.com>
Fix for bug 13234, layout of selected justified text is broken. Rework TextRuns to avoid having
from/to members. Let those be passed in only by the functions that need them (drawing and selection rect).
Reviewed by mitz
fast/text/justified-selection-at-edge.html
* platform/Font.cpp:
(WebCore::WidthIterator::WidthIterator):
(WebCore::WidthIterator::advance):
(WebCore::Font::canUseGlyphCache):
(WebCore::Font::drawSimpleText):
(WebCore::Font::drawText):
(WebCore::Font::floatWidth):
(WebCore::Font::floatWidthForSimpleText):
(WebCore::Font::selectionRectForText):
(WebCore::Font::selectionRectForSimpleText):
(WebCore::Font::offsetForPositionForSimpleText):
* platform/Font.h:
(WebCore::TextRun::m_len):
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawText):
(WebCore::GraphicsContext::drawHighlightForText):
* platform/graphics/GraphicsContext.h:
* platform/mac/FontMac.mm:
(WebCore::addDirectionalOverride):
(WebCore::overrideLayoutOperation):
(WebCore::ATSULayoutParameters::initialize):
(WebCore::Font::selectionRectForComplexText):
(WebCore::Font::drawComplexText):
(WebCore::Font::floatWidthForComplexText):
(WebCore::Font::offsetForPositionForComplexText):
* platform/qt/FontQt.cpp:
(WebCore::Font::drawComplexText):
(WebCore::Font::floatWidthForComplexText):
* platform/qt/TemporaryLinkStubs.cpp:
(Font::selectionRectForComplexText):
* rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::paint):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::selectionRect):
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::paintSelection):
(WebCore::InlineTextBox::paintMarkedTextBackground):
(WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
(WebCore::InlineTextBox::paintTextMatchMarker):
(WebCore::InlineTextBox::offsetForPosition):
(WebCore::InlineTextBox::positionForOffset):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::paint):
(WebCore::RenderListMarker::calcMinMaxWidth):
(WebCore::RenderListMarker::getRelativeMarkerRect):
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::updateOptionsWidth):
* rendering/RenderText.cpp:
(WebCore::RenderText::widthFromCache):
(WebCore::RenderText::width):
2007-03-31 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13243
<rdar://problem/5103226>
REGRESSION (r20506): Repro crash/assert when using scroll wheel on a list box taller than its contents
* platform/ScrollBar.cpp:
(WebCore::Scrollbar::setValue): Cleaned up a little.
(WebCore::Scrollbar::scroll): Changed to apply the minimum and maximum constraints
in the right order, and cleaned up a little.
2007-03-31 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13242
REGRESSION: Repro crash when specifying the content property for an image
Test: fast/images/text-content-crash.html
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::parseMappedAttribute): Added a check that the
renderer is an image.
(WebCore::HTMLImageElement::attach): Ditto.
2007-03-31 Mark Rowe <mrowe@apple.com>
Reviewed by Darin.
A more correct fix for http://bugs.webkit.org/show_bug.cgi?id=13129
Bug 13129: Democracy Player dies in NSException from WebScriptObject on startup
The previous attempt at a fix in r20343 attempted to conditionally expose the 'count'
method. It did not work which resulted in 'count' always being hidden. This change
disables -[WebScriptObject count] completely until it can be determined whether it is
needed and how to support it without breaking third-party applications.
* bindings/objc/WebScriptObject.mm:
(-[WebScriptObject count]):
* bindings/objc/WebScriptObjectPrivate.h:
2007-03-31 Nicholas Shanks <webkit@nickshanks.com>
Reviewed by Adele.
http://bugs.webkit.org/show_bug.cgi?id=13184
HTMLImageElement longdesc should be complete resolved URL
Test: fast/dom/HTMLImageElement/image-longdesc-absolute-url.html
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::longDesc): Return absolute URL.
Behaviour now matches Firefox and Opera.
2007-03-31 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13209
REGRESSION (r18756-18765): Incomplete list marker repaint when resizing list item
Test: fast/repaint/list-marker-2.html
A list marker can increase the horizontal overflow after layoutInlineChildren(),
so made that function return only the vertical bounds of the repaint rect. As the
horizontal bounds, made layoutBlock() just use the overflow bounds after layout.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock):
* rendering/RenderBlock.h:
* rendering/bidi.cpp:
(WebCore::RenderBlock::layoutInlineChildren):
2007-03-31 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- http://bugs.webkit.org/show_bug.cgi?id=13178
Helvetica zero-width space has non-zero width
Test: fast/text/wide-zero-width-space.html
* platform/FontData.cpp:
(WebCore::FontData::FontData): Force the ZERO WIDTH SPACE glyph to have width
0, unless the SPACE character maps to the same glyph.
2007-03-31 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=8016
REPRO: Safari hangs loading 18 MB page (deeply nested DOM tree)
Test: fast/tokenizer/lessthan-terminates-tags-and-attrs.html
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::parseTag): Made "<" terminate tag and attribute
names. This matches Firefox.
2007-03-31 Alexey Proskuryakov <ap@webkit.org>
Debug build fix.
* xml/XPathValue.cpp:
(WebCore::XPath::): Define Value::adopt.
2007-03-30 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=13021
XPath can be very slow
This patch finally makes us faster than Firefox 2.0 on this test case.
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunConcat::evaluate): Use a Vector buffer for faster appending.
(WebCore::XPath::FunId::evaluate): Move the result NodeSet into Value instead of copying it.
(WebCore::XPath::FunLocalName::evaluate): Cosmetic changes.
(WebCore::XPath::FunNamespaceURI::evaluate): Ditto.
(WebCore::XPath::FunName::evaluate): Ditto.
(WebCore::XPath::FunNormalizeSpace::evaluate): Ditto.
* xml/XPathValue.cpp:
(WebCore::XPath::Value::toNodeSet):
(WebCore::XPath::Value::modifiableNodeSet):
(WebCore::XPath::Value::toBoolean):
(WebCore::XPath::Value::toNumber):
(WebCore::XPath::Value::toString):
* xml/XPathValue.h:
(WebCore::XPath::ValueData::ValueData):
(WebCore::XPath::Value::Value):
Made Value copying faster by putting large data members into a separate refcounted ValueData class.
Added provisions for moving a NodeSet in and out of Value without copying.
Made construction safer by moving bool version to a template constructor.
Removed an (almost) unused default constructor.
* xml/XPathPredicate.h: Store a Value for literal string and number expressions to avoid
constructing one each time.
* xml/XPathPath.cpp:
(WebCore::XPath::Filter::evaluate):
(WebCore::XPath::LocationPath::evaluate):
(WebCore::XPath::Path::evaluate):
* xml/XPathPath.h:
* xml/XPathPredicate.cpp:
(WebCore::XPath::NumericOp::evaluate):
(WebCore::XPath::Union::evaluate):
* xml/XPathResult.cpp:
(WebCore::XPathResult::snapshotItem):
* xml/XPathStep.cpp:
(WebCore::XPath::Step::evaluate):
(WebCore::XPath::Step::nodesInAxis):
* xml/XPathStep.h:
Got rid of unnecessary NodeSet copying in many cases.
2007-03-30 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/5076323> Only one To Do can be created by a selection in a message
When Mail's ToDoify operation called moveToEndOfDocument:
with a selection that started just before a ToDo, we'd
move them to the end of the document, not to the end
of the editable root, because we incorrectly checked
for the editability of positions before ToDos. Then Mail
would refuse to create a ToDo because the selection was
outside of the region where they allowed editing.
* editing/SelectionController.cpp:
(WebCore::SelectionController::modifyExtendingRightForward):
Check the position for editability, not the position's node,
since there are editable positions of the form [node, offset]
where node is contenteditable=false.
Re-use pos. Nothing that happens after it's created can invalidate
it or the position and affinity used to create it.
(WebCore::SelectionController::modifyMovingRightForward): Ditto.
(WebCore::SelectionController::modifyExtendingLeftBackward): Ditto.
(WebCore::SelectionController::modifyMovingLeftBackward): Ditto.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintCaret): Ditto.
2007-03-30 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Added DeleteWordBackward and DeleteWordForward to execCommand.
* editing/Editor.cpp:
(WebCore::execDeleteWordBackward):
(WebCore::execDeleteWordForward):
(WebCore::CommandEntry::):
2007-03-30 Simon Hausmann <hausmann@kde.org>
Reviewed by Zack
* WebCore.pro: Fix release Qt builds.
2007-03-30 Antti Koivisto <antti@apple.com>
Reviewed by bdash.
Spotted an int that should be float in previous patch.
* platform/Font.cpp:
(WebCore::WidthIterator::advance):
2007-03-30 Antti Koivisto <antti@apple.com>
Reviewed by Hyatt.
Render tree memory savings, part 1
- Eliminate caching of monospace char width from RenderText. This optimization is not needed
anymore since Font already caches space width (RenderText -4 bytes)
- Eliminate caching of tab width from RenderBlock. Similary this optimization has become
obsolete (RenderBlock -4 bytes)
* platform/Font.cpp:
(WebCore::WidthIterator::advance):
(WebCore::Font::spaceWidth):
* platform/Font.h:
(WebCore::Font::tabWidth):
* platform/TextStyle.h:
(WebCore::TextStyle::TextStyle):
(WebCore::TextStyle::allowTabs):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::selectionRect):
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::paintSelection):
(WebCore::InlineTextBox::paintMarkedTextBackground):
(WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
(WebCore::InlineTextBox::paintTextMatchMarker):
(WebCore::InlineTextBox::offsetForPosition):
(WebCore::InlineTextBox::positionForOffset):
* rendering/RenderBlock.cpp:
(WebCore:::RenderFlow):
(WebCore::RenderBlock::setStyle):
* rendering/RenderBlock.h:
* rendering/RenderObject.cpp:
* rendering/RenderObject.h:
* rendering/RenderText.cpp:
(WebCore::RenderText::RenderText):
(WebCore::RenderText::setStyle):
(WebCore::RenderText::widthFromCache):
(WebCore::RenderText::trimmedMinMaxWidth):
(WebCore::RenderText::calcMinMaxWidthInternal):
(WebCore::RenderText::setTextInternal):
(WebCore::RenderText::width):
* rendering/RenderText.h:
(WebCore::RenderText::allowTabs):
* rendering/bidi.cpp:
2007-03-30 David Hyatt <hyatt@apple.com>
Fix (take 2) for bug 4334, flickering when floating elements gain/lose transparency.
Reviewed by mitz
* rendering/RenderBlock.cpp:
* rendering/RenderBlock.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::setStyle):
2007-03-29 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13166
REGRESSION (2005-10-16 - 2005-10-19): Ampersands showing up in the last column of the Gmail contacts table
Test: fast/tokenizer/write-partial-entity.html
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::parseTag): Reordered to avoid resetting the buffer position
after script execution which can write to the buffer.
2007-03-29 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/5099303> Deleting after a ToDo puts the caret in the wrong position
We were failing to create the correct selection
for DeleteSelectionCommand because the selection extension
operations don't skip over non-editable content for editable
selections.
* editing/SelectionController.cpp:
(WebCore::SelectionController::modifyExtendingRightForward):
When extending an editable selection, don't extend into
non-editable content.
(WebCore::SelectionController::modifyExtendingLeftBackward):
Ditto.
2007-03-29 Patti Hoa <patti@apple.com>
Reviewed by harrison.
<rdar://problem/4918397> Exception raise inspecting note contents in the background
* WebCore.xcodeproj/project.pbxproj:
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject subrole]):
(-[WebCoreAXObject title]):
Check that attachment supports the attribute before requesting it.
2007-03-29 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/5032066> Delete should work between ToDos
Stop selecting the table when the user attempts to delete
the line break just after it, instead, extend the selection
into the last table cell.
Let deletion merge content into table cells (as long as
its not from another table cell).
Start calling shouldInsertNode:replacingDOMRange:givenAction:
when moving content with moveParagraphs, so that Mail can
modify content before it is moved into a ToDo during a delete.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs): Ask the
delegate before performing the move. This will let Mail
prevent styles from entering a ToDo.
Added a FIXME about adding a new WebViewInsertAction
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::initializePositionData):
Allow merging into table cells from content not in a table.
* editing/SelectionController.cpp:
(WebCore::SelectionController::modifyExtendingRightForward):
Don't select the table when extending by character/word from
just before it. This code was here to make it easier to select
tables in order to delete them, but the deletion UI makes it
largely unnecessary.
(WebCore::SelectionController::modifyExtendingLeftBackward):
Ditto.
* editing/TypingCommand.cpp:
(WebCore::isFirstPositionAfterTable): Added.
(WebCore::isLastPositionBeforeTable): Ditto.
(WebCore::TypingCommand::deleteKeyPressed): When pressing
the delete key with a caret at the beginning of a paragraph
just after a table, move the paragraph into the last table
cell.
Do not do this if it would mean moving a block table.
Removed some old irrelevant comments.
* editing/htmlediting.cpp: Removed unused functions.
* editing/htmlediting.h:
2007-03-29 Adam Treat <adam@staikos.net>
Reviewed and committed by George Staikos.
Remove redundant line.
* platform/qt/FontDataQt.cpp:
(WebCore::FontData::platformInit):
2007-03-29 Adam Treat <adam@staikos.net>
Reviewed by David Hyatt, committed by George Staikos.
Test: fast/text/justified-selection.html
Take into account the entire run length to get a proper selection.
* platform/Font.cpp:
(WebCore::WidthIterator::WidthIterator):
2007-03-29 David Hyatt <hyatt@apple.com>
Fix for <rdar://problem/4545060>, technorati and arstechnica fail because of getComputedStyle not
reporting display:none properly when it is set. This is bugzilla bug 13103.
Reviewed by mitz
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2007-03-28 Oliver Hunt <oliver@apple.com>
Reviewed by Hyatt.
Rename DocLoader::setPasteInProgress, etc to more generic
setAllowStaleResources, etc
* editing/Editor.cpp:
(WebCore::Editor::paste):
* loader/DocLoader.cpp:
(WebCore::DocLoader::DocLoader):
(WebCore::DocLoader::checkForReload):
* loader/DocLoader.h:
(WebCore::DocLoader::setAllowStaleResources):
* page/DragController.cpp:
(WebCore::DragController::concludeDrag):
2007-03-28 Oliver Hunt <oliver@apple.com>
Reviewed by Anders and Steve.
Add a flag to DocLoader to prevent it from reloading
when performing a paste or drop operation.
Remove m_cachePolicy from CachedResource as it is never used
Fixes rdar://problem/5044366 : REGRESSION: Repro ASSERT failures
dragging image into GMail message in _web_writeImage and
documentFragmentFromDragData
* editing/Editor.cpp:
(WebCore::Editor::paste):
prevent the docloader from reloading resources on paste
* html/HTMLImageLoader.cpp:
(WebCore::HTMLImageLoader::updateFromElement):
* loader/Cache.cpp:
(WebCore::createResource):
* loader/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
* loader/CachedCSSStyleSheet.h:
* loader/CachedImage.cpp:
(WebCore::CachedImage::CachedImage):
* loader/CachedImage.h:
* loader/CachedResource.cpp:
(WebCore::CachedResource::CachedResource):
* loader/CachedResource.h:
* loader/CachedScript.cpp:
(WebCore::CachedScript::CachedScript):
* loader/CachedScript.h:
* loader/CachedXBLDocument.cpp:
(WebCore::CachedXBLDocument::CachedXBLDocument):
* loader/CachedXBLDocument.h:
* loader/CachedXSLStyleSheet.cpp:
(WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
* loader/CachedXSLStyleSheet.h:
* loader/DocLoader.cpp:
(WebCore::DocLoader::DocLoader):
Tidy up constructor initialise new field
(WebCore::DocLoader::checkForReload):
Prevent reload when pasting
* loader/DocLoader.h:
(WebCore::DocLoader::setPasteInProgress):
new field and setter
* page/DragController.cpp:
(WebCore::DragController::concludeDrag):
prevent the docloader from reloading resources on drop
2007-03-27 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed - fix typo in gdk build.
* platform/gdk/ScrollViewGdk.cpp:
(WebCore::ScrollView::contentsToWindow):
2007-03-28 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin.
- fixed <rdar://problem/4820817> Autoscroll is broken in Mail.app (message jumps around when trying to select text)
Handle scrolling external scrollviews around the webview during
autoscroll or when scrolling into view.
This should also restore performance on BenchJS test 6 lost due to Tim's partial fix.
* page/FrameView.cpp:
(WebCore::FrameView::scrollRectIntoViewRecursively):
* page/FrameView.h:
* platform/ScrollView.h:
* platform/gdk/ScrollViewGdk.cpp:
(WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
(WebCore::ScrollView::scrollRectIntoViewRecursively):
* platform/mac/ScrollViewMac.mm:
(WebCore::ScrollView::visibleContentRect):
(WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
(WebCore::ScrollView::scrollRectIntoViewRecursively):
(WebCore::ScrollView::updateContents):
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
(WebCore::ScrollView::scrollRectIntoViewRecursively):
* platform/win/ScrollViewWin.cpp:
(WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
* platform/win/TemporaryLinkStubs.cpp:
(WebCore::ScrollView::scrollRectIntoViewRecursively):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible):
2007-03-28 Jungshik Shin <jungshik.shin@gmail.com>
Reviewed and landed by Darin
Get rid of some misuses of |islower| and |tolower| for non-ASCII characters.
http://bugs.webkit.org/show_bug.cgi?id=13138
* platform/StringImpl.cpp:
(WebCore::StringImpl::isLower):
(WebCore::StringImpl::lower):
(WebCore::StringImpl::equalIgnoringCase):
2007-03-28 Antti Koivisto <antti@apple.com>
Reviewed by Hyatt.
Fix <rdar://problem/5092653>
REGRESSION: Image decoding making scrolling slow
If decoder gave back a null frame (which I think happens regularly if you don't have full frame
data yet for image that does not decode incrementally) m_decodedSize was incremented anyway. This
led to massive growth in calculated image size and eventually made cache prune constantly.
No test, I don't know how to make one for this.
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::cacheFrame):
2007-03-28 Adele Peterson <adele@apple.com>
Reviewed by Kevin M.
WebCore part of fix for <rdar://problem/5095515> VitalSource Bookshelf should not pass return statements into stringByEvaluatingJavaScriptFromString
* page/mac/WebCoreFrameBridge.mm: (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
Convert return value to a string. This matches the behavior in Safari 2.0.
2007-03-28 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=13190
XPath incorrectly handles namespaces on attributes
* xml/XPathStep.cpp:
(WebCore::XPath::Step::nodesInAxis): Added a special case for faster attribute lookup; gives a slight but
measurable performance improvement for bug 13021.
(WebCore::XPath::Step::nodeMatches): Fixed NameTest for attribute nodes.
* xml/XPathStep.h:
(WebCore::XPath::Step::NodeTest::NodeTest):
(WebCore::XPath::Step::NodeTest::namespaceURI):
(WebCore::XPath::Step::nodeTest):
(WebCore::XPath::Step::setNodeTest):
Move m_namespaceURI to NodeTest, where it belongs. Removed unused m_nodeTestData (oops!).
* xml/XPathGrammar.y:
* xml/XPathPath.cpp:
(WebCore::XPath::LocationPath::optimizeStepPair):
Accounted for the above change.
2007-03-28 Oliver Hunt <oliver@apple.com>
rs=Hyatt.
Rollout local changes :-/
* loader/Cache.cpp:
(WebCore::Cache::pruneAllResources):
(WebCore::Cache::remove):
2007-03-28 Oliver Hunt <oliver@apple.com>
Reviewed by Hyatt.
Roll out r20511 due to incredible badness
* loader/Cache.cpp:
(WebCore::Cache::pruneAllResources):
(WebCore::Cache::remove):
2007-03-27 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
Don't enforce text-selection drag delay when we are
going to drag an image anyway.
Fixes rdar://problem/4668935
* page/EventHandler.cpp:
(WebCore::EventHandler::handleDrag):
2007-03-27 Justin Garcia <justin.garcia@apple.com>
Build fix
* editing/markup.cpp:
(WebCore::startMarkup):
2007-03-27 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5091898> REGRESSION: GMail Editor: A line of underlined text copied with Select All pastes with wrong font family
createMarkup skipped elements if they were blocks
when called from moveParagraphs (because that function
must receive only inline content). This patch adds
code to inline these blocks instead of skipping them
so that we don't lose any of the style that they
contribute to the copied markup.
* editing/markup.cpp:
(WebCore::startMarkup): Add an inlineBlocks option.
Make sure to overwrite display:block coming from
a style sheet or the inline style declaration.
(WebCore::createMarkup): Don't refuse to include a
specialCommonAncestor that's a block if we were asked
to include only inline content, since we can now inline
block elements in startMarkup.
2007-03-27 Adele Peterson <adele@apple.com>
Reviewed by Hyatt.
Fix for <rdar://problem/5026141> REGRESSION: Aperture Viewer Flashes when switching from Index Page to Detail page in Web Gallery
This disables the paint that occurs after WebCore finishes loading the document. We should reenable this when we
move the dispatchDidFinishLoad delegate callback to happen around the same time as the JS onload call. See <rdar://problem/5092361>.
* dom/Document.cpp: (WebCore::Document::implicitClose):
2007-03-26 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5065910> REGRESSION: In Mail and GMail, Can't apply color to pasted line of text
<rdar://problem/5084241> After deleting a paragraph of colored text, can't change text color
<rdar://problem/5065605> REGRESSION: Text copied with Select All + Copy loses color on Paste
<rdar://problem/4916887> GMAIL: Can't apply color to text once it becomes indented
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::copyInheritableProperties):
If a node's text fill color is invalid, then its children use
their font-color as their text fill color (they don't inherit
it). Likewise for stroke color.
2007-03-27 Anders Carlsson <acarlsson@apple.com>
* platform/ScrollBar.h:
Use wtf/MathExtras.h instead of math.h
2007-03-27 Zack Rusin <zrusin@trolltech.com>
Fix the compile - when using math.h functions
actually include the header with them.
* platform/ScrollBar.h:
2007-03-27 Oliver Hunt <oliver@apple.com>
Reviewed by Maciej.
The WebArchiver needs all the subresources of a document to be accessible
through the DocLoader, so we can't remove a CachedResource simultaneously
from the global Cache and all DocLoaders, just because it needs to be
reloaded in one.
Fixes rdar://problem/5044366
* loader/Cache.cpp:
(WebCore::Cache::remove):
Don't evict the resource from all DocLoaders
* manual-tests/test-iframes-loading-the-same-resource.html: Added.
Alas it wasn't possible to make a nice layout test, even this manual test
is not entirely deterministic
2007-03-27 Mark Rowe <mrowe@apple.com>
Build fix.
* platform/GlyphBuffer.h:
(WebCore::GlyphBuffer::clear):
2007-03-27 Dave Hyatt <hyatt@apple.com>
Add support for glyph offsets to the GlyphBuffer.
Reviewed by olliej
* platform/Font.cpp:
(WebCore::Font::drawGlyphBuffer):
* platform/GlyphBuffer.h:
(WebCore::GlyphBuffer::clear):
(WebCore::GlyphBuffer::swap):
(WebCore::GlyphBuffer::offsetAt):
(WebCore::GlyphBuffer::add):
2007-03-27 Antti Koivisto <antti@apple.com>
Keep buildbot happy.
* platform/mac/PlatformScrollBarMac.mm:
(WebCore::PlatformScrollbar::scrollbarHit):
2007-03-26 Antti Koivisto <antti@apple.com>
Reviewed by Darin.
On Mac, support fine grained wheel events generated by trackpad and Mighty Mouse.
http://bugs.webkit.org/show_bug.cgi?id=13134
<rdar://problem/5076249?
* WebCore.exp:
Export _wkGetWheelEventDeltas
* page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEvent):
Remove (0, 0) scroll event hack, it is not needed anymore.
Do per-pixel scrolling for fine grained events.
* platform/PlatformWheelEvent.h:
(WebCore::PlatformWheelEvent::isContinuous):
Add new m_isContinuous boolean to indicate fine grained wheel events.
* platform/ScrollBar.cpp:
(WebCore::Scrollbar::Scrollbar):
(WebCore::Scrollbar::setValue):
(WebCore::Scrollbar::setSteps):
(WebCore::Scrollbar::scroll):
* platform/ScrollBar.h:
(WebCore::Scrollbar::value):
Use float to represent current position to support finer grained scrolling.
Add ScrollByPixel, remove ScrollByWheel (which was same as ScrollByLine anyway)
* platform/ScrollTypes.h:
(WebCore::):
* platform/gdk/WheelEventGdk.cpp:
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
Initalize m_isContinuous
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
Add wkGetWheelEventDeltas for getting fine grained wheel events
* platform/mac/WheelEventMac.mm:
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
Get the wheel deltas using new wkGetWheelEventDeltas interface
* platform/qt/WheelEventQt.cpp:
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
Initalize m_isContinuous
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::calcHeight):
Pass item height to scrollbar
2007-03-26 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
Fixed <rdar://problem/5088234> REGRESSION: Crash occurs at WebCore::Node::
createRendererIfNeeded() when changing map views with MS Virtual Earth
(http://www.ziprealty.com/)
The cause of the crash was the insertion of a <script> element whose
script removed it from the document. The <script> element would then be
garbage when the insertion routine went on to attach() it.
The solution here is to check that an element is still your child before
trying to attach() it. This matches the style of checks we do elsewhere
in the node insertion and removal code.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::insertBefore):
(WebCore::ContainerNode::replaceChild):
(WebCore::ContainerNode::appendChild):
2007-03-26 David Carson <dacarson@gmail.com>
Reviewed by Darin, landed by Anders.
Manual test case for: REGRESSION (r19559): Java applet crash
http://bugs.webkit.org/show_bug.cgi?id=13142
<rdar://problem/5080340>
* manual-tests/liveconnect-applet-get-boolean.html: Added.
* manual-tests/resources/CheckerApplet.class: Added.
* manual-tests/resources/CheckerApplet.java: Added.
2007-03-26 Mitz Pettel <mitz@webkit.org>
Reviewed and landed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13194
<rdar://problem/5087738>
REGRESSION: Selection rects are wrong for images in search results from images.google.com
Test: fast/replaced/selection-rect-in-table-cell.html
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::selectionRect):
2007-03-26 Geoffrey Garen <ggaren@apple.com>
Removed now-stale #includes of <assert.h>.
* WebCorePrefix.h:
* config.h:
* css/CSSGrammar.y:
* platform/Arena.cpp:
* platform/KURL.cpp:
* platform/SegmentedString.h:
* rendering/DataRef.h:
* rendering/RenderArena.cpp:
2007-03-26 Geoffrey Garen <ggaren@apple.com>
Reviewed by Kevin McCulough.
Global replace of "assert(" with "ASSERT(" to assist debugging. Removed
one instance of commented-out code containing "assert(" instead of replacing it.
2007-03-25 Antti Koivisto <antti@apple.com>
Reviewed by Adam.
Fix <rdar://problem/5049842>
Gmail Editor: Dragging message text in the message body results in a crash at WebCore::Frame::eventHandler()
Null check frame in m_dragTarget, it might be gone already.
* page/EventHandler.cpp:
(WebCore::EventHandler::updateDragAndDrop):
(WebCore::EventHandler::cancelDragAndDrop):
(WebCore::EventHandler::performDragAndDrop):
2007-03-25 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
A partial fix for http://bugs.webkit.org/show_bug.cgi?id=13021
XPath can be very slow
* xml/XPathExpression.cpp:
(WebCore::XPathExpression::evaluate): Reset a reference to the context node, as this may prevent the whole document
from being destroyed in time.
* dom/Attr.cpp:
(WebCore::Attr::createTextChild): Instead of calling appendChild(), just do the few operations it really needs to perform.
* dom/ContainerNode.h:
(WebCore::ContainerNode::fastSetFirstChild):
(WebCore::ContainerNode::fastSetLastChild):
Added operations that let Attr hack internal ContainerNode data (evil, but fast!).
* xml/XPathStep.cpp:
(WebCore::XPath::Step::evaluate):
(WebCore::XPath::Step::nodesInAxis):
(WebCore::XPath::Step::nodeMatches):
* xml/XPathStep.h:
Merged node testing into axis enumeration. This saves a lot of Vector resizing and passing, and is necessary for future
optimizations (sometimes, we can just pick the single result node instead of enumerating and filtering the whole axis).
2007-03-24 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13156
REGRESSION (r19621): Pasting breakable content where wrapped line is too long to fit in a textarea fails to draw a horizontal scrollbar
Test: fast/text/midword-break-after-breakable-char.html
Breaking in the middle of the word
is allowed only if no breaking opportunity between words has occurred yet. The
first position on the line should not be considered "between words" even if
it is a breaking opportunity.
* rendering/bidi.cpp:
(WebCore::RenderBlock::findNextLineBreak): Changed according to the above. Also
cleaned up a couple of lines.
2007-03-24 David Hyatt <hyatt@apple.com>
Fix for bugzilla bug 13187, place a hard limit on the amount of decoded data that WebCore will keep
around even on live pages (pages being displayed in tabs/windows or in the back/forward cache).
Images will decode to paint and once the decoded data exceeds the cache size, the decoded data will be
tossed.
Refine the flushing algorithm to apply the two-pass decode/evict model to each LRU-SP queue individually, rather
than to all the lists at once. This allows the cache to evict large encoded resources before flushing small
or frequently accessed decoded onces.
Added information on live/decoded data to the cache statistics.
Reviewed by darin
* loader/Cache.cpp:
(WebCore::Cache::Cache):
(WebCore::Cache::pruneLiveResources):
(WebCore::Cache::pruneAllResources):
(WebCore::Cache::setMaximumSize):
(WebCore::Cache::remove):
(WebCore::Cache::lruListFor):
(WebCore::Cache::removeFromLRUList):
(WebCore::Cache::insertInLRUList):
(WebCore::Cache::liveLRUListFor):
(WebCore::Cache::removeFromLiveResourcesList):
(WebCore::Cache::insertInLiveResourcesList):
(WebCore::Cache::addToLiveResourcesSize):
(WebCore::Cache::removeFromLiveResourcesSize):
(WebCore::Cache::adjustSize):
(WebCore::Cache::getStatistics):
* loader/Cache.h:
(WebCore::Cache::TypeStatistic::TypeStatistic):
* loader/CachedImage.cpp:
(WebCore::CachedImage::decodedSizeWillChange):
(WebCore::CachedImage::decodedSizeChanged):
* loader/CachedImage.h:
* loader/CachedResource.cpp:
(WebCore::CachedResource::CachedResource):
(WebCore::CachedResource::ref):
(WebCore::CachedResource::deref):
(WebCore::CachedResource::setEncodedSize):
(WebCore::CachedResource::liveResourceAccessed):
* loader/CachedResource.h:
(WebCore::CachedResource::liveAccessCount):
(WebCore::CachedResource::resetLiveAccessCount):
(WebCore::CachedResource::increaseLiveAccessCount):
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::destroyDecodedData):
(WebCore::BitmapImage::cacheFrame):
* platform/graphics/ImageObserver.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintBackgroundExtended):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::paint):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::paint):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::paintBorderImage):
2007-03-24 Darin Adler <darin@apple.com>
Reviewed by Mitz.
- fix http://bugs.webkit.org/show_bug.cgi?id=13123
CSS selectors that use :lang, :not, and namespaces do not serialize correctly
Test: fast/css/css-selector-text.html
* css/CSSSelector.cpp: (WebCore::CSSSelector::selectorText): Add the namespace
prefix for tag or attribute names, the sub-selector for :not, and the argument
for :lang.
2007-03-24 Brady Eidson <beidson@apple.com>
Reviewed by Adam
<rdar://problem/5086210> - Move RetainPtr to WTF
* ForwardingHeaders/wtf/RetainPtr.h: Added.
* WebCore.xcodeproj/project.pbxproj: Removed WebCore/RetainPtr.h
* history/HistoryItem.h: Changed #include to <wtf/RetainPtr.h>
* history/PageCache.h: Ditto
* page/mac/WebCoreFrameBridge.mm: Ditto
* platform/ContextMenu.h: Ditto
* platform/ContextMenuItem.h: Ditto
* platform/DragImage.h: Ditto
* platform/FileChooser.h: Ditto
* platform/PlatformKeyboardEvent.h: Ditto
* platform/PopupMenu.h: Ditto
* platform/SharedBuffer.h: Ditto
* platform/cf/RetainPtr.h: Removed.
* platform/graphics/Icon.h: Changed #include
* platform/mac/ClipboardMac.h: Ditto
* platform/mac/PasteboardMac.mm: Ditto
* platform/mac/WidgetMac.mm: Ditto
* platform/network/AuthenticationChallenge.h: Ditto
* platform/network/ResourceError.h: Ditto
* platform/network/ResourceHandle.h: Ditto
* platform/network/ResourceRequest.h: Ditto
* platform/network/ResourceResponse.h: Ditto
* rendering/RenderThemeMac.mm: Ditto
2007-03-24 Mitz Pettel <mitz@webkit.org>
Fix for <rdar://problem/5086797>, layoutPending is now reporting incorrect results, which will lead
to all sorts of layout issues. This is in bugzilla as 13179.
Reviewed by hyatt
- fix http://bugs.webkit.org/show_bug.cgi?id=13179
REGRESSION (r20410): In debug builds, loading a certain page is suspended until redisplay is forced
Moved the root->needsLayout() check from layoutPending() to needsLayout()
to restore the behavior before r20324.
* page/FrameView.cpp:
(WebCore::FrameView::layoutPending):
(WebCore::FrameView::needsLayout):
2007-03-24 Mitz Pettel <mitz@webkit.org>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=13180
<rdar://problem/5084478>
Another debug build crash from ASSERTION FAILED: !needsLayout()
No test possible because updateRendering() is always called after script
execution.
* page/FrameView.cpp:
(WebCore::FrameView::layout): Get the layout root after calling recalcStyle()
since a style recalc may result in needing to do start layout at the root.
2007-03-24 Nikolas Zimmermann <zimmermann@kde.org>
Not reviewed. Build fix.
Fix FloatRect vs. IntRect confusion.
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::nodeAtPoint):
2007-03-25 Mark Rowe <mrowe@apple.com>
Fix incorrect radar number.
* platform/network/mac/ResourceHandleMac.mm:
(-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
2007-03-23 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Oliver.
Fix all known RenderSVGImage problems.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12126 (RenderSVGImage seems to suffer from integer overflow)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12442 (raster images disappearing during script execution (SVG))
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12572 (WebKit does not properly invalidate image region after image load)
Added test: svg/custom/scrolling-embedded-svg-file-image-repaint-problem.html
In RenderSVGImage::paint, do not call shouldPaint() as this will never work properly for SVG renderers, as shouldPaint
doesn't take into account any special SVG transformation (localTransform/absoluteTransform). Just remove the call.
Fix hit detection on RenderSVGImage - it didn't work properly at all. No idea why I didn't notice before.
Thanks Andreas Neumann once again for writing excellent bug reports and pointing me to them :-)
The carto.net navigation tools work as expected now, and also the "dock like" image effect example.
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::paint):
(WebCore::RenderSVGImage::nodeAtPoint):
2007-03-24 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- http://bugs.webkit.org/show_bug.cgi?id=13177
Suppress control characters in the ATSUI code path
* platform/mac/FontMac.mm:
(WebCore::overrideLayoutOperation):
(WebCore::ATSULayoutParameters::initialize):
2007-03-24 David Hyatt <hyatt@apple.com>
Fix for <rdar://problem/5086400>, images scrolled offscreen continue to animate. Safari 2 would
halt animations when images were no longer visible.
Reviewed by mjs, olliej
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::advanceAnimation):
2007-03-24 David Hyatt <hyatt@apple.com>
Fix for <rdar://problem/508328>, sluggish text entry in search field. Make sure
our size actually changed before we decide to do a full repaint because of background/border
complexities.
Reviewed by aroben
* rendering/RenderObject.cpp:
(WebCore::RenderObject::repaintAfterLayoutIfNeeded):
2007-03-23 Dave Hyatt <hyatt@apple.com>
Fix for <rdar://problem/5048219>, spurious glyphs in gmail. This is bugzilla bug 13136, which
will remain open to cover patching the complex text path.
Reviewed by aroben
* platform/Font.cpp:
(WebCore::Font::glyphDataForCharacter):
* platform/Font.h:
(WebCore::Font::treatAsZeroWidthSpace):
* platform/GlyphPageTreeNode.cpp:
(WebCore::GlyphPageTreeNode::initializePage):
2007-03-23 Mitz Pettel <mitz@webkit.org>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=13153
REGRESSION: Visual highlighting of pre-populated blank line in textarea is broken
- fix a bug where selecting across a soft line break did not highlight to
the end of the first line if it contained skipped whitespace
Test: fast/text/selection-hard-linebreak.html
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::selectionState): Changed to treat a selection that ends on the
end of a hard line break as if it ends after the line break. Fixed the case of a selection
that starts and ends in the same text object as the box but does not intersect it
to return SelectionNone instead of selectionBoth.
2007-03-23 Mitz Pettel <mitz@webkit.org>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=13124
REGRESSION: Reproducible crash in Widget::getView
Test: fast/frames/hover-timer-crash.html
* page/Frame.cpp:
(WebCore::Frame::setView): Added a call to EventHandler::clear().
2007-03-23 Justin Garcia <justin.garcia@apple.com>
Reviewed by adele
<rdar://problem/5078739>
Crash in in ReplaceSelectionCommand if the fragment contains only a style span
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::doApply): Check
for an empty fragment after removing a redundant
style span instead of before.
2007-03-23 David Hyatt <hyatt@apple.com>
<rdar://problem/5085063>
Fix non-looping animation on cuteoverload.com. Just always flush
decoded data for large animated images to avoid our cache getting
out of sync with the image source.
Reviewed by ggaren
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::advanceAnimation):
2007-03-23 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Fix for <rdar://problem/5061024> REGRESSION: Returning false from onkeypress event on Input is ignored when key is Tab
http://bugs.webkit.org/show_bug.cgi?id= 13020
No known way to add a layout test for this. We would need a way to know exactly how the event was consumed.
* page/EventHandler.cpp: (WebCore::EventHandler::defaultKeyboardEventHandler):
If the keypress event has its default behavior prevented, then we should consider the keydown event handled.
2007-03-23 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5080333>
REGRESSION: Selection changes when changing the alignment of an image
Regression occurred when we started using moveParagraphs
to move content in applyBlockStyle. moveParagraphs
moves by copying, deleting and reinserting content, and
so must be accompanied by selection preservation code.
That code uses rangeFromLocationAndLength and rangeLength,
which use TextIterators, which don't emit anything for images
and other replaced elements, causing this bug.
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyBlockStyle): Ask rangeLength
and rangeFromLocationAndLength to request that their
TextIterators emit spaces for replaced elements.
Use rangeCompliantEquivalent()s when creating a Range from
VisiblePositions, since some VisiblePositions have illegal
deepEquivalent()s.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs): Ditto.
* editing/TextIterator.cpp:
(WebCore::TextIterator::TextIterator):
(WebCore::TextIterator::handleReplacedElement): Emit
a space if requested.
(WebCore::TextIterator::representNodeOffsetZero): Emit
ranges before m_node, not around m_lastTextNode. These
ranges should represent the part of the document associated
with the emitted character.
(WebCore::TextIterator::rangeLength): Take in the new bool.
(WebCore::TextIterator::rangeFromLocationAndLength): Ditto.
Also, don't loop an extra time after finding the end of the
range when we're looking for zero length ranges. This appeared
to be a workaround for the bugs fixed in representNodeOffsetZero
in this patch.
* editing/TextIterator.h:
2007-03-24 Mark Rowe <mrowe@apple.com>
Rubber-stamped by Darin.
* Configurations/WebCore.xcconfig: Remove unnecessary INFOPLIST_PREPROCESS.
2007-03-23 Darin Adler <darin@apple.com>
* html/HTMLBodyElement.cpp: Fix comment typo.
2007-03-23 Adam Treat <adam@staikos.net>
Reviewed and committed by George.
Patch from Adam Treat to make the Qt build work without SVG and XSLT.
XMLNames is required in any case.
* WebCore.pro:
2007-03-23 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- <rdar://problem/5074439> handle margins on frame and iframe elements
without involving FrameView, FrameLoader, etc.
* html/HTMLBodyElement.cpp: (WebCore::HTMLBodyElement::insertedIntoDocument):
Grab the margin from the frame directly here. There was no real benefit
to doing this via FrameView. Later we can delete quite a bit of unneeded code
here and in WebKit that exists only to set up the margin values in FrameView,
which are now unused.
2007-03-23 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Fix for <rdar://problem/5080428> REGRESSION: getting value for hidden input element fails after the fix for Bug 11866
http://bugs.webkit.org/show_bug.cgi?id=13121
Rolled out the change for 11866 that made hidden input elements store the value separately from the value attribute.
Added an m_originalValue field that gets set when the element is done being parsed (in closeRenderer). In reset,
use the m_originalValue for hidden input elements.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::closeRenderer):
(WebCore::HTMLInputElement::reset):
(WebCore::HTMLInputElement::setValue):
(WebCore::HTMLInputElement::storesValueSeparateFromAttribute):
* html/HTMLInputElement.h:
2007-03-23 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13157
<rdar://problem/5083995>
List markers positioned incorrectly and don't repaint properly on Oxford homepage
Test: fast/lists/marker-image-error.html
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::imageChanged): Mark ourselves for relayout if
the image failed to load, since that means we will use a bullet instead.
2007-03-23 Zack Rusin <zrusin@trolltech.com>
Fix the compile.
* platform/graphics/qt/ImageSourceQt.cpp:
2007-03-22 Dave Hyatt <hyatt@apple.com>
Fix for <rdar://problem/5083072>.
* page/Frame.cpp:
(WebCore::Frame::setPrinting):
(WebCore::Frame::forceLayoutWithPageWidthRange):
* page/Frame.h:
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge forceLayoutWithMinimumPageWidth:maximumPageWidth:adjustingViewSize:]):
2007-03-22 Anders Carlsson <acarlsson@apple.com>
Reviewed by Ada.
<rdar://problem/5074974>
CrashTracer: [USER] repro crash in Safari at com.apple.WebCore: WebCore::FrameLoader::activeDocumentLoader const + 6
* loader/mac/NetscapePlugInStreamLoaderMac.mm:
(WebCore::NetscapePlugInStreamLoader::didReceiveResponse):
Don't use ResourceResponse:isHTTP here since that only looks at the protocol instead of if the response came from a
HTTP server (and not a web archive).
2007-03-22 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed - gdk build fix.
* platform/graphics/cairo/ImageSourceCairo.cpp:
2007-03-22 Dave Hyatt <hyatt@apple.com>
Fix for <rdar://problem/5083473>. Make sure wheeling still forwards to the frame view even
when no node is hit. Technically not ever hitting a node is a regression from the RenderView
size changes (making it be the size of the initial containing block according to CSS2.1), but
we should still handle this case gracefully in case it comes up again.
Reviewed by olliej
* page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEvent):
2007-03-22 Justin Garcia <justin.garcia@apple.com>
Reviewed by kevin
<rdar://problem/5081257>
REGRESSION: New Mail signatures start out empty
* editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::canonicalPosition): Allow
descent from positions inside the document into an
editable body.
2007-03-22 Brady Eidson <beidson@apple.com>
Reviewed by Adele and John
<rdar://5043528> - Prepare for new API
* platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::clearAuthentication): Clear CF type
2007-03-22 Beth Dakin <bdakin@apple.com>
Patch by Hyatt, reviewed and committed by me.
Does not reproduce consistently, so a layout test does not seem
possible.
Fix for <rdar://problem/5082421> Constantly hitting ASSERT(!
needsLayout()) in RenderView::paint()
* page/FrameView.cpp:
(WebCore::FrameView::layoutPending): It is not enough to ask if the
layout timer is active. There may be times that we don't have a
body yet so we cannot schedule layout yet, but the root still needs
layout.
2007-03-22 John Sullivan <sullivan@apple.com>
Reviewed by Darin
Followup for recent fix to 5079700, found by assertion added to Safari.
* page/mac/FrameMac.mm:
(WebCore::Frame::searchForLabelsBeforeElement):
Fixed another place in this method where an empty NSString was being returned instead of nil.
Cleaned up the style a little too.
2007-03-22 David Hyatt <hyatt@apple.com>
Remove unnecessary destroyFrameAtIndex call. Now that we throw away
the image source, it is no longer needed.
Reviewed by beth
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::destroyDecodedData):
2007-03-22 David Harrison <harrison@apple.com>
Reviewed by Geoff, Darin.
<rdar://problem/5077892> In RapidWeaver 3.5.1, a crash occurs when attempting to load Safari Bookmarks in iMedia Browser
* platform/mac/ThreadCheck.mm:
(WebCore::_WebCoreThreadViolationCheck):
Change default on Tiger to NSLog rather than raise an exception.
2007-03-22 Darin Adler <darin@apple.com>
Reviewed by Brady.
- use binary_search instead of hash table; slightly better performance and
less memory use
* platform/network/ResourceHandle.cpp: (WebCore::ResourceHandle::portAllowed):
Use binary_search.
2007-03-22 Darin Adler <darin@apple.com>
Reviewed by Adele.
- fix <rdar://problem/5074630> detachChildren call should move from WebKit to WebCore
* loader/FrameLoader.cpp: (WebCore::FrameLoader::setDocumentLoader):
Add a call to detachChildren() after the call to prepareForDataSourceReplacement().
There was no reason for this crucial loading step to be left to the client.
2007-03-22 David Hyatt <hyatt@apple.com>
Minor refactoring and cleanup of the bridge calls that want to control layout settings on the RenderView.
Have the bridge talk through the FrameView instead of just asking for the RenderView directly.
Add an assert to help catch situations where the RenderView needs layout at paint time, since this is a known
catastrophic scenario that will (much of the time) result in a crash in RenderTableSection::paint.
Reviewed by aroben
* page/FrameView.cpp:
(WebCore::FrameView::adjustViewSize):
(WebCore::FrameView::needsLayout):
(WebCore::FrameView::setNeedsLayout):
* page/FrameView.h:
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge needsLayout]):
(-[WebCoreFrameBridge setNeedsLayout]):
* rendering/RenderView.cpp:
(WebCore::RenderView::paint):
2007-03-21 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
Re-worked the fix in r20375. 'M' and 'm' are not the only commands that
accept "extra" coordinates -- virtually all commands accept them.
* ksvg2/svg/SVGParserUtilities.cpp:
(WebCore::SVGPathParser::parseSVG):
2007-03-21 David Harrison <harrison@apple.com>
Reviewed by hyatt.
<rdar://problem/5072460> CrashTracer: [USER] 1 crashes in Xcode at com.apple.ImageIO.framework: getBandProcPNG + 168
An NSData object was being alloc/init'd, then returned callers who cast the pointer as a
CFDataRef, including calling CFRelease on it. The problem is that under garbage collection, the NS
retain count is ignored (it's always 0), but the CFRetain and CFRelease are not ignored. This
caused the object to be over-released. The solution that works in both GC and non-GC is to "transfer"
the initial NS retain count to the CF retain count, using HardRetainWithNSRelease.
The creator of the NSData was SharedBuffer::createNSData. The callers were PDFDocumentImage::dataChanged()
and ImageSource::setData(). This particular crash involved the ImageSource::setData() case.
* platform/SharedBuffer.h:
Declare createCFData().
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::ImageSource::setData):
Call createCFData instead of createNSData.
* platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::dataChanged):
Call createCFData instead of createNSData.
* platform/mac/SharedBufferMac.mm:
(WebCore::SharedBuffer::createCFData):
Implement createCFData(). Use HardRetainWithNSRelease for gc safety.
2007-03-21 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13145
Regression: Scrollbar not resizing after display none
Test: fast/dynamic/view-overflow.html
* rendering/RenderView.cpp:
(WebCore::RenderView::layout): Reset overflowHeight() and overflowWidth()
before calling docHeight() and docWidth(), since the former act as a lower
bound for the latter.
2007-03-21 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
A little cleanup based work I've been doing on the SVG parsers.
* ksvg2/svg/SVGParserUtilities.h:
(WebCore::skipString):
* ksvg2/svg/SVGPreserveAspectRatio.cpp: Moved checkString into
SVGParserUtilities.h, so it could be with all its friends. Renamed
"checkString" to "skipString" to match the rest of the code and to be
clear about which functions move the buffer pointer.
(WebCore::SVGPreserveAspectRatio::parsePreserveAspectRatio):
* ksvg2/svg/SVGTransformable.cpp:
(WebCore::SVGTransformable::parseTransformAttribute): Changed gotos into
returns. Removed unnecessary magic number.
2007-03-21 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
Fixed <rdar://problem/5078471> SVG rgb color parser runs past end of
buffer when running fuzzing test
* ksvg2/svg/SVGColor.cpp:
(WebCore::parseNumberOrPercent): Check for past the end condition.
(WebCore::SVGColor::colorFromRGBColorString): Reversed "read past end
of buffer, then check if you're past the end" logic.
2007-03-21 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
Fixed <rdar://problem/5079410> SVG path parser hangs, exhausts memory when
running fuzzer test
* ksvg2/svg/SVGParserUtilities.cpp:
(WebCore::SVGPathParser::parseSVG): Don't assume that extra digits are
always preceded by an 'M' or an 'm'.
2007-03-21 John Sullivan <sullivan@apple.com>
Reviewed by Adam
- fixed <rdar://problem/5079700> REGRESSION (r19702): Name/password aren't autofilled
or saved for .Mac homepage login
* page/mac/FrameMac.mm:
(WebCore::Frame::searchForLabelsBeforeElement):
don't count empty strings as valid results
2007-03-21 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
* editing/markup.cpp:
(WebCore::styleFromMatchedRulesAndInlineDecl):
Release the RefPtr to avoid increasing/decreasing
the refcount unnecessarily.
(WebCore::propertyMissingOrEqualToNone): Added and used
instead of converting values to strings.
(WebCore::elementHasTextDecorationProperty):
(WebCore::createMarkup):
2007-03-21 Justin Garcia <justin.garcia@apple.com>
Reviewed by oliver
<rdar://problem/5075944>
REGRESSION: Partially selected underlined content pastes as plain text
We stopped adding markup for all the ancestors
of lastClosed up to the commonAncestorBlock
because it was adding a lot of unnecessary markup.
This caused us to lose underlining when copying a
partially selected underlined element (even though
we put all styles that the copied markup inherits
into a style span, because the text-decoration
isn't inheritable).
* editing/markup.cpp:
(WebCore::styleFromMatchedRulesAndInlineDecl): Moved
code here.
(WebCore::elementHasTextDecorationProperty): Added.
(WebCore::createMarkup): If the copied markup has a
text-decoration because some common ancestor has
a text-decoration property set, include that ancestor
and all its descendants in the copied markup.
2007-03-21 Oliver Hunt <oliver@apple.com>
Reviewed by Antti.
Update a few SVG attribute parsers to be more defensive against
reading beyond the end of input.
Fixes rdar://problem/5077218 -- SVG transform parser runs past
end of buffer when running fuzzing test
* ksvg2/svg/SVGParserUtilities.cpp:
(WebCore::SVGPathParser::parseSVG):
* ksvg2/svg/SVGParserUtilities.h:
(WebCore::skipOptionalSpacesOrDelimiter):
* ksvg2/svg/SVGTransformable.cpp:
(WebCore::parseTransformParamList):
(WebCore::SVGTransformable::parseTransformAttribute):
2007-03-21 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Mitz.
http://bugs.webkit.org/show_bug.cgi?id=13140
Crash after loading SVG fragment with XMLHttpRequest (Yosemite Map Geology Layer)
Test: svg/carto.net/frameless-svg-parse-error.html
* ksvg2/misc/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::reportError): Added a null check.
(WebCore::SVGDocumentExtensions::reportWarning): Ditto.
2007-03-21 Beth Dakin <bdakin@apple.com>
Reviewed by Geoff.
Fix for <rdar://problem/5072678> Crash in
RenderLayer::scrollRectToVisible with MallocScribble enabled
I tried to fix this earlier today but my fix caused a regression
scrolling through RSS pages. It turns out that sometimes scroll
events need to propagate immediately, and sometimes they must be
delayed or they risk deleting objects that are expected to be
around after the event has propagated. Mitz's original fix made
sheduleEvent() only delay events that happen during layout. This
fix marks two other places in addition to layout where events also
need to be delayed. These two places are places that were marked
with FIXMEs that Mitz removed in his original patch. (There was a
third FIXME in RenderLayer::updateScrollInfoAfterLayout() but that
case is only called through layout and is covered by Mitz's
original patch.)
* page/FrameView.cpp:
(WebCore::FrameView::~FrameView): Added assertion.
(WebCore::FrameView::layout): Call new functions to increment and
decrement the queued events count.
(WebCore::FrameView::pauseScheduledEvents):
(WebCore::FrameView::resumeScheduledEvents): Decrement queued
events count and dispatch events if the count has zeroed.
* page/FrameView.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::Marquee::start):
2007-03-21 Mitz Pettel <mitz@webkit.org>
Reviewed by John Sullivan.
- fix http://bugs.webkit.org/show_bug.cgi?id=13130
REGRESSION: Sometimes a frame resizer keeps following the mouse after mouseup
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::userResize): Reordered the code to allow resizing
to be terminated by a mouseup event regardless of whether the frameset needs
layout.
2007-03-20 Anders Carlsson <acarlsson@apple.com>
Reviewed by Oliver.
<rdar://problem/5077252>
In NetNewsWire 2.1.1 and 3.0d62, a crash occurs after triple-clicking a link on the page
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::load):
Move the m_inStopAllLoaders check to the load function that's common for loading a request or substitute data.
2007-03-20 Brady Eidson <beidson@apple.com>
Reviewed by Anders.
<rdar://problem/5073391> and http://bugs.webkit.org/show_bug.cgi?id=13137
Crash in IconDatabase when private browsing is enabled.
The problem was caused by http://trac.webkit.org/projects/webkit/changeset/20182
which changed many uses of char[] and Vector<char> to SharedBuffer. The patch
tended to literally replace a Vector<char> with RefPtr<SharedBuffers> but forgot
to enforce the concept that Vector<char>'s always exist, whereas RefPtr<SharedBuffers>
can be null. This led to derefs.
I took the opportunity to rework the iconDB functions to live in a SharedBuffer
world, as that didn't exist when they were originally written - now they just return
SharedBuffers instead of taking a Vector<char>& as a parameter
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::imageDataForIconURL): Return a SharedBuffer
(WebCore::IconDatabase::iconForPageURL): Null check the SharedBuffer before asking
it if it's empty
(WebCore::IconDatabase::imageDataForIconURLQuery): Return a new SharedBuffer
* loader/icon/IconDatabase.h: Return SharedBuffer's instead of taking Vector<char>&'s
2007-03-20 Adam Roben <aroben@apple.com>
Rubberstamped by Adele.
Roll out r20348 because it was causing crashes.
* page/FrameView.cpp:
(WebCore::FrameViewPrivate::FrameViewPrivate):
(WebCore::FrameView::layout):
(WebCore::FrameView::scheduleEvent):
2007-03-20 Timothy Hatcher <timothy@apple.com>
Reviewed by Kevin Decker.
Rolling out part of r19828 that caused a scrolling regression in Mail.
<rdar://problem/4820817> Message jumps around when trying to select text
* platform/mac/ScrollViewMac.mm:
(WebCore::ScrollView::visibleContentRect):
(WebCore::ScrollView::updateContents):
2007-03-20 Brady Eidson <beidson@apple.com>
Reviewed by John
<rdar://5071341> - Crash in IconLoader::finishLoading()
Though the reproducibility of the crash is still elusive, there's been a crasher likely uncovered
Hyatt's recent caching changings to the IconLoader. This crash tends to hit on sites without favicons,
that serve up complex 404 pages, often when the load is cancelled or redirected. Occasionally, it *seems*
the IconLoader is getting failed/cancelled twice.
This patch adds some assertions and a "fail gracefully in a release build" check that will have to
serve us until we know more about the cause.
* loader/icon/IconLoader.cpp:
(WebCore::IconLoader::didFail): Add an assertion to catch this case
(WebCore::IconLoader::finishLoading): Add an assertion to catch the case, and fail
gracefully in debug builds. Also add an efficiency check to not commit to the DB if there is no
IconURL
2007-03-20 Antti Koivisto <antti@apple.com>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=10747
REGRESSION: Using two fingers on a trackpad to scroll inside a text area makes the whole page move
<rdar://problem/5045710>
Eat smooth scroll events in WebCore if pointer is over scrollable area. Not
really a good fix, smooth scrolling should be supported properly. It should do for now.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEvent):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::isScrollable):
* rendering/RenderListBox.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::isScrollable):
* rendering/RenderObject.h:
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::isScrollable):
* rendering/RenderTextControl.h:
2007-03-20 Beth Dakin <bdakin@apple.com>
Reviewed by Geoff.
Covered by existing test case.
Fix for <rdar://problem/5072678> Crash in
RenderLayer::scrollRectToVisible with MallocScribble enabled
This removes some code that was added with http://bugs.webkit.org/
show_bug.cgi?id=8360. This code was not needed to fix that bug, but
the idea behind it was that there are times when it is safe for
scheduleEvent() to propagate the event immediately. The
MallocScribble crash revealed that this assumption was a bit too
broad; the cause of the crash was that we were propagating events
immediately when it was not safe. Mitz and I discussed this online
and we agree that the safest solution is to revert to the old
behavior here, and always delay the propagation of the event.
* page/FrameView.cpp:
(WebCore::FrameViewPrivate::FrameViewPrivate):
(WebCore::FrameView::layout):
(WebCore::FrameView::scheduleEvent):
2007-03-20 Brady Eidson <beidson@apple.com>
Reviewed by John Sullivan
Add some very helpful logging to the IconLoader's SubresourceLoaderClient impl.
* loader/icon/IconLoader.cpp:
(WebCore::IconLoader::didReceiveResponse):
(WebCore::IconLoader::didReceiveData):
(WebCore::IconLoader::didFail):
(WebCore::IconLoader::didFinishLoading):
2007-03-20 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5071074>
REGRESSION: Links are pasted as plain text at certain positions
moveParagraphs calls createMarkup without annotation, which leaves
out anchor elements that aren't fully selected.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs): We don't want
createMarkup to do full annotation here. Doing so could include
special ancestor blocks, which would prevent the copied content
from appearing in the destination paragraph when it's re-inserted.
Annotation would also inline styles from style sheets, which is
unnecessary because the content is being moved to the same
document it's being moved from.
Added a new bool to createMarkup that when true allows markup for
special ancestors as long as they are inline when annotation is off.
* editing/markup.cpp:
(WebCore::createMarkup): Don't set specialCommonAncestor if annotation
is off, unless it's inline and we've been told it's ok to include such
elements.
* editing/markup.h:
2007-03-20 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12497
Implement XPath result ordering.
XPath::NodeVector typedef is replaced with a real XPath::NodeSet class that knows how
to sort itself, and can remember whether it has been already sorted.
* CMakeLists.txt:
* WebCore.pro:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
Added XPathNodeSet files.
* xml/XPathExpression.cpp: Fixed includes.
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunId::evaluate): Mark the resulting node-set as unsorted.
(WebCore::XPath::FunLocalName::evaluate): Replacing NodeVector with NodeSet.
(WebCore::XPath::FunNamespaceURI::evaluate): Ditto.
(WebCore::XPath::FunName::evaluate): Ditto.
(WebCore::XPath::FunCount::evaluate): Ditto.
(WebCore::XPath::FunSum::evaluate): Ditto.
* xml/XPathNodeSet.cpp: Added.
(WebCore::XPath::parentWithDepth):
(WebCore::XPath::sortBlock):
(WebCore::XPath::NodeSet::sort): Sort the node-set in document order.
(WebCore::XPath::NodeSet::reverse): Reverse the order (useful for making axes such as
parent or ancestor sorted).
(WebCore::XPath::NodeSet::firstNode): Returns the first node in document order; currently
implemented via fully sorting the node-set, but this can obviously be optimized.
(WebCore::XPath::NodeSet::anyNode): Added for symmetry with firstNode().
* xml/XPathNodeSet.h: Added.
(WebCore::XPath::NodeSet::NodeSet):
(WebCore::XPath::NodeSet::operator=):
(WebCore::XPath::NodeSet::size):
(WebCore::XPath::NodeSet::isEmpty):
(WebCore::XPath::NodeSet::operator[]):
(WebCore::XPath::NodeSet::reserveCapacity):
(WebCore::XPath::NodeSet::clear):
(WebCore::XPath::NodeSet::swap):
(WebCore::XPath::NodeSet::append):
(WebCore::XPath::NodeSet::markSorted):
(WebCore::XPath::NodeSet::isSorted):
Most of these methods just call Vector counterparts.
* xml/XPathParser.cpp: Updated the copyright notice.
* xml/XPathPath.cpp:
(WebCore::XPath::Filter::evaluate): Replacing NodeVector with NodeSet.
(WebCore::XPath::Path::evaluate): Ditto.
(WebCore::XPath::LocationPath::evaluate): Replacing NodeVector with NodeSet. This function
always marks the result as unsorted, because it is hard to tell whether a step breaks node order.
Identifying and implementing special cases when it is not necessary to do so is an important
future optimization.
* xml/XPathPath.h: Replacing NodeVector with NodeSet.
* xml/XPathPredicate.cpp:
(WebCore::XPath::EqTestOp::compare): Replacing NodeVector with NodeSet.
(WebCore::XPath::Union::evaluate): Replacing NodeVector with NodeSet. Currently, Union just
marks the result as unordered; we can consider using merge sort to avoid this.
* xml/XPathResult.cpp:
(WebCore::XPathResult::XPathResult): Replacing NodeVector with NodeSet.
(WebCore::XPathResult::singleNodeValue): Ditto.
(WebCore::XPathResult::snapshotLength): Ditto.
(WebCore::XPathResult::iterateNext): Ditto.
(WebCore::XPathResult::snapshotItem): Ditto.
(WebCore::XPathResult::convertTo): Ditto. Sort the result when requested to.
* xml/XPathResult.h: Replacing NodeVector with NodeSet.
* xml/XPathStep.cpp:
(WebCore::XPath::Step::evaluate): If the input is not sorted, mark the output as such, too.
(WebCore::XPath::Step::nodesInAxis): Fixed a number of bugs when enumerating with an
attribute context node.
(WebCore::XPath::Step::nodeTestMatches): Replacing NodeVector with NodeSet.
* xml/XPathStep.h: Ditto.
* xml/XPathUtil.cpp:
(WebCore::XPath::isValidContextNode): XPath data model doesn't put attribute data into child
nodes, so passing such node as a context could cause problems.
* xml/XPathUtil.h: Removed NodeVector typedef.
* xml/XPathValue.cpp:
(WebCore::XPath::Value::Value):
(WebCore::XPath::Value::toNodeSet):
(WebCore::XPath::Value::toBoolean):
(WebCore::XPath::Value::toNumber):
(WebCore::XPath::Value::toString):
* xml/XPathValue.h:
(WebCore::XPath::Value::):
(WebCore::XPath::Value::isNodeSet):
Replacing NodeVector with NodeSet.
2007-03-21 Mark Rowe <mrowe@apple.com>
Build fix.
* bindings/objc/WebScriptObject.mm:
(-[WebScriptObject methodForSelector:]):
(-[WebScriptObject respondsToSelector:]):
2007-03-21 Mark Rowe <mrowe@apple.com>
Reviewed by Tim Hatcher.
Fix for http://bugs.webkit.org/show_bug.cgi?id=13129.
Bug 13129: Democracy Player dies in NSException from WebScriptObject on startup.
Some cross-language scripting bridges use the presence of -(int)count to determine
whether to treat objects as sequence-like. All WebScriptObject's exposed this method
which lead to non-collection WebScriptObject's being mishandled by PyObjC. We now
expose -count only when the object we wrap looks like a collection from a JavaScript
point of view (eg, it has a length property).
* bindings/objc/WebScriptObject.mm:
(-[WebScriptObject _shouldRespondToCount]):
(-[WebScriptObject methodForSelector:]):
(-[WebScriptObject respondsToSelector:]):
(-[WebScriptObject _count]):
* bindings/objc/WebScriptObjectPrivate.h:
2007-03-20 Darin Adler <darin@apple.com>
* page/EventHandler.cpp: (WebCore::EventHandler::handleMouseMoveEvent):
Fix obvious typo in the change from last night -- forgot to assign to the variable.
2007-03-20 Dave Hyatt <hyatt@apple.com>
Refactor fonts a bit for portability.
Reviewed by aroben
* platform/Font.cpp:
(WebCore::Font::drawSimpleText):
(WebCore::Font::drawGlyphBuffer):
(WebCore::Font::floatWidthForSimpleText):
* platform/Font.h:
* platform/FontData.h:
(WebCore::FontData::isSystemFont):
(WebCore::FontData::scriptCache):
* platform/GlyphBuffer.h:
(WebCore::GlyphBuffer::add):
2007-03-20 Anders Carlsson <acarlsson@apple.com>
Reviewed by Adam.
Stub out a couple of CFNetwork backend functions.
* platform/network/ResourceHandle.h:
2007-03-19 Oliver Hunt <oliver@apple.com>
Reviewed by Ada.
Protect against possibility of JS detaching a frame (and losing its view)
midway through a mouse move.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseMoveEvent):
2007-03-19 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=13107
XPath should raise an exception when trying to parse an unknown function
Test: fast/xpath/invalid-functions.html
* xml/XPathFunctions.cpp:
(WebCore::XPath::createFunction): Return 0 if the function couldn't be created.
* xml/XPathGrammar.y: Handle nulls returned from createFunction().
2007-03-19 Adele Peterson <adele@apple.com>
Reviewed by Beth.
Fix for http://bugs.webkit.org/show_bug.cgi?id=13087
<rdar://problem/5064316> REGRESSION: Allow setting the checked attribute in js and in markup for unnamed radio buttons (dominos.com)
Test: fast/forms/radio_checked_name.html
We were matching a WinIE quirk that does not allow a user to check and uncheck an unnamed radio button. But they still
allow the checked attribute to be set in html, and changed in javascript. So this change matches that behavior.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseMappedAttribute): We no longer need a special call to setChecked when parsing the name
attribute, since we setChecked will now work with unnamed radio buttons.
(WebCore::HTMLInputElement::preDispatchEventHandler): Added comment.
(WebCore::HTMLInputElement::setChecked): Don't check for the unnamed radio button case here.
(WebCore::HTMLInputElement::postDispatchEventHandler): Don't call setChecked for unnamed radio buttons.
(WebCore::HTMLInputElement::defaultEventHandler): ditto.
2007-03-19 Adam Roben <aroben@apple.com>
Rubberstamped by Oliver.
* bridge/JavaScriptStatistics.cpp: Added missing header for
correctness.
2007-03-19 Andrew Wellington <proton@wiretapped.net>
Reviewed by Maciej.
Really set Xcode editor to use 4 space indentation (http://webkit.org/coding/coding-style.html)
* WebCore.xcodeproj/project.pbxproj:
2007-03-19 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5071074>
REGRESSION: Links that aren't fully selected copy and paste as only text
We stopped adding markup for all commonAncestorBlocks
and the ancestors of lastClosed up to them because it
was adding a lot of unnecessary markup.
* editing/markup.cpp:
(WebCore::createMarkup): Also include markup for nodes
up to an enclosing anchor. Cleaned up the code for
including special common ancestors a bit.
2007-03-19 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Lars Knoll.
Fix crash when opening a SVG document which contains SVG elements, but no <svg> root element.
Moving the mouse was crashing WebKit. Fixes svg/hixie/dynamic/006.xml.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::updateHitTestResult):
2007-03-19 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13117
REGRESSION (r14658): Flickering text fields when updating via javascript
* page/Frame.cpp:
(WebCore::Frame::forceLayout): Added a flag to allow partial relayout.
* page/Frame.h:
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge forceLayoutAdjustingViewSize:]): Allow partial relayout
if not adjusting view size.
(-[WebCoreFrameBridge needsLayout]): Changed to check for pending subtree
layout instead of just whether the root needs layout.
2007-03-18 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Maciej.
Make JS function calls on POD-types (ie. SVGLength) take effect.
Calling ie. newValueInSpecifiedUnits on SVGLength works as expected.
This worked fine before we switched to SVGLength POD type, so this
can be considered as P1 regression fix.
Partly fix svg/hixie/dynamic/005-broken.svg. We match Opera now though
it's not yet completly fixed. Setting baseVal attribute on SVGAnimatedString
doesn't work as expected - needs a seperated fix.
* bindings/scripts/CodeGeneratorJS.pm:
2007-03-19 Adele Peterson <adele@apple.com>
Reviewed by Adam.
Adding comments and a little cleanup from my last checkin.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::setSelectedIndex): Removed commented out assert. Added comment about how we use onChange.
(WebCore::HTMLSelectElement::selectAll): Added comment about how we use saveLastSelection and onChange.
(WebCore::HTMLSelectElement::dispatchFocusEvent): ditto.
(WebCore::HTMLSelectElement::dispatchBlurEvent): ditto.
(WebCore::HTMLSelectElement::menuListDefaultEventHandler): ditto.
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler): ditto.
(WebCore::HTMLSelectElement::menuListOnChange): Added assert that usesMenuList() is true.
(WebCore::HTMLSelectElement::listBoxOnChange): Added assert that usesMenuList() is false.
(WebCore::HTMLSelectElement::saveLastSelection): Added early return for menu lists.
2007-03-19 Mitz Pettel <mitz@webkit.org>
Reviewed by Tim Hatcher.
- fix http://bugs.webkit.org/show_bug.cgi?id=13091
REGRESSION (r20075): Wrong text style and pixel break in Apple Store Locator HUD
Test: fast/innerHTML/additional-inline-style.html
* editing/markup.cpp:
(WebCore::startMarkup): Changed to add inline style based on CSS rules only
in AnnotateForInterchange mode.
2007-03-19 Zack Rusin <zrusin@trolltech.com>
Compile fix.
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::update):
2007-03-19 Adam Roben <aroben@apple.com>
Reviewed by Hyatt and Maciej.
Renamed WebCoreJavaScript to JavaScriptStatistics and made it C++ as
part of <rdar://problem/5071653>.
All layout tests pass.
* WebCore.exp: Updated.
* WebCore.xcodeproj/project.pbxproj: Updated.
* bridge/JavaScriptStatistics.cpp: Moved from
bridge/mac/WebCoreJavaScript.mm, and converted to C++.
(WebCore::collect):
(WebCore::JavaScriptStatistics::objectCount):
(WebCore::JavaScriptStatistics::interpreterCount):
(WebCore::JavaScriptStatistics::protectedObjectCount):
(WebCore::JavaScriptStatistics::rootObjectTypeCounts):
(WebCore::JavaScriptStatistics::garbageCollect):
(WebCore::JavaScriptStatistics::garbageCollectOnAlternateThread):
(WebCore::JavaScriptStatistics::shouldPrintExceptions):
(WebCore::JavaScriptStatistics::setShouldPrintExceptions):
* bridge/JavaScriptStatistics.h: Added.
* bridge/mac/WebCoreJavaScript.h: Removed.
* bridge/mac/WebCoreJavaScript.mm: Removed.
2007-03-18 Maciej Stachowiak <mjs@apple.com>
Reviewed by Mark.
- avoid static construction (and global variable access) in a smarter, more portable way,
to later enable MUTLI_THREAD mode to work on other platforms and compilers.
* bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
* bindings/js/JSHTMLInputElementBase.cpp:
(WebCore::JSHTMLInputElementBaseFunction::JSHTMLInputElementBaseFunction):
* bindings/js/JSHTMLOptionElementConstructor.cpp:
(WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
* bindings/js/JSXMLHttpRequest.cpp:
(KJS::JSXMLHttpRequestConstructorImp::JSXMLHttpRequestConstructorImp):
* bindings/js/JSXSLTProcessor.cpp:
(KJS::XSLTProcessorConstructorImp::XSLTProcessorConstructorImp):
* bindings/js/kjs_dom.cpp:
(KJS::DOMNamedNodeMap::getOwnPropertySlot):
(KJS::DOMNamedNodesCollection::getOwnPropertySlot):
* bindings/js/kjs_events.cpp:
(KJS::JSAbstractEventListener::handleEvent):
* bindings/js/kjs_html.cpp:
(KJS::HTMLElementFunction::HTMLElementFunction):
(KJS::JSHTMLCollection::getOwnPropertySlot):
* bindings/js/kjs_window.cpp:
(KJS::ScheduledAction::execute):
* bindings/objc/WebScriptObject.mm:
* bindings/scripts/CodeGeneratorJS.pm:
2007-03-18 Andrew Wellington <proton@wiretapped.net>
Reviewed by Mark Rowe
Set Xcode editor to use 4 space indentation (http://webkit.org/coding/coding-style.html)
* WebCore.xcodeproj/project.pbxproj:
2007-03-18 David Hyatt <hyatt@apple.com>
Fix for REGRESSION bug 13108, frame borders being painted when they shouldn't be. Rework both frame borders
and resizing to be more like other browsers.
Reviewed by ggaren
fast/frames/no-frame-borders.html
* html/HTMLFrameElement.cpp:
(WebCore::HTMLFrameElement::HTMLFrameElement):
(WebCore::HTMLFrameElement::attach):
(WebCore::HTMLFrameElement::parseMappedAttribute):
* html/HTMLFrameElement.h:
(WebCore::HTMLFrameElement::hasFrameBorder):
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::HTMLFrameElementBase):
(WebCore::HTMLFrameElementBase::parseMappedAttribute):
* html/HTMLFrameElementBase.h:
* html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::attach):
* html/HTMLFrameSetElement.h:
(WebCore::HTMLFrameSetElement::hasFrameBorder):
* html/HTMLIFrameElement.cpp:
(WebCore::HTMLIFrameElement::HTMLIFrameElement):
* rendering/RenderFrame.cpp:
(WebCore::RenderFrame::edgeInfo):
* rendering/RenderFrame.h:
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::paint):
(WebCore::RenderFrameSet::GridAxis::resize):
(WebCore::RenderFrameSet::fillFromEdgeInfo):
(WebCore::RenderFrameSet::computeEdgeInfo):
(WebCore::RenderFrameSet::edgeInfo):
(WebCore::RenderFrameSet::layout):
(WebCore::RenderFrameSet::startResizing):
(WebCore::RenderFrameSet::continueResizing):
(WebCore::RenderFrameSet::canResizeRow):
(WebCore::RenderFrameSet::canResizeColumn):
(WebCore::RenderFrameSet::splitPosition):
(WebCore::RenderFrameSet::hitTestSplit):
(WebCore::RenderFrameSet::dump):
* rendering/RenderFrameSet.h:
(WebCore::):
(WebCore::FrameEdgeInfo::FrameEdgeInfo):
(WebCore::FrameEdgeInfo::preventResize):
(WebCore::FrameEdgeInfo::allowBorder):
(WebCore::FrameEdgeInfo::setPreventResize):
(WebCore::FrameEdgeInfo::setAllowBorder):
2007-03-19 Mark Rowe <mrowe@apple.com>
Rubber-stamped by Brady.
Update references to bugzilla.opendarwin.org with bugs.webkit.org.
* ChangeLog:
* WebCore.vcproj/WebCore/build-generated-files.sh:
* manual-tests/ATSU-bad-layout.html:
* manual-tests/accidental-strict-mode.html:
* manual-tests/applet-param-no-name.html:
* manual-tests/bidi-parens.html:
* manual-tests/bugzilla-3855.html:
* manual-tests/bugzilla-4840.html:
* manual-tests/bugzilla-6821.html:
* manual-tests/containing-block-position-chage.html:
* manual-tests/contenteditable-link.html:
* manual-tests/css3-cursor-fallback-quirks.html:
* manual-tests/css3-cursor-fallback-strict.html:
* manual-tests/custom-cursors.html:
* manual-tests/dictionary-scrolled-iframe.html:
* manual-tests/dom-manipulation-on-resize.html:
* manual-tests/drag-image-to-address-bar.html:
* manual-tests/empty-link-target.html:
* manual-tests/empty-title-popup.html:
* manual-tests/first-line-style-crash.html:
* manual-tests/invalid-mouse-event.html:
* manual-tests/left-overflow-repaint.html:
* manual-tests/linkjump-3.html:
* manual-tests/log-keypress-events.html:
* manual-tests/named-window-blank-target.html:
* manual-tests/plain-text-paste.html:
* manual-tests/plugin-controller-datasource.html:
* manual-tests/pre-tab-selection-rect.html:
* manual-tests/redirection-target.html:
* manual-tests/redraw-page-cache-visited-links.html:
* manual-tests/reset-initiatedDrag.html:
* manual-tests/resources/named-window-blank-target-step2.html:
* manual-tests/resources/named-window-blank-target-step3.html:
* manual-tests/resources/named-window-blank-target-step4.html:
* manual-tests/resources/redraw-page-cache-visited-links-2.html:
* manual-tests/scrollbar-hittest.html:
* manual-tests/scrollbar-hittest2.html:
* manual-tests/subview-click-assertion.html:
* manual-tests/tabbing-input-google.html:
* manual-tests/text-field-autoscroll.html:
* manual-tests/textarea-after-stylesheet-link.html:
* manual-tests/textarea-focus.html:
* manual-tests/whitespace-pre-affinity.html:
2007-03-18 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed - gdk build fix.
* platform/gdk/ScrollViewGdk.cpp:
(WebCore::ScrollView::update): add a stub
2007-03-18 Brady Eidson <beidson@apple.com>
Reviewed by Hyatt
http://bugs.webkit.org/show_bug.cgi?id=13111
When stopped a load before it completes, partial images become the
broken image icon
* loader/loader.cpp:
(WebCore::Loader::didFail): Split off into a method that knows the
difference between failed and cancelled. If a load is cancelled,
don't call error() on the object - only remove it from the cache
(WebCore::Loader::cancelRequests): Call didFail(loader, true)
* loader/loader.h: Added didFail(SubresourceLoader*, bool cancelled)
2007-03-18 Mitz Pettel <mitz@webkit.org>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=13101
REGRESSION (NativeTextField): Specifying word-wrap:break-word makes text field wrap
Test: fast/forms/input-text-word-wrap.html
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::createInnerTextStyle): Force the inner block to
'word-wrap:normal'.
2007-03-18 Dan Waylonis <waylonis@mac.com>
Reviewed by Tim Hatcher.
Fix http://bugs.webkit.org/show_bug.cgi?id=13005
Bug 13005: WebScriptObject +throwException needs NULL check.
Add checking for NULL interpreter before throwing exception.
* bindings/objc/WebScriptObject.mm:
(+[WebScriptObject throwException:]):
2007-03-18 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Fixed http://bugs.webkit.org/show_bug.cgi?id=13106
REGRESSION: Incomplete document.all implementation breaks abtelectronics.com
(Style Change Through JavaScript Blanks Content)
When indexing into collections, treat the empty string as an invalid argument,
instead of the number 0.
* bindings/js/kjs_html.cpp:
(KJS::JSHTMLCollection::getOwnPropertySlot):
(KJS::JSHTMLCollection::callAsFunction):
(KJS::JSHTMLCollectionPrototypeFunction::callAsFunction):
2007-03-18 David Hyatt <hyatt@apple.com>
Use fillRect instead of drawLine, since drawLine has some odd behavior (it's only used for borders).
Reviewed by aroben
* platform/graphics/IntRect.h:
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::paintColumnBorder):
(WebCore::RenderFrameSet::paintRowBorder):
2007-03-18 David Hyatt <hyatt@apple.com>
Change the frameborder color to be light gray for framesets.
Reviewed by aroben
* rendering/RenderFrameSet.cpp:
(WebCore::borderFillColor):
(WebCore::RenderFrameSet::paintColumnBorder):
(WebCore::RenderFrameSet::paintRowBorder):
2007-03-18 David Hyatt <hyatt@apple.com>
Make iframes work properly with frameborder="0".
Reviewed by aroben
* html/HTMLIFrameElement.cpp:
(WebCore::HTMLIFrameElement::mapToEntry):
(WebCore::HTMLIFrameElement::parseMappedAttribute):
2007-03-18 David Hyatt <hyatt@apple.com>
Add a 2px border by default to <iframe>s for compatibility with other browsers.
Reviewed by aroben
* css/html4.css:
2007-03-18 David Hyatt <hyatt@apple.com>
Move frame borders out of WebKit and into WebCore.
Reviewed by aroben, olliej
* bridge/mac/FrameViewMac.mm:
* css/html4.css:
* html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::HTMLFrameSetElement):
(WebCore::HTMLFrameSetElement::mapToEntry):
(WebCore::HTMLFrameSetElement::parseMappedAttribute):
(WebCore::HTMLFrameSetElement::attach):
* html/HTMLFrameSetElement.h:
(WebCore::HTMLFrameSetElement::hasBorderColor):
* page/FrameView.cpp:
(WebCore::FrameViewPrivate::FrameViewPrivate):
* page/FrameView.h:
* page/mac/WebCoreFrameBridge.h:
* platform/graphics/IntRect.h:
(WebCore::IntRect::topLeft):
(WebCore::IntRect::topRight):
(WebCore::IntRect::bottomLeft):
(WebCore::IntRect::bottomRight):
* rendering/RenderFrame.cpp:
(WebCore::RenderFrame::viewCleared):
* rendering/RenderFrameSet.cpp:
(WebCore::borderStartEdgeColor):
(WebCore::borderEndEdgeColor):
(WebCore::RenderFrameSet::paintColumnBorder):
(WebCore::RenderFrameSet::paintRowBorder):
(WebCore::RenderFrameSet::paint):
* rendering/RenderFrameSet.h:
* rendering/RenderPartObject.cpp:
(WebCore::RenderPartObject::viewCleared):
* rendering/RenderView.cpp:
(WebCore::RenderView::repaintViewRectangle):
2007-03-17 David Hyatt <hyatt@apple.com>
Make onload do an explicit paint when a top-level document is ready (to ensure that a first paint always
happens before any timers set by the onload can fire).
Reviewed by aroben
* dom/Document.cpp:
(WebCore::Document::implicitClose):
* platform/ScrollView.h:
* platform/mac/ScrollViewMac.mm:
(WebCore::ScrollView::update):
2007-03-17 Dave Hyatt <hyatt@apple.com>
Prevent starvation of user input and painting when processing timers.
If we are already in the processing of a custom timer message, don't allow that
processing to do another PostMessage. Force SetTimer to be used instead.
Reviewed by ggaren
* platform/win/SharedTimerWin.cpp:
(WebCore::TimerWindowWndProc):
(WebCore::setSharedTimerFireTime):
2007-03-17 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
Fixed <rdar://problem/5070967> REGRESSION (r20211): Repro crash when
closing View Source window
I award myself 0 points, and may God have mercy on my soul.
* bindings/js/kjs_proxy.cpp:
(WebCore::KJSProxy::~KJSProxy):
2007-03-17 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed - gdk build fix.
* platform/gdk/TemporaryLinkStubs.cpp:
(Pasteboard::writeURL):
2007-03-17 David Hyatt <hyatt@apple.com>
Fix tiny PLT regression. Don't examine the border/background data for RenderImage when images change
unless we actually have a border/background.
Reviewed by Brady
* rendering/RenderImage.cpp:
(WebCore::RenderImage::imageChanged):
2007-03-17 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Sam Weinig.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=13046 (CSS styles on hover and focus are broken for <use>)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12838 (SVG <use> CSS styles broken)
Added test: svg/custom/use-css-events.svg
In general this fixes the peepo.co.uk website.
Forgot to pass the actual StyleChange to the recalcStyle() function,
when calling it on the shadow tree root element.
* ksvg2/svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::recalcStyle):
2007-03-17 Timothy Hatcher <timothy@apple.com>
Reviewed by Mark Rowe.
Made Version.xcconfig smarter when building for different configurations.
Now uses the 522+ OpenSource version for Debug and Release, while using the
full 522.4 version for Production builds. The system prefix is also computed
based on the current system, so 4522.4 on Tiger and 5522.4 on Leopard.
* Configurations/Version.xcconfig:
* Configurations/WebCore.xcconfig:
2007-03-17 Antti Koivisto <antti@apple.com>
Reviewed by Adele.
Fix http://bugs.webkit.org/show_bug.cgi?id=12595
REGRESSION: Can't add item to cart at lnt.com (JS type error)
<rdar://problem/4722863>
Emulate Firefox behavior where form elements accessed by a name
can be accessed with that name later even if the name changes or
even if element is removed from the document.
This is loosely based on Darin's earlier patch for the same problem but
is much less expansive. It takes somewhat different approach to more closely
mimic Firefox behavior. Includes expanded test case.
* bindings/js/JSHTMLFormElementCustom.cpp:
(WebCore::JSHTMLFormElement::canGetItemsForName):
Use new the HTMLFormElement::getNamedElements() method
(WebCore::JSHTMLFormElement::nameGetter):
Use new the HTMLFormElement::getNamedElements() method
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::HTMLFormElement):
(WebCore::HTMLFormElement::~HTMLFormElement):
(WebCore::HTMLFormElement::elementForAlias):
(WebCore::HTMLFormElement::addElementAlias):
Maintain a map of known element aliases
(WebCore::HTMLFormElement::getNamedElements):
Get a list of elements matching the name, based both their
current names and known aliases (earlier names).
Keep the alias list in sync.
* html/HTMLFormElement.h:
2007-03-17 Adele Peterson <adele@apple.com>
Reviewed by Hyatt.
Fix for <rdar://problem/4990050> REGRESSION: onchange gets fired when clicking on a programmatically selected element in a listbox
http://bugs.webkit.org/show_bug.cgi?id=12725
Test: updated fast/forms/listbox-onchange.html
Added HTMLSelectElement::saveLastSelection that is called before changing a selection that could result
in onChange being called. m_lastOnChangeIndex and m_lastOnChangeSelection no longer have to be up-to date all the time,
they just have to be up-to-date before we execute an action that may trigger onChange.
* html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::setSelectedState): Added.
The HTMLSelectElement will only set an option's selected state with this method. This ensures
that notifyOptionSelected won't get called when the call originates from the select element.
* html/HTMLOptionElement.h:
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::deselectItems): Calls setSelectedState.
(WebCore::HTMLSelectElement::setSelectedIndex): ditto. Don't update the last selection variables here. Scroll to the new selection.
The scrolling call used to only be in notifyOptionSelected. There's no reason we shouldn't scroll when the selection is set through
the HTMLSelectElement.
(WebCore::HTMLSelectElement::setValue): Call setSelectedIndex to update all options selected state.
(WebCore::HTMLSelectElement::restoreState): Call setSelectedState.
(WebCore::HTMLSelectElement::selectAll): Call saveLastSelection before making the selection, and calling onChange.
(WebCore::HTMLSelectElement::recalcListItems): Call setSelectedState. Don't need to save selection here anymore,
since it will get saved before we call onChange.
(WebCore::HTMLSelectElement::reset): ditto.
(WebCore::HTMLSelectElement::dispatchFocusEvent): Added. Call saveLastSelection for menu lists, since onChange can be fired
on blur.
(WebCore::HTMLSelectElement::dispatchBlurEvent): Call menuListOnChange.
(WebCore::HTMLSelectElement::menuListDefaultEventHandler): Call saveLastSelection before showing the popup window.
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler): Call saveLastSelection during mousedown (to prepare for an
onchange during mouseup, or after autoscroll).
(WebCore::HTMLSelectElement::updateListBoxSelection): Call setSelectedState.
(WebCore::HTMLSelectElement::menuListOnChange): Added. Compares the m_lastOnChangeIndex to the selectedIndex().
(WebCore::HTMLSelectElement::listBoxOnChange): Move the m_lastOnChangeSelection creation to saveLastSelection.
(WebCore::HTMLSelectElement::saveLastSelection): Added. Sets m_lastOnChangeIndex or m_lastOnChangeSelection.
* html/HTMLSelectElement.h:
* platform/PopupMenu.h:
2007-03-16 Oliver Hunt <oliver@apple.com>
Reviewed by Hyatt.
The old canSaveAsWebArchive call was necessary as stand alone
images used to be rendered by ImageDocument.
Fixes rdar://problem/5061252
* dom/Clipboard.cpp:
* dom/Clipboard.h:
(WebCore::Clipboard::setDragHasStarted):
* page/DragClient.h:
(WebCore::DragClient::declareAndWriteDragImage):
* platform/mac/ClipboardMac.mm:
(WebCore::ClipboardMac::declareAndWriteDragImage):
2007-03-16 Anders Carlsson <acarlsson@apple.com>
Reviewed by Maciej.
<rdar://problem/4869095>
default content type changed for XMLHttpRequest POSTs changed (breaks Flickrator 0.1 widget)
* xml/xmlhttprequest.cpp:
(WebCore::XMLHttpRequest::send):
2007-03-16 Brady Eidson <beidson@apple.com>
Rubberstamped by Tim Hatcher
Update the hash table header for Window object properties
* bindings/js/kjs_window.cpp:
2007-03-16 Brady Eidson <beidson@apple.com>
Reviewed by Anders
<rdar://problem/5061826> and
http://bugs.webkit.org/show_bug.cgi?id=12863
Implement window.stop()
* bindings/js/kjs_window.cpp:
(KJS::WindowFunc::callAsFunction): Add case Window::Stop
* bindings/js/kjs_window.h:
(KJS::Window::): Add "Stop"
2007-03-16 Geoffrey Garen <ggaren@apple.com>
Reviewed by Brady Eidson.
Fixed dir creation to account for already existing dirs and missing leading
dirs in path.
* loader/icon/IconDatabase.cpp:
(WebCore::makeAllDirectories):
2007-03-16 David Hyatt <hyatt@apple.com>
Fix for 13084, assertion failure in the Cache. Convert the client list
to a HashCountedSet so that multiple refs and derefs are allowed.
Fix RenderImage so that if it has the same image used as a background/border
and as the foreground that it will repaint properly (can be tested using
border-image and a foreground image).
Optimize list marker so that it doesn't waste time in the base class method,
since list markers don't support background or border images.
Reviewed by andersca
* ChangeLog:
* loader/CachedResource.cpp:
(WebCore::CachedResource::ref):
* loader/CachedResource.h:
* loader/CachedResourceClientWalker.cpp:
(WebCore::CachedResourceClientWalker::CachedResourceClientWalker):
* loader/CachedResourceClientWalker.h:
* rendering/RenderImage.cpp:
(WebCore::RenderImage::imageChanged):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::imageChanged):
2007-03-16 Geoffrey Garen <ggaren@apple.com>
Reviewed by Anders Carlsson.
Fixed <rdar://problem/5065399> REGRESSION: leaks in Frame::bindingRootObject
seen on buildbot
The problem was that we were initializing the same WebScriptObject twice.
This caused it to leak its original set of ivars.
I think some refactoring could prevent this situation from arising in the
first place, but I'm just adding a check at the call site for now, to do
the simplest thing.
* bindings/objc/WebScriptObject.mm:
(-[WebScriptObject _setImp:originRootObject:rootObject:]): Added ASSERTs
against multiple calls.
* bindings/objc/WebScriptObjectPrivate.h: Renamed _initializeWithObjectImp
to setImp because "init" vs "initialize" was a too subtle indication that
one was a Cocoa initializer and one was not.
2007-03-16 Lars Knoll <lars@trolltech.com>
don't use #import in .cpp files.
* editing/qt/EditorQt.cpp:
2007-03-16 Lars Knoll <lars@trolltech.com>
Fix the Qt build once again.
* platform/qt/PasteboardQt.cpp:
(WebCore::Pasteboard::Pasteboard):
(WebCore::Pasteboard::writeSelection):
(WebCore::Pasteboard::plainText):
(WebCore::Pasteboard::documentFragment):
(WebCore::Pasteboard::writeURL):
(WebCore::Pasteboard::writeImage):
(WebCore::Pasteboard::clear):
2007-03-15 Shrikant Gangoda <shrikant.gangoda@celunite.com>
Gdk build fix.
* loader/gdk/FrameLoaderClientGdk.cpp:
(WebCore::FrameLoaderClientGdk::blockedError):
* loader/gdk/FrameLoaderClientGdk.h:
2007-03-15 Beth Dakin <bdakin@apple.com>
Reviewed by Geoff.
Fix for http://bugs.webkit.org/show_bug.cgi?id=13088 REGRESSION
(r19761-19779): Copy image no longer includes image address
(rdar://5067927)
writeURL() does not need an isImage parameter. Now that it accepts
the types as a parameter, we can just declare the appropriate image
types within writeImage and send them to writeURL(). Also,
declaring the types twice is what broke this.
* platform/Pasteboard.h:
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::writeURL):
(WebCore::Pasteboard::writeImage):
2007-03-15 Adele Peterson <adele@apple.com>
Reviewed by Kevin Decker.
Fix for <rdar://problem/4926179> Text in menulist control should never update if menu is open
* rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::updateFromElement):
Only setTextFromOption if the menu isn't visible.
2007-03-15 Brady Eidson <beidson@apple.com>
Reviewed by Oliver
A few platform specific tweaks
* platform/cf/RetainPtr.h:
(WebCore::RetainPtr::releaseRef): Fixed releaseRef to work with CF
* platform/network/ResourceHandle.h: Added a "releaseRef" style call
2007-03-15 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff and Steve.
* config.h: Remove unneeded hack.
2007-03-15 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/5062376>
REGRESSION: In Mail and Gmail, can't change alignment to text after it has been applied
Bring back the remove step in applyBlockStyle. It's
necessary because addBlockStyleIfNeeded assumes that
the properties it adds aren't already on the block that
it adds them to.
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyBlockStyle):
Bring back the remove step (added a testcase).
Don't do the add step if m_removeOnly is true (no testcase
because there aren't any clients using removeOnly functionality
to remove styles yet, only styled elemets).
Moved the code for creating new blocks up one level
to this function so that we can pass blocks to removeCSSStyle.
When converting VisiblePositions to indices and vice versa,
use the highest node in the shadow tree if we're in one as
the scope (working on a testcase).
(WebCore::ApplyStyleCommand::addBlockStyle): Moved code to
applyBlockStyle.
* editing/ApplyStyleCommand.h:
2007-03-15 Brady Eidson <beidson@apple.com>
Reviewed by Maciej
<rdar://problem/4429701>
Implements a port blocking black list that matches Firefox's
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::blockedError): Call through to the client for blockedError
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h: Get the "port blocked" error for the current platform
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::wasBlocked): ResourceHandleClient method to pass on the didFail(error)
(WebCore::ResourceLoader::blockedError): Following the pattern of "CancelledError()", get the
error to fail with for the didFail() call
* loader/ResourceLoader.h:
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::blockedError): Added stub
* platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::create): If the port is blocked, create the handle but schedule it for
deferred failure on a timer
(WebCore::ResourceHandle::scheduleBlockedFailure): Do the timer scheduling
(WebCore::ResourceHandle::fireBlockedFailure): Fire the timer here
(WebCore::ResourceHandle::portAllowed): Implements checking of Mozilla's
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::wasBlocked): Virtual for clients to get the "blocked" message
2007-03-15 Beth Dakin <bdakin@apple.com>
Reviewed by Hyatt.
Fix for <rdar://problem/5065396> REGRESSION: leaks in
RenderBlock::layoutInlineChildren seen on buildbot
This leak appeared after http://trac.webkit.org/projects/webkit/
changeset/20188. This change shifted line boxes around in
removeChild(). But since removeChild() calls
setNeedsLayoutAndMinMaxRecalc(), all of the line boxes will be
removed once we actually lay out anyway. So this patch fixes the
leak by deleting the line boxes instead of shifting them around.
* editing/IndentOutdentCommand.cpp:
(WebCore::IndentOutdentCommand::outdentParagraph): Call into
updateLayout(). This fixes an assertion I got in editing/
execCommand/4976800.html This is very similar to the line box fix I
made recently (http://trac.webkit.org/projects/webkit/changeset/
20177). We need to update layout before relying on VisiblePositions
after removing a node.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::deleteLinesForBlock): New helper function
since this functionality is needed in three places now.
(WebCore::RenderBlock::makeChildrenNonInline): Call into new
deleteLinesForBlock().
(WebCore::RenderBlock::removeChild): Same.
* rendering/RenderBlock.h:
2007-03-15 Timothy Hatcher <timothy@apple.com>
Reviewed by John.
* Factored out most of our common build settings into .xcconfig files. Anything that was common in
each build configuration was factored out into the shared .xcconfig file.
* Adds a Version.xcconfig file to define the current framework version, to be used in other places.
* Use the new $(BUNDLE_VERSION) (defined in Version.xcconfig) in the preprocessed Info.plist.
* Use the versions defined in Version.xcconfig to set $(DYLIB_CURRENT_VERSION).
* Configurations/Base.xcconfig: Added.
* Configurations/DebugRelease.xcconfig: Added.
* Configurations/Version.xcconfig: Added.
* Configurations/WebCore.xcconfig: Added.
* Info.plist:
* WebCore.xcodeproj/project.pbxproj:
2007-03-15 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed - gdk build fixes.
* platform/gdk/EditorClientGdk.cpp:
(WebCore::EditorClientGdk::handleKeypress):
* platform/graphics/cairo/ImageSourceCairo.cpp:
(WebCore::ImageSource::setData):
* platform/graphics/gdk/ImageGdk.cpp:
(WebCore::Image::loadPlatformResource):
2007-03-14 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
~2x speed up of 5k rich text paste:
http://shakespeare.mit.edu/hamlet/full.html
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::doApply): Remove the top
level style span if it's unnecessary before inserting
into the document, it's faster than doing it after.
* editing/ReplaceSelectionCommand.h: Exposed
ReplacementFragment::removeNodePreservingChildren so that
the style span can be removed using non-undoable removes,
like the rest of the removes done on the ReplacementFragment.
* editing/markup.cpp:
(WebCore::createMarkup): Make the style span the top level
element, otherwise it's useless. This also facilitates the
optimization mentioned above.
When including markup for a fully selected root, include markup
for all the nodes beneath that fully selected root, to preserve
the structure and appearance of the copied markup. Did this
by merging with the code for adding markup for descendants of
special commonAncestorBlocks.
2007-03-15 Beth Dakin <bdakin@apple.com>
Rubber-stamped by Adele.
Rolling out http://trac.webkit.org/projects/webkit/changeset/20148
(which is a fix for http://bugs.webkit.org/show_bug.cgi?id=12595
and rdar://4722863) because it causes a horrible memory-trasher.
* bindings/js/JSHTMLFormElementCustom.cpp:
(WebCore::JSHTMLFormElement::canGetItemsForName):
(WebCore::JSHTMLFormElement::nameGetter):
* bindings/js/kjs_dom.cpp:
(KJS::):
(KJS::DOMNamedNodesCollection::DOMNamedNodesCollection):
(KJS::DOMNamedNodesCollection::lengthGetter):
(KJS::DOMNamedNodesCollection::indexGetter):
(KJS::DOMNamedNodesCollection::getOwnPropertySlot):
* bindings/js/kjs_dom.h:
(KJS::DOMNamedNodesCollection::classInfo):
* bindings/js/kjs_html.cpp:
(KJS::JSHTMLCollection::getNamedItems):
* dom/ChildNodeList.cpp:
(WebCore::ChildNodeList::ChildNodeList):
(WebCore::ChildNodeList::length):
(WebCore::ChildNodeList::item):
(WebCore::ChildNodeList::nodeMatches):
* dom/ChildNodeList.h:
* dom/NameNodeList.cpp:
(WebCore::NameNodeList::NameNodeList):
(WebCore::NameNodeList::item):
(WebCore::NameNodeList::nodeMatches):
* dom/NameNodeList.h:
(WebCore::NameNodeList::rootNodeAttributeChanged):
* dom/Node.cpp:
(WebCore::TagNodeList::TagNodeList):
(WebCore::TagNodeList::nodeMatches):
(WebCore::Node::registerNodeList):
(WebCore::Node::unregisterNodeList):
* dom/Node.h:
* dom/NodeList.cpp:
(WebCore::NodeList::NodeList):
(WebCore::NodeList::~NodeList):
(WebCore::NodeList::recursiveLength):
(WebCore::NodeList::itemForwardsFromCurrent):
(WebCore::NodeList::itemBackwardsFromCurrent):
(WebCore::NodeList::recursiveItem):
(WebCore::NodeList::itemWithName):
(WebCore::NodeList::rootNodeChildrenChanged):
* dom/NodeList.h:
(WebCore::NodeList::rootNodeAttributeChanged):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::HTMLFormElement):
(WebCore::HTMLFormElement::~HTMLFormElement):
(WebCore::HTMLFormElement::formData):
(WebCore::HTMLFormElement::parseMappedAttribute):
(WebCore::HTMLFormElement::removeFormElement):
* html/HTMLFormElement.h:
* html/HTMLGenericFormElement.cpp:
(WebCore::HTMLGenericFormElement::parseMappedAttribute):
(WebCore::HTMLGenericFormElement::insertedIntoTree):
* html/HTMLGenericFormElement.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseMappedAttribute):
2007-03-15 Geoffrey Garen <ggaren@apple.com>
Added an assert to help catch a bug. Hopefully someone will hit it!
* bindings/js/kjs_proxy.cpp:
(WebCore::KJSProxy::~KJSProxy):
2007-03-14 Oliver Hunt <oliver@apple.com>
Reviewed by Adele.
Fix for rdar://problem/5061737.
This was a regression from the original Objective-C -> C++ conversion
for the drag logic. We don't need to call Range::startNode as we just
need the document that contains the range.
* page/DragController.cpp:
(WebCore::documentFragmentFromDragData):
2007-03-14 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- http://bugs.webkit.org/show_bug.cgi?id=13071
REGRESSION: Plain text files no longer wrap lines longer than the width of the browser window
Test: fast/loader/text-document-wrapping.html
* loader/TextDocument.cpp:
(WebCore::TextTokenizer::write): Specified word-wrap:break-word for the <pre> element.
2007-03-14 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=13072
REGRESSION (r15617): white-space: pre-wrap breaks off the last character of a wide word
Test: fast/text/whitespace/pre-wrap-last-char.html
* rendering/bidi.cpp:
(WebCore::RenderBlock::findNextLineBreak): Undid the change from r15617.
2007-03-14 David Hyatt <hyatt@apple.com>
Add asserts to help catch double refs and double derefs of CachedResources.
Reviewed by mjs
* loader/CachedResource.cpp:
(WebCore::CachedResource::ref):
(WebCore::CachedResource::deref):
2007-03-14 Alice Liu <alice.liu@apple.com>
Rubber-stamped by Hyatt.
Adding null check to prevent the crash that happens on 2nd run of iBench HTML load test
* loader/icon/IconDataCache.cpp:
(WebCore::IconDataCache::writeToDatabase):
=== Safari-5522.4 ===
2007-03-14 Adele Peterson <adele@apple.com>
Reviewed by Adam.
Fix for <rdar://problem/5062898> REGRESSION: autocomplete window in text fields doesn't come up
When we moved the initialization of a bunch of variables in the HTMLFormElement constructor, m_autocomplete accidently got initialized to false.
* html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::HTMLFormElement):
2007-03-14 Steve Falkenburg <sfalken@apple.com>
Reviewed by Adam.
Added missing null check in case this is called on a subframe
that hasn't started loading.
* page/Frame.cpp:
(WebCore::Frame::setMarkedTextMatchesAreHighlighted): Check for a null document.
2007-03-14 Antti Koivisto <antti@apple.com>
Reviewed by Geoff.
Fix http://bugs.webkit.org/show_bug.cgi?id=13060
REGRESSION: Repro ASSERT failure in Cache::adjustSize running layout tests
<rdar://5060208>
Script evaluation may have dereffed the CachedScript object already, causing double deref and
eventually m_liveResourcesSize underflow.
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::notifyFinished):
2007-03-14 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Added InsertTab, InsertBacktab, InsertLineBreak, and InsertNewline to the editing command table.
Added Event parameter to execCommand, and to all of the enabled and exec functions. Right now,
the event is only used by the newly added commands. But in the future, many (and possibly all) of
these editing commands will need to consider the event so they are applied to the correct selection.
* WebCore.exp:
* editing/Editor.cpp:
(WebCore::execCopy):
(WebCore::execCut):
(WebCore::execDelete):
(WebCore::execBackwardDelete):
(WebCore::execForwardDelete):
(WebCore::execMoveBackward):
(WebCore::execMoveBackwardAndModifySelection):
(WebCore::execMoveUpByPageAndModifyCaret):
(WebCore::execMoveDown):
(WebCore::execMoveDownAndModifySelection):
(WebCore::execMoveForward):
(WebCore::execMoveForwardAndModifySelection):
(WebCore::execMoveDownByPageAndModifyCaret):
(WebCore::execMoveLeft):
(WebCore::execMoveLeftAndModifySelection):
(WebCore::execMoveRight):
(WebCore::execMoveRightAndModifySelection):
(WebCore::execMoveToBeginningOfDocument):
(WebCore::execMoveToBeginningOfDocumentAndModifySelection):
(WebCore::execMoveToBeginningOfSentence):
(WebCore::execMoveToBeginningOfSentenceAndModifySelection):
(WebCore::execMoveToBeginningOfLine):
(WebCore::execMoveToBeginningOfLineAndModifySelection):
(WebCore::execMoveToBeginningOfParagraph):
(WebCore::execMoveToBeginningOfParagraphAndModifySelection):
(WebCore::execMoveToEndOfDocument):
(WebCore::execMoveToEndOfDocumentAndModifySelection):
(WebCore::execMoveToEndOfSentence):
(WebCore::execMoveToEndOfSentenceAndModifySelection):
(WebCore::execMoveToEndOfLine):
(WebCore::execMoveToEndOfLineAndModifySelection):
(WebCore::execMoveToEndOfParagraph):
(WebCore::execMoveToEndOfParagraphAndModifySelection):
(WebCore::execMoveParagraphBackwardAndModifySelection):
(WebCore::execMoveParagraphForwardAndModifySelection):
(WebCore::execMoveUp):
(WebCore::execMoveUpAndModifySelection):
(WebCore::execMoveWordBackward):
(WebCore::execMoveWordBackwardAndModifySelection):
(WebCore::execMoveWordForward):
(WebCore::execMoveWordForwardAndModifySelection):
(WebCore::execMoveWordLeft):
(WebCore::execMoveWordLeftAndModifySelection):
(WebCore::execMoveWordRight):
(WebCore::execMoveWordRightAndModifySelection):
(WebCore::execPaste):
(WebCore::execSelectAll):
(WebCore::execToggleBold):
(WebCore::execToggleItalic):
(WebCore::execRedo):
(WebCore::execUndo):
(WebCore::execInsertTab):
(WebCore::execInsertBacktab):
(WebCore::execInsertNewline):
(WebCore::execInsertLineBreak):
(WebCore::enabled):
(WebCore::canPaste):
(WebCore::hasEditableSelection):
(WebCore::hasEditableRangeSelection):
(WebCore::hasRangeSelection):
(WebCore::hasRichlyEditableSelection):
(WebCore::canRedo):
(WebCore::canUndo):
(WebCore::CommandEntry::):
(WebCore::Editor::toggleBold):
(WebCore::Editor::execCommand): Added optional event parameter.
(WebCore::Editor::insertText): Added. Calls handleTextInputEvent.
(WebCore::Editor::insertTextWithoutSendingTextEvent): Renamed from insertText.
Performs the actual insertion without dispatching any event.
* editing/Editor.h:
* page/EventHandler.cpp: (WebCore::EventHandler::defaultTextInputEventHandler):
Call insertTextWithoutSendingTextEvent.
2007-03-14 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
~3x speedup pasting 5k lines of rich text:
http://shakespeare.mit.edu/hamlet/full.html
~2x speedup pasting 10k lines of plain text
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::computedStyle): Added for convenience.
* css/CSSComputedStyleDeclaration.h:
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::removeRedundantStyles):
The code that pushed down the top level style span had
a bug in it that made it do unnecessary work. Instead of
fixing the bug I removed the code because it was used to
help see more redundancies in second level style spans, but
createMarkup now *only* creates a top level style span.
Only remove redundant styles from style spans and only remove
unstyled elements if they are style spans. FF doesn't
remove redundant styles from elements, or remove redundant
font tags on copy/paste. We could offer this functionality
through a separate "cleanup" command.
* editing/markup.cpp:
(WebCore::createMarkup): Only add markup for ancestors of
lastClosed if we're including markup for acommonAncestorBlock
(we do this for commonAncestorBlocks like tables and lists),
otherwise it's unnecessary/redundant.
2007-03-14 Anders Carlsson <acarlsson@apple.com>
Reviewed by Ada.
Make sure to call ResourceLoader::didReceiveData to ensure that there's a shared buffer with the resource
data, since SubresourceLoaderClients now make use of that buffer.
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didReceiveData):
2007-03-14 Administrator <acarlsson@apple.com>
Get the size from the shared buffer.
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::ImageSource::setData):
* platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::dataChanged):
2007-03-14 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt, thumbs up by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12782
Reproducible crash in BidiContext::deref
Test: fast/dynamic/anonymous-block-orphaned-lines.html
* rendering/InlineBox.cpp:
(WebCore::InlineBox::root): Added an assertion that we return a root inline box.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::removeChild): Added code to adopt the line boxes of
anonymous blocks being destroyed instead of leaving them orphaned, which
is what caused this crash. The boxes will be deleted on the next layout, but
this ensures consistency in the mean time.
2007-03-14 Lars Knoll <lars@trolltech.com>
Reviewed by Antti.
Fix the Qt build.
Add a getter to SharedBuffer that returns a reference to the internal
Vector to avoid an extra copy of the data.
* platform/SharedBuffer.h:
(WebCore::SharedBuffer::buffer):
* platform/graphics/qt/ImageQt.cpp:
(WebCore::Image::loadPlatformResource):
* platform/graphics/qt/ImageSourceQt.cpp:
(WebCore::detectImageFormat):
(WebCore::createDecoder):
(WebCore::ImageSource::setData):
2007-03-14 Antti Koivisto <antti@apple.com>
Reviewed by Mitz.
Fix <rdar://problem/5058774>
REGRESSION: In Mail, caret appears oversized when typing in a To Do note
Horizontal and vertical were switched. Was regression from
http://trac.webkit.org/projects/webkit/changeset/20103
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::addHighlightOverflow):
2007-03-14 David Hyatt <hyatt@apple.com>
Tweak the data() functions of stylesheets and scripts to be internally consistent.
* loader/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::data):
* loader/CachedScript.cpp:
(WebCore::CachedScript::data):
* loader/CachedXSLStyleSheet.cpp:
(WebCore::CachedXSLStyleSheet::data):
2007-03-14 David Hyatt <hyatt@apple.com>
Fix Radar 5050688.
For large animated GIFs, destroy and recreate the source for every animation frame. This keeps
the memory consumption down while giant images are animating.
Reviewed by andersca
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::BitmapImage):
(WebCore::BitmapImage::destroyDecodedData):
(WebCore::BitmapImage::dataChanged):
(WebCore::BitmapImage::advanceAnimation):
* platform/graphics/BitmapImage.h:
2007-03-14 David Hyatt <hyatt@apple.com>
Make sure to use CFDataCreateWithBytesNoCopy where we can.
Reviewed by andersca
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::ImageSource::setData):
* platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::dataChanged):
2007-03-13 David Hyatt <hyatt@apple.com>
Fix for bugzilla bug 13050 and also radar p1 5050645.
This patch reworks resource loading to avoid having redundant buffers in the icon database and in cached
images in the WebCore cache. It also avoids overcopying in top-level image documents and in the icon
database.
There is now only one SharedBuffer for a resource and everybody observes that buffer now instead of ever
making their own. Even ImageIO uses the SharedBuffer while decoding.
The page in 13050 dropped from 145mb down to 45mb of memory use with this change for a stunning savings
of 100mb.
Reviewed by olliej, mjs
* WebCore.exp:
* loader/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::data):
* loader/CachedCSSStyleSheet.h:
* loader/CachedImage.cpp:
(WebCore::CachedImage::data):
* loader/CachedImage.h:
* loader/CachedResource.cpp:
(WebCore::CachedResource::CachedResource):
(WebCore::CachedResource::~CachedResource):
* loader/CachedResource.h:
(WebCore::CachedResource::data):
* loader/CachedScript.cpp:
(WebCore::CachedScript::data):
* loader/CachedScript.h:
* loader/CachedXSLStyleSheet.cpp:
(WebCore::CachedXSLStyleSheet::data):
* loader/CachedXSLStyleSheet.h:
* loader/DocLoader.cpp:
(WebCore::DocLoader::checkCacheObjectStatus):
* loader/ImageDocument.cpp:
(WebCore::ImageTokenizer::writeRawData):
(WebCore::ImageTokenizer::finish):
* loader/icon/IconDataCache.cpp:
(WebCore::IconDataCache::setImageData):
(WebCore::IconDataCache::writeToDatabase):
* loader/icon/IconDataCache.h:
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::imageDataForIconURL):
(WebCore::IconDatabase::iconForPageURL):
(WebCore::IconDatabase::setIconDataForIconURL):
(WebCore::IconDatabase::setHaveNoIconForIconURL):
(WebCore::IconDatabase::imageDataForIconURLQuery):
* loader/icon/IconDatabase.h:
* loader/icon/IconLoader.cpp:
(WebCore::IconLoader::startLoading):
(WebCore::IconLoader::didReceiveResponse):
(WebCore::IconLoader::didReceiveData):
(WebCore::IconLoader::didFail):
(WebCore::IconLoader::finishLoading):
(WebCore::IconLoader::clearLoadingState):
* loader/icon/IconLoader.h:
* loader/icon/SQLStatement.cpp:
(WebCore::SQLStatement::getColumnBlobAsVector):
(WebCore::SQLStatement::isExpired):
* loader/icon/SQLStatement.h:
* loader/loader.cpp:
(WebCore::Loader::didFinishLoading):
(WebCore::Loader::didReceiveData):
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge getData:andResponse:forURL:]):
(-[WebCoreFrameBridge getAllResourceDatas:andResponses:]):
* platform/SharedBuffer.h:
(WebCore::SharedBuffer::isEmpty):
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::destroyDecodedData):
(WebCore::BitmapImage::dataChanged):
* platform/graphics/BitmapImage.h:
* platform/graphics/Image.cpp:
(WebCore::Image::setData):
* platform/graphics/Image.h:
(WebCore::Image::dataChanged):
(WebCore::Image::data):
* platform/graphics/ImageSource.h:
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::ImageSource::setData):
* platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::dataChanged):
* platform/graphics/cg/PDFDocumentImage.h:
* platform/graphics/mac/ImageMac.mm:
(WebCore::Image::loadPlatformResource):
* platform/graphics/svg/SVGImage.cpp:
(WebCore::SVGImage::setData):
* platform/mac/PasteboardMac.mm:
(WebCore::fileWrapperForImage):
2007-03-13 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5046875>
Gmail Editor: Applying alignment to selected text in message also applies alignment to signature
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::doApply): Don't call applyBlockStyle unless
there is a block style to apply.
(WebCore::ApplyStyleCommand::applyBlockStyle): Don't do the remove step.
It was unnecessary and removed properties from blocks that could contain
content outside the range being operated on (added a testcase).
(WebCore::ApplyStyleCommand::addBlockStyleIfNeeded): Used an early return
instead of if-nesting.
* editing/ApplyStyleCommand.h:
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
Return the new block, if one was created. Use moveParagraphs to move
paragraphs into the new block, instead of moving nodes. The old code moved
too much (added a testcase).
* editing/CompositeEditCommand.h:
2007-03-13 Oliver Hunt <oliver@apple.com>
Reviewed by Brady.
To fix <rdar://problem/5044366> we now pass a NSString
representation of the URL extracted with _web_originalDataAsString
instead of relying on [NSURL absoluteString] in the bridge
* page/mac/WebCoreFrameBridge.h:
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge getData:andResponse:forURL:]):
2007-03-13 Brady Eidson <beidson@apple.com>
Reviewed by Anders
<rdar://problem/5048818> - REGRESSION: Incompletely loaded resources being saved to the object cache
Due to a subtle change in loader behavior back in 10904, we would stop all loaders before calling
didFail() on them in the Cache loader. As a result, we basically cleared all of the Subresource Loaders
out of the Cache loader before more properly failing them as errored out. The result? Partially loaded
resources being cached.
Since Loader::didFail() both calls error() on the object *and* removes the loader, the solution is to call
didFail() for all cancelled loaders instead of *only* removing them from the set of active loaders.
In addition, pages that didn't completely load were being saved to the back/forward cache. To fix that,
I added a null check on the DocumentLoader's error to see if the page ended in an error, or did indeed
completely load.
Note that the layout test for this - if possible - will require other enhancements including possibly adding
support for window.stop(). That task is documented in <rdar://problem/5061826>
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::provisionalLoadStarted): Fixed a few bugs relating to my original BFCache rewrite to
more perfectly restore the original behavior - including only caching HTML documents via the
m_client->canCachePage() call
(WebCore::FrameLoader::canCachePage): Don't make the call to m_client->canCachePage() as that serves a different
purpose
- Check the mainDocumentError to see if the load ended in error as a further criteria in determining the
cachability of a page
* loader/loader.cpp:
(WebCore::Loader::cancelRequests): Call didFail(cancelledError()) instead of just removing the loaders from the
loaders-in-progress set. This adds the effect of properly cleaning up the cached object.
2007-03-13 Beth Dakin <bdakin@apple.com>
Rendering part reviewed by Hyatt. Editing part consulted with and
rubber stamped by Justin and Harrison.
Fix for <rdar://problem/5025925> A hang occurs in Safari when
attempting to print page at http://www.pcadvisor.co.uk
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::makeChildrenNonInline):
RenderBlock::makeChildrenNonInline() takes a block's inline
children and turns them into block children. If the children had
line boxes, those boxes were being leaked. In the layout test I
added with the change (and at pcadvisor.co.uk during printing)
children were being made non-inline, and then they were being made
inline again. This meant that some of the children ended up
pointing to totally stale line boxes that are normally just leaked.
This caused an infinite loop in RenderFlow::destroy(). This patch
simply deletes everyone's line boxes in
RenderBlock::makeChildrenNonInline()
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply): The other part
of this fix is that I added a call to updateLayout in
InsertParagraphSeparatorCommand::doApply(). One layout test
(editing/spelling/spelling.html) was changed by my patch to
RenderBlock. doApply() inserts a node into the render tree. In at
least one case in spelling.html, that caused some line boxes to be
deleted. Back in doApply() this meant that the RenderTree was out-
of-date, and we mistakenly thought we were at the end of the
paragraph. This caused us to insert a RenderBR() at the end of the
tree instead of an empty RenderText(). No one seems to know exactly
why we insert either, or if the change is necessarily a problem. It
is clear, though, that the RenderTree in doApply() is out-of-date
after inserting the node and deleting some line boxes, so it seems
prudent to call into updateLayout().
2007-03-13 Adam Roben <aroben@apple.com>
Reviewed by Anders.
* platform/FontData.h: Added m_isSystemFont parameter to match NSFont.
2007-03-13 Beth Dakin <bdakin@apple.com>
Reviewed by Maciej.
Export DocumentLoader::setFrame(). Part of fix for <rdar://
problem/4277074> 8F32: Help Viewer crashed on clicking link -
KHTMLView::viewportMouseReleaseEvent (12647)
* WebCore.exp:
2007-03-13 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=12794
<rdar://problem/5028154> REGRESSION: TripTik planner at aaa.com never
finishes loading due to unclosed canvas tag (12794)
Change <canvas> elements so that their contents are parsed normally,
but not rendered. This change fixes the bug, because normal parsing
rules close the <canvas> element in that case. The special parser
stuff was just getting in the way.
Also do some basic cleanup to the HTML parser. This was motivated by
an earlier version of this patch that made even more changes to the
parser, but the cleanup is still worth landing.
Test: fast/canvas/canvas-hides-fallback.html
Test: fast/canvas/script-inside-canvas-fallback.html
Test: fast/canvas/unclosed-canvas-1.html
Test: fast/canvas/unclosed-canvas-2.html
Test: fast/canvas/unclosed-canvas-3.html
Test: fast/canvas/unclosed-canvas-4.html
* html/HTMLCanvasElement.h: Added a data member to keep track of whether the
renderer is a RenderHTMLCanvas or not.
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::createRenderer): If JavaScript is enabled, create
a RenderHTMLCanvas. If it's not, let the default code create the default type
of renderer, which will result in fallback content being visible. The
RenderHTMLCanvas class already hides all of its children. Set the m_rendererIsCanvas
boolean accordingly. Since the actual storage for the canvas is allocated lazily
when you actually get a drawing context, we don't need to do anything special
to prevent it when JavaScript is disabled; the relevant functions won't be called.
(WebCore::HTMLCanvasElement::reset): Protect the code that manipulates the
RenderHTMLCanvas with a check of m_rendererIsCanvas. This is the only code inside
the DOM element that relies on the renderer type.
* html/HTMLParser.h: Removed unneeded includes. Marked HTMLParser as
Noncopyable. Changed the Document parameter to the constructor to instead
be HTMLDocument. Renamed discard_until to m_skipModeTag for clarity.
Removed unused noSpaces function and unneeded public doc() function.
Moved data members all down to the end so you can see them together in order.
Renamed map to m_currentMapElement and isindex to m_isindexElement.
Removed unused end and headLoaded data members. Renamed m_fragment to
m_isParsingFragment to make it clearer that it's a boolean, not a fragment.
* html/HTMLParser.cpp:
(WebCore::HTMLParser::HTMLParser): Changed to use member construction
syntax instead of calling reset(). This is especially helpful in the
fragment case, where calling reset() later on is illegal, so not using
it in the constructor lets us assert.
(WebCore::HTMLParser::~HTMLParser): Did an explicit deref instead of
calling setCurrent for its side effect.
(WebCore::HTMLParser::reset): Updated for member name changes and removal
and to use document instead of doc().
(WebCore::HTMLParser::setCurrent): Use document instead of doc().
(WebCore::HTMLParser::setSkipMode): Added. No longer inline. Now sets the
m_inCanvasBeforeFirstOpenTag data member to false.
(WebCore::HTMLParser::parseToken): Tightened up the skip mode logic at the
top of the function, and added a FIXME about the strange case there where
we don't skip yet stay in skip mode. Updated for renaming and doc().
(WebCore::HTMLParser::insertNode): Updated for renaming and doc().
(WebCore::HTMLParser::handleError): Ditto.
(WebCore::HTMLParser::framesetCreateErrorCheck): Ditto.
(WebCore::HTMLParser::isindexCreateErrorCheck): Changed to use RefPtr.
(WebCore::HTMLParser::noscriptCreateErrorCheck): Updated for renaming and doc().
(WebCore::HTMLParser::mapCreateErrorCheck): Ditto.
(WebCore::HTMLParser::getNode): Removed the special case for canvas here.
Canvas fallback is now handled in the DOM, not the parser. Updated for
renaming and doc().
(WebCore::HTMLParser::allowNestedRedundantTag): Changed a #define into a C++
constant.
(WebCore::HTMLParser::processCloseTag): Updated for renaming and doc().
(WebCore::HTMLParser::isInline): Ditto.
(WebCore::HTMLParser::tagIsOnStack): Added. Used by new canvas logic.
(WebCore::HTMLParser::popBlock): Updated for renaming and doc(). Also renamed
the local variable Elem to elem.
(WebCore::HTMLParser::createHead): Ditto.
(WebCore::HTMLParser::handleIsindex): Changed to use RefPtr.
(WebCore::HTMLParser::startBody): Updated for renaming and doc().
(WebCore::HTMLParser::finished): Ditto.
2007-03-13 David Hyatt <hyatt@apple.com>
Two more cleanup fixes to the cache. Don't call destroyDecodedData in the BitmapImage destructor, since
clearing the image source and calling setData on it again causes it to do an extra copy of the encoded
data. Since we're about to be destroyed this is just wasteful.
When the cache prunes, don't allow it to destroy the decoded data of an image that is still actively loading,
since we've established that ImageIO can actually crash if you yank the rug out from under it like that.
Reviewed by ggaren
* loader/Cache.cpp:
(WebCore::Cache::prune):
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::~BitmapImage):
2007-03-13 Anders Carlsson <acarlsson@apple.com>
Try fixing the Qt build.
* editing/Editor.h:
(WebCore::Editor::setStartNewKillRingSequence):
2007-03-13 David Harrison <harrison@apple.com>
Reviewed by Justin.
<rdar://problem/5031181> cntl-k at end of paragraph adds nothing to the kill ring
<rdar://problem/5031189> REGRESSION: cntl-y yanks only the most recently killed content
For rdar://5031181, properly extend the selection before the killring handling, and
make sure plainText of that selection returns a linefeed.
For rdar://5031189, restore Editor::deleteRange() code that continued current killring,
even though the range deletion implicitly stopped it via changing the selection.
A byproduct of this change is the elimination of RUNDFINDER vs CONTENT TextIterator. The
only difference between the two was whether to emit a newline when the range started
with a blockflow element. No callers actually need that any more.
Tests added:
* editing/pasteboard/emacs-ctrl-k-y-001-expected.checksum: Added.
* editing/pasteboard/emacs-ctrl-k-y-001-expected.png: Added.
* editing/pasteboard/emacs-ctrl-k-y-001-expected.txt: Added.
* editing/pasteboard/emacs-ctrl-k-y-001.html: Added.
* editing/Editor.cpp:
(WebCore::Editor::deleteRange):
Clear the "start new kill ring sequence" setting, because it was set to true
when the selection was updated by deleting the range.
(WebCore::Editor::deleteWithDirection):
If extending the selection to the end of paragraph resulted in a caret selection,
extend by character, to handle the case when the selection started as a caret at
the end of paragraph.
* editing/TextIterator.cpp:
(WebCore::TextIterator::TextIterator):
Initialize new member variables for tracking handling of the beginning of the range.
(WebCore::TextIterator::advance):
Call representNodeOffsetZero on the m_endContainer.
Move visibility checks into handleTextNode and handleReplacedElement.
(WebCore::TextIterator::handleTextNode):
(WebCore::TextIterator::handleTextBox):
Call emitText.
(WebCore::TextIterator::handleReplacedElement):
Moved visibility check into here.
(WebCore::shouldEmitNewlinesBeforeAndAfterNode):
(WebCore::TextIterator::shouldRepresentNodeOffsetZero):
(WebCore::TextIterator::representNodeOffsetZero):
New. Emits proper sequence when encountering offset 0 of a node, including the
m_endContainer. Started with code from handleNonTextNode.
(WebCore::TextIterator::handleNonTextNode):
Call representNodeOffsetZero.
(WebCore::TextIterator::exitNode):
Similar to shouldRepresentNodeOffsetZero, do not emit the newline if the node
was collapsed, and before any other emitted content.
(WebCore::TextIterator::emitCharacter):
(WebCore::TextIterator::emitText):
New. Consolidates code used by handleText and handleTextBox.
(WebCore::CharacterIterator::CharacterIterator):
Removed RUNFINDER.
(WebCore::WordAwareIterator::WordAwareIterator):
Removed RUNFINDER.
(WebCore::WordAwareIterator::advance):
Formatting.
(WebCore::TextIterator::rangeLength):
Formatting.
* editing/TextIterator.h:
Added member variables for tracking handling of the beginning of the range.
Eliminated concept of RUNDFINDER vs CONTENT TextIterator.
* editing/visible_units.cpp:
(WebCore::nextBoundary):
Eliminated concept of RUNDFINDER vs CONTENT TextIterator.
2007-03-13 David Hyatt <hyatt@apple.com>
Clean up the null image case in CachedImage::data to make sure the size totals will stay accurate.
I'm not convinced this case can even be hit, but I'm cleaning it up just in case.
* loader/CachedImage.cpp:
(WebCore::CachedImage::data):
2007-03-13 David Hyatt <hyatt@apple.com>
Reorder the call to allReferencesRemoved, since otherwise the live object size will become
incorrect.
* loader/CachedResource.cpp:
(WebCore::CachedResource::deref):
2007-03-13 Antti Koivisto <antti@apple.com>
Reviewed by Darin.
Fix http://bugs.webkit.org/show_bug.cgi?id=11083
REGRESSION: Typing tab key fails to insert a tab character in Google Docs editable area
<rdar://problem/4757650>
Allow inserting tabs in designMode. Backtab behaves like before (matches FF).
* page/EventHandler.cpp:
(WebCore::EventHandler::defaultTabEventHandler):
2007-03-13 David Hyatt <hyatt@apple.com>
Fix two counting errors in the decoded size of objects in the WebCore cache. We need to explicitly
destroy decoded data when clearing out a partially loaded image that had an error, since the destructor
(although it does destroy the data) disconnects the observer so that the notification doesn't happen.
Some CachedImages aren't in the cache (like image documents). When the decoded size of such an image
changes we should not notify the cache, since - newsflash - we aren't actually in it.
Reviewed by ggaren
* loader/CachedImage.cpp:
(WebCore::CachedImage::clear):
(WebCore::CachedImage::decodedSizeChanged):
2007-03-13 Darin Adler <darin@apple.com>
Reviewed by Tim Hatcher and John Sullivan.
- fix <rdar://problem/4915303> CrashTracer: 36 crashes in Safari at
com.apple.AppKit: -[NSView getRectsBeingDrawn:count:] + 502
* page/mac/FrameMac.mm: (WebCore::Frame::imageFromRect):
This was calling drawRect: directly, but NSView's getRectsBeingDrawn:count:
method was never really safe to call unless it was AppKit that called your
drawRect: method. Changed it to call drawSingleRect: instead. A little ugly,
but seems to work and will almost certainly fix the bug.
2007-03-13 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Maciej.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12974
Call forgetGenericContext in JSSVGPathSeg destructor, otherwhise
we'll hit an ASSERT in a debug build, when running svg/custom/js-update-path-changes.svg
a few dozen times in a single WebKit instance. The ASSERT is good and just warns that
there was already a generic context pointer registered, and the new "to be registered"
object already exists, but pointing to a different object. That's because garbage collection
calls the JSSVGPathSeg destructor, but that didn't cleanup the generic context map.
Only JSSVGPathSeg is hit by this problem, as it's the only non SVGAnimated* type
using the generic context system while using a custom JSSVGPathSegList implementation.
Also cleanup JSSVGPathSegListCustom code to call the static forgetGenericContext
method instead of doing the same using custom code.
* bindings/js/JSSVGPathSegListCustom.cpp:
(WebCore::removeFromPathSegContextMap):
(WebCore::JSSVGPathSegList::clear):
(WebCore::JSSVGPathSegList::removeItem):
* bindings/scripts/CodeGeneratorJS.pm:
2007-03-13 Darin Adler <darin@apple.com>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=12595
<rdar://problem/4722863> REGRESSION: Can't add item to cart at lnt.com
(JS type error) (12595)
Test: fast/forms/old-names.html
* bindings/js/JSHTMLFormElementCustom.cpp:
(WebCore::JSHTMLFormElement::canGetItemsForName): If the form collection has
nothing for a given name, try the form's oldNamedElement function.
(WebCore::JSHTMLFormElement::nameGetter): Ditto.
* bindings/js/kjs_dom.h: Removed the DOMNamedNodesCollection. Instead we will use
a class derived from NodeList.
* bindings/js/kjs_dom.cpp: Ditto.
* bindings/js/kjs_html.cpp:
(KJS::VectorNodeList::VectorNodeList): Added. Constructor for a new class derived
from NodeList to be used for the named items result from a collection -- uses a
vector of node pointers.
(KJS::VectorNodeList::length): Added.
(KJS::VectorNodeList::item): Added.
(KJS::JSHTMLCollection::getNamedItems): Use VectorNodeList and the existing wrapper
for NodeList rather than a custom JavaScript class, DOMNamedNodesCollection.
* dom/ChildNodeList.h:
* dom/ChildNodeList.cpp:
(WebCore::ChildNodeList::ChildNodeList): Updated to derive from TreeNodeList,
since NodeList is now a simpler class.
(WebCore::ChildNodeList::elementMatches): Updated for name and parameter change.
* dom/NameNodeList.h:
* dom/NameNodeList.cpp:
(WebCore::NameNodeList::NameNodeList): Updated to derive from TreeNodeList,
since NodeList is now a simpler class.
(WebCore::NameNodeList::rootNodeAttributeChanged): Updated for name and
parameter change.
* dom/Node.h: Change register/unregister functions to take TreeNodeList.
* dom/Node.cpp:
(WebCore::TagNodeList::TagNodeList): Updated to derive from TreeNodeList,
since NodeList is now a simpler abstract class.
(WebCore::TagNodeList::elementMatches): Updated for name and parameter change.
(WebCore::Node::registerNodeList): Changed type from NodeList to TreeNodeList.
(WebCore::Node::unregisterNodeList): Ditto.
* dom/NodeList.h: Broke NodeList into a simpler base class and a derived class
with the machinery for iterating a tree, called TreeNodeList.
* dom/NodeList.cpp:
(WebCore::NodeList::~NodeList): Added.
(WebCore::NodeList::itemWithName): Factored out of the old itemWithName.
(WebCore::TreeNodeList::TreeNodeList): Renamed from NodeList.
(WebCore::TreeNodeList::~TreeNodeList): Ditto.
(WebCore::TreeNodeList::recursiveLength): Ditto.
(WebCore::TreeNodeList::itemForwardsFromCurrent): Ditto.
(WebCore::TreeNodeList::itemBackwardsFromCurrent): Ditto.
(WebCore::TreeNodeList::recursiveItem): Ditto.
(WebCore::TreeNodeList::itemWithName): Factored half of this into this function,
the other half in NodeList::itemWithName.
(WebCore::TreeNodeList::rootNodeAttributeChanged): Added. No longer inline.
(WebCore::TreeNodeList::rootNodeChildrenChanged): Renamed from NodeList.
* html/HTMLFormElement.h: Added formElementNameChanged and oldNamedElement
fucntions, and a map called m_oldNames. Also removed m_boundary, which I
thought I had already done.
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::HTMLFormElement): Initialize m_oldNames to 0.
Switched the rest of the members to initialization syntax.
(WebCore::HTMLFormElement::~HTMLFormElement): Delete m_oldNames.
(WebCore::HTMLFormElement::formElementNameChanged): Added. Stores a reference
to one element under each of its old names.
(WebCore::HTMLFormElement::oldNamedElement): Added. Returns the old element
that once had a given name.
* html/HTMLGenericFormElement.h:
* html/HTMLGenericFormElement.cpp:
(WebCore::HTMLGenericFormElement::parseMappedAttribute): When the name
attribute changes, tell the form about the old name.
(WebCore::HTMLGenericFormElement::insertedIntoTree): When telling a form
about an element, also store away the old name so that we can use it
when the name changes later.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseMappedAttribute): Added a call to the
base class in the nameAttr case, so the code in HTMLGenericFormElement
above will get called in the input element case.
2007-03-13 Antti Koivisto <antti@apple.com>
Reviewed by Alexey.
Alexey spotted a DOS by using string of 64k unbreakable character in
fix for http://bugs.webkit.org/show_bug.cgi?id=12833
* dom/Text.cpp:
(WebCore::Text::createWithLengthLimit):
2007-03-13 Lars Knoll <lars@trolltech.com>
Fix the Qt build
* WebCore.pro:
2007-03-13 Rob Buis <buis@kde.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12576
WebKit does not support xlink:show attributes
Make an exception for non-empty targets, these should be opened
in a new window, unless the value is _self.
* ksvg2/svg/SVGAElement.cpp:
(WebCore::SVGAElement::defaultEventHandler):
2007-03-13 David Hyatt <hyatt@apple.com>
- fix cache issues seen in http://bugs.webkit.org/show_bug.cgi?id=13050
6 objects and ~200MB leaked after opening then closing tab
<rdar://problem/5058714>
Double the encoded size of images for now. We do this to account for a bug in ImageIO where they hold
a separate copy of image data. See <rdar://problem/5050645>.
Reviewed by aroben.
* loader/CachedImage.cpp:
(WebCore::CachedImage::data):
2007-03-12 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed - gdk build fix.
* platform/gdk/TemporaryLinkStubs.cpp:
(SearchPopupMenu::enabled): add missing stub.
2007-03-12 David Kilzer <ddkilzer@kilzer.net>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13045
REGRESSION: Blackboard CourseWare Error with Nightlies after Mar 8
* html/HTMLFormElement.cpp:
(WebCore::getUniqueBoundaryString): Speculative fix: remove dashes from
the boundary prefix that appear after non-dash characters.
2007-03-12 Mitz Pettel <mitz@webkit.org>
Reviewed by Anders.
- fix http://bugs.webkit.org/show_bug.cgi?id=13015
REGRESSION (r17233-r17241): Repro crash when leaving a page whose unload handler submits a form
Test: fast/loader/onunload-form-submit-crash-2.html
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::finishedLoading): Added null check.
2007-03-12 Anders Carlsson <acarlsson@apple.com>
Reviewed by Darin.
<rdar://problem/4900071>
http://bugs.webkit.org/show_bug.cgi?id=6454
ASSERTION: Navigating 'back' in frameset: !_private->previousItem (6454)
Change back the behavior of checkLoadComplete to traverse the entire frame tree instead of
just the parent frames of the current frame. This is needed in order to reset the previous history item
for all frames when doing a frame navigation. (This was changed in revision 11819)
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::recursiveCheckLoadComplete):
(WebCore::FrameLoader::checkLoadComplete):
* loader/FrameLoader.h:
2007-03-12 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5056619>
REGRESSION: Gmail Editor: Dragging text into Reply (textarea) field results in a crash at WebCore::InsertNodeBeforeCommand::doApply()
* editing/SelectionController.cpp:
(WebCore::removingNodeRemovesPosition): Added.
(WebCore::SelectionController::nodeWillBeRemoved): Clear the
selection if it's inside a shadow tree.
* page/DragController.cpp:
(WebCore::setSelectionToDragCaret): Return false to signal to
clients that a drop shouldn't be performed if the second attempt
to set a selection ends up in non-editable content.
2007-03-12 Darin Adler <darin@apple.com>
Reviewed by Tim Hatcher.
- fixed JavaScript wrapper classes to be correct for a variety of cases
that a new test uncovered: was broken for at least 5 classes
- fixed Objective-C wrapper classes to be correct for a variety of cases
that a test case uncovered: was broken for ast least 50 classes
- added missing DOM API for creating OverflowEvent and WheelEvent instances
Test: fast/dom/wrapper-classes.html
* DerivedSources.make: Added missing bindings: HTMLCanvasElement for ObjC,
CDATASection, Comment, and EntityReference for JavaScript.
* WebCore.xcodeproj/project.pbxproj: Added those new generated files.
* bindings/js/JSHTMLElementWrapperFactory.cpp:
(WebCore::createJSHTMLWrapper): Corrected the wrapper classes for <keygen>,
which needs an HTMLSelectElement wrapper, and <xmp>, which needs an
HTMLPreElement wrapper.
* bindings/objc/DOMInternal.h: Updated for new naming scheme.
Also moved createDOMWrapper from the KJS namespace to the WebCore namespace.
* bindings/objc/DOMUtility.mm:
(KJS::createDOMWrapper): Broke the core function into a separate one, and
left it in the KJS namespace because Objective-C++ rules make it impossible
for it to work in the WebCore namespace. Used a macro-based implementation
to cut down on repeated code, and added missing cases for Counter,
HTMLOptionsCollection, Range, XPathExpression, XPathResult, Event, RGBColor,
Rect, Window, DOMImplementation, NodeIterator, TreeWalker, and HTMLCollection.
(WebCore::createDOMWrapper): The other half of the function.
* bindings/objc/DOM.mm:
(WebCore::createElementClassMap): Corrected the wrapper classes for
<canvas>, which needs a DOMHTMLCanvasElement wrapper, <del>, which needs
a DOMHTMLModElement wrapper, <embed>, which needs a DOMHTMLEmbedElement
wrapper, <ins>, which needs a DOMHTMLModElement wrapper, <th>, which needs
a DOMHTMLTableCellElement wrapper, and <xmp>, which needs an
DOMHTMLPreElement wrapper.
(+[DOMNode _wrapNode:]): Updated for new naming scheme.
(+[DOMNode _wrapEventTarget:]): Ditto.
(+[DOMNodeFilter _wrapNodeFilter:]): Ditto.
(ObjCNodeFilterCondition::acceptNode): Ditto.
(-[DOMDocument createNodeIterator:whatToShow:filter:expandEntityReferences:]): Ditto.
(-[DOMDocument createTreeWalker:whatToShow:filter:expandEntityReferences:]): Ditto.
(WebCore::ObjCEventListener::handleEvent): Ditto.
* dom/Document.cpp: (WebCore::Document::createEvent):
Added cases for OverflowEvent and WheelEvent.
* dom/OverflowEvent.h: Added empty constructor and initOverflowEvent.
* dom/OverflowEvent.cpp:
(WebCore::OverflowEvent::OverflowEvent): Added.
(WebCore::OverflowEvent::initOverflowEvent): Added.
* dom/OverflowEvent.idl: Added initOverflowEvent.
* bindings/objc/PublicDOMInterfaces.h: Added initOverflowEvent.
* bindings/objc/DOMCSS.mm:
(+[DOMStyleSheet _wrapStyleSheet:]): Updated for new naming scheme.
(+[DOMCSSRule _wrapCSSRule:]): Corrected wrapper for CSSUnknownRule.
(+[DOMCSSValue _wrapCSSValue:]): Updated for new naming scheme.
* bindings/js/kjs_css.h:
(KJS::DOMRGBColor::impl): Added. Used when making an ObjC wrapper.
(KJS::DOMRect::impl): Ditto.
* bindings/js/kjs_dom.cpp: (KJS::toJS): Corrected the wrapper classes for
CDATASection, Comment, and EntityReference.
* bindings/js/kjs_html.cpp: Corrected the class name for HTMLElement
(was "DOMHTMLElement") and HTMLCollection (was "Collection").
* bindings/objc/DOMImplementationFront.h:
* bindings/objc/DOMImplementationFront.cpp:
(WebCore::implementationFront): Added new overload that returns a front given
a JavaScript wrapper. Needed by the code that makes the Objective-C wrapper.
* bindings/objc/WebScriptObject.mm:
(+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
Updated since createDOMWrapper is now in the WebCore namespace.
* bindings/scripts/CodeGeneratorObjC.pm: Update the naming scheme for the
wrapper creation functions to use _wrapElement: rather then _elementWith:
style. Removed now-unneeded special cases for things that needed to stay
upper-case, since we don't have to do the whole lcfirst thing.
* html/HTMLCanvasElement.idl: Added #if so we can successfully generate the
Objective-C wrapper for this class, even though we can't yet handle the
DOMObject return type.
* html/HTMLOptionsCollection.idl: Added GenerateNativeConverter so we get
an appropriate toJS function.
* bindings/objc/DOMEvents.mm:
(+[DOMEvent _wrapEvent:]):
* bindings/objc/DOMHTML.mm:
(-[DOMHTMLDocument createDocumentFragmentWithMarkupString:baseURL:]):
(-[DOMHTMLDocument createDocumentFragmentWithText:]):
* bindings/objc/DOMObject.mm:
(-[DOMObject sheet]):
* bindings/objc/DOMRGBColor.mm:
(-[DOMRGBColor red]):
(-[DOMRGBColor green]):
(-[DOMRGBColor blue]):
(-[DOMRGBColor alpha]):
(+[DOMRGBColor _wrapRGBColor:]):
* bindings/objc/DOMSVGPathSegInternal.mm:
(+[DOMSVGPathSeg _wrapSVGPathSeg:]):
* bindings/objc/DOMXPath.mm:
(+[DOMNativeXPathNSResolver _wrapXPathNSResolver:]):
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge nodesFromList:]):
(-[WebCoreFrameBridge elementWithName:inForm:]):
(-[WebCoreFrameBridge formForElement:]):
(-[WebCoreFrameBridge currentForm]):
(-[WebCoreFrameBridge controlsInForm:]):
(-[WebCoreFrameBridge rangeByAlteringCurrentSelection:SelectionController::direction:SelectionController::granularity:]):
(-[WebCoreFrameBridge convertNSRangeToDOMRange:]):
(-[WebCoreFrameBridge markDOMRange]):
(-[WebCoreFrameBridge markedTextDOMRange]):
(-[WebCoreFrameBridge smartDeleteRangeForProposedRange:]):
(-[WebCoreFrameBridge documentFragmentWithMarkupString:baseURLString:]):
(-[WebCoreFrameBridge documentFragmentWithText:inContext:]):
(-[WebCoreFrameBridge documentFragmentWithNodesAsParagraphs:]):
(-[WebCoreFrameBridge replaceSelectionWithNode:selectReplacement:smartReplace:matchStyle:]):
(-[WebCoreFrameBridge replaceSelectionWithText:selectReplacement:smartReplace:]):
(-[WebCoreFrameBridge increaseSelectionListLevel]):
(-[WebCoreFrameBridge increaseSelectionListLevelOrdered]):
(-[WebCoreFrameBridge increaseSelectionListLevelUnordered]):
(-[WebCoreFrameBridge dragCaretDOMRange]):
(-[WebCoreFrameBridge editableDOMRangeForPoint:]):
(-[WebCoreFrameBridge characterRangeAtPoint:]):
(-[WebCoreFrameBridge typingStyle]):
(-[WebCoreFrameBridge rangeOfCharactersAroundCaret]):
* platform/mac/ClipboardMac.mm:
(WebCore::ClipboardMac::declareAndWriteDragImage):
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::writeSelection):
Updated for new naming scheme.
2007-03-12 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin.
<rdar://problem/4990691> REGRESSION: Selecting text in Adium's Messages field causes horizontal shift
Corrected the recursive point conversion and scrolling done in scrollPointRecursively to use the
document view of each NSClipView.
* platform/mac/ScrollViewMac.mm:
(WebCore::ScrollView::scrollPointRecursively): Call convertPoint:fromView: on the document views,
not the clip views as we encounter them. Then call constrainScrollPoint: on the converted point to
constrain to the document view bounds. And finally call scrollPoint: on the document view, not the clip view.
2007-03-12 Antti Koivisto <antti@apple.com>
Reviewed by Alexey.
Fix http://bugs.webkit.org/show_bug.cgi?id=12833
REGRESSION: Selecting text in 6.6MB txt file is sluggish as of the Feb 19th nightly
<rdar://problem/5028159>
Divide large text blocks (>64kB) over multiple text nodes. This limits linebox searches to
a manageable subset.
* dom/Text.cpp:
(WebCore::Text::createWithLengthLimit):
* dom/Text.h:
* html/HTMLParser.cpp:
(WebCore::HTMLParser::parseToken):
* loader/TextDocument.cpp:
(WebCore::TextTokenizer::write):
2007-03-12 David Hyatt <hyatt@apple.com>
Fix a regression in printing. Printer fonts need to be part of the
font cache key, since printer fonts have different glyph widths.
(Integer antialiasing is used for screen fonts but not for printer fonts.)
Reviewed by aroben
* platform/FontCache.cpp:
(WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
(WebCore::FontPlatformDataCacheKey::operator==):
(WebCore::computeHash):
(WebCore::FontCache::getCachedFontPlatformData):
2007-03-12 Lars Knoll <lars@trolltech.com>
add missing symbol to fix the Qt build again.
* platform/qt/SearchPopupMenuQt.cpp:
(WebCore::SearchPopupMenu::enabled):
2007-03-12 Adele Peterson <adele@apple.com>
Reviewed by Oliver.
Adding the ability to enable or disable a SearchPopupMenu.
* platform/SearchPopupMenu.h:
* platform/mac/SearchPopupMenuMac.mm: (WebCore::SearchPopupMenu::enabled):
* rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::showPopup):
2007-03-12 Rob Buis <buis@kde.org>
Reviewed by Nikolas Zimmermann.
http://bugs.webkit.org/show_bug.cgi?id=12500
SVG fails to correctly handle all link style selectors
http://bugs.webkit.org/show_bug.cgi?id=12567
<text> elements ignore <a> children
Allow <a> inside svg text and handle xlink:show.
* ksvg2/svg/SVGAElement.cpp:
(WebCore::SVGAElement::createRenderer):
(WebCore::SVGAElement::defaultEventHandler):
(WebCore::SVGAElement::childShouldCreateRenderer):
* ksvg2/svg/SVGAElement.h:
* ksvg2/svg/SVGElement.h:
(WebCore::SVGElement::isTextContent):
* ksvg2/svg/SVGTextContentElement.h:
(WebCore::SVGTextContentElement::isTextContent):
* ksvg2/svg/SVGTextElement.cpp:
(WebCore::SVGTextElement::childShouldCreateRenderer):
* rendering/SVGInlineFlowBox.cpp:
(WebCore::translateBox):
(WebCore::placePositionedBoxesHorizontally):
(WebCore::placeBoxesVerticallyWithAbsBaseline):
2007-03-12 Adele Peterson <adele@apple.com>
Reviewed by Oliver.
Add a missing parameter to the constructor.
* platform/PlatformKeyboardEvent.h:
* platform/win/KeyEventWin.cpp: (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2007-03-12 Lars Knoll <lars@trolltech.com>
Fix the Qt build. I still get crashes though :/
* platform/graphics/qt/ImageDecoderQt.cpp:
(WebCore::ImageDecoderQt::clearFrame):
* platform/graphics/qt/ImageDecoderQt.h:
* platform/graphics/qt/ImageSourceQt.cpp:
(WebCore::ImageSource::setData):
(WebCore::ImageSource::frameIsCompleteAtIndex):
(WebCore::ImageSource::clear):
(WebCore::ImageSource::destroyFrameAtIndex):
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::ClipboardQt):
* platform/qt/ClipboardQt.h:
* platform/qt/DragDataQt.cpp:
(WebCore::DragData::createClipboard):
2007-03-11 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed - gdk build fixes.
* platform/gdk/EditorClientGdk.cpp:
(WebCore::EditorClientGdk::respondToChangedSelection): add stub
* platform/gdk/EditorClientGdk.h:
* platform/gdk/FrameGdk.cpp:
* platform/gdk/TemporaryLinkStubs.cpp:
(Editor::markMisspellings): add stub
2007-03-11 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Adele.
http://bugs.webkit.org/show_bug.cgi?id=12560
W3C XPath test Text_Nodes.svg fails
* xml/XPathStep.cpp:
(WebCore::XPath::Step::nodeTestMatches): Revert the fix, as the behavior doesn't appear
all that desirable as it did at first glance.
2007-03-11 Oliver Hunt <oliver@apple.com>
Reviewed by hyatt.
Fix for <rdar://problem/5055690> ASSERTION failure on drop into
editable element with content changed on drop
After setting the selection for a drop into an editable region
we make sure the we succeeded. If we didn't we assume a focus handler
or similar altered the element contents and try again, if the second
attempt fails we bail out.
* page/DragController.cpp:
(WebCore::setSelectionToDragCaret):
(WebCore::DragController::concludeDrag):
2007-03-11 Oliver Hunt <oliver@apple.com>
Reviewed by Adele.
Moving Frame{Mac}::respondToChangedSelection to Frame.cpp
Added new EditorClient method to handle old bridge function
* bridge/EditorClient.h:
Added respondToChangedSelection to replace old bridge function
* editing/Editor.cpp:
(WebCore::Editor::respondToChangedSelection):
Add client call to replace old bridge call from Frame::respondToChangedSelection
* editing/SelectionController.cpp:
(WebCore::SelectionController::setSelection):
No longer directly call Editor as Frame::respondToChangedSelection
makes the call
* page/Frame.cpp:
(WebCore::Frame::respondToChangedSelection):
Moved from FrameMac, replaced bridge call with call to Editor
* page/mac/FrameMac.mm:
Moved respondToChangedSelection to Frame.cpp
* page/mac/WebCoreFrameBridge.h:
Removed respondToChangedSelection from bridge
* page/qt/FrameQt.cpp:
Remove stub method for respondToChangedSelection
2007-03-11 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Brady Eidson.
Linux/gdk fix.
* loader/gdk/FrameLoaderClientGdk.cpp:
(WebCore::FrameLoaderClientGdk::shouldGoToHistoryItem): return true so
that FrameLoader:goBackOrForwards() works.
2007-03-10 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
Fixed <rdar://problem/4587763> PAC file: lock inversion between QT and
JSCore causes a hang @ www.panoramas.dk
See JavaScriptCore ChangeLog for details.
* bindings/objc/WebScriptObject.mm:
(_didExecute): Added helpful ASSERT.
(+[WebScriptObject throwException:]): Added missing JSLock.
2007-03-11 Antti Koivisto <antti@apple.com>
Reviewed by Hyatt.
Optimize linebox memory consumption:
- move all bitfields to baseclass compacting them
- make InlineTextBox::m_truncation unsigned short and make it relative to m_start
- remove extremely rarely used EllipsisBox pointer from RootInlineBox and instead
use a global hashmap to store it if needed
- use minimum required number of bits to store BidiStatus enum variables in RootInlineBox
- move overflow variables in RootInlineBox to a separate struct that is instantiated
only if any of the variables is set to a value that can't trivially be derived from
box x, y, width and height
As a result line box objects shrink:
InlineBox: 44 -> 44 bytes
InlineTextBox: 68 -> 60 bytes
InlineFlowBox: 68 -> 64 bytes
RootInlineBox: 128 -> 88 bytes
The optimizations possiblity was noticed when debugging http://bugs.webkit.org/show_bug.cgi?id=12833
Bug 12833: REGRESSION: Selecting text in 6.6MB txt file is sluggish as of the Feb 19th nightly
<rdar://problem/5028159>
On that page the patch saves 11.5MB or some 21% of linebox memory consumption. It also
actually improves selection performance somewhat by improving memory locality.
* rendering/InlineBox.h:
(WebCore::InlineBox::InlineBox):
* rendering/InlineFlowBox.h:
(WebCore::InlineFlowBox::InlineFlowBox):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::placeEllipsisBox):
(WebCore::InlineTextBox::nodeAtPoint):
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::paintDecoration):
(WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
(WebCore::InlineTextBox::paintMarkedTextUnderline):
* rendering/InlineTextBox.h:
(WebCore::InlineTextBox::InlineTextBox):
* rendering/RootInlineBox.cpp:
(WebCore::throw):
(WebCore::RootInlineBox::Overflow::operator delete):
(WebCore::RootInlineBox::Overflow::destroy):
(WebCore::RootInlineBox::destroy):
(WebCore::RootInlineBox::detachEllipsisBox):
(WebCore::RootInlineBox::clearTruncation):
(WebCore::RootInlineBox::placeEllipsis):
(WebCore::RootInlineBox::paintEllipsisBox):
(WebCore::RootInlineBox::addHighlightOverflow):
(WebCore::RootInlineBox::nodeAtPoint):
(WebCore::RootInlineBox::adjustPosition):
(WebCore::RootInlineBox::selectionTop):
(WebCore::RootInlineBox::setLineBreakInfo):
(WebCore::RootInlineBox::ellipsisBox):
(WebCore::RootInlineBox::setVerticalOverflowPositions):
(WebCore::RootInlineBox::setHorizontalOverflowPositions):
(WebCore::RootInlineBox::setVerticalSelectionPositions):
* rendering/RootInlineBox.h:
(WebCore::RootInlineBox::RootInlineBox):
(WebCore::RootInlineBox::topOverflow):
(WebCore::RootInlineBox::bottomOverflow):
(WebCore::RootInlineBox::leftOverflow):
(WebCore::RootInlineBox::rightOverflow):
(WebCore::RootInlineBox::lineBreakBidiStatus):
(WebCore::RootInlineBox::selectionBottom):
(WebCore::RootInlineBox::Overflow::Overflow):
2007-03-11 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
A partial fix for http://bugs.webkit.org/show_bug.cgi?id=13021
XPath can be very slow
* xml/XPathExpression.cpp:
(WebCore::XPathExpression::evaluate): Cache evaluationContext in a local variable.
* xml/XPathExpressionNode.cpp:
(WebCore::XPath::Expression::evaluationContext):
* xml/XPathExpressionNode.h:
(WebCore::XPath::Expression::addSubExpression):
(WebCore::XPath::Expression::subExprCount):
(WebCore::XPath::Expression::subExpr):
* xml/XPathFunctions.cpp:
* xml/XPathFunctions.h:
(WebCore::XPath::Function::setName):
(WebCore::XPath::Function::arg):
(WebCore::XPath::Function::argCount):
(WebCore::XPath::Function::name):
Made one-liners critical for performance inline.
* xml/XPathGrammar.y: Fully parse NodeTests, so that strings are no longer passed for what is
essentially an enum. Use LocationPath accessors to add steps, instead of directly manipulating
internal data members.
* xml/XPathParser.cpp:
(WebCore::XPath::Parser::parseStatement):
(WebCore::XPath::Parser::registerNodeTest):
(WebCore::XPath::Parser::deleteNodeTest):
* xml/XPathParser.h:
Added support methods for changes in XPathGrammar.y.
* xml/XPathPath.cpp:
(WebCore::XPath::Filter::evaluate): Cache evaluationContext in a local variable. Use swap() to avoid
performing vector assignments.
(WebCore::XPath::LocationPath::evaluate): Use swap() to avoid performing vector assignments.
(WebCore::XPath::LocationPath::optimizeStepPair): This new method is called during LocationPath construction,
to simplify the path as it's being built. Currently, the only optimized case is "//*" - it is a basis for
important operations that cannot be efficiently written in XPath 1.0, but can be optimized with a little bit
of XPath 2.0.
(WebCore::XPath::LocationPath::appendStep): A new accessor that modifies m_steps and calls optimizeStepPair().
(WebCore::XPath::LocationPath::insertFirstStep): Ditto.
* xml/XPathPath.h:
(WebCore::XPath::LocationPath::setAbsolute): A new accessor.
* xml/XPathStep.h:
(WebCore::XPath::Step::NodeTest::):
(WebCore::XPath::Step::NodeTest::NodeTest):
(WebCore::XPath::Step::NodeTest::kind):
(WebCore::XPath::Step::NodeTest::data):
Step::NodeTest is a new sub-class that represents a fully parsed NodeTest.
(WebCore::XPath::Step::axis):
(WebCore::XPath::Step::nodeTest):
(WebCore::XPath::Step::nodeTestData):
(WebCore::XPath::Step::namespaceURI):
(WebCore::XPath::Step::predicates):
(WebCore::XPath::Step::setAxis):
(WebCore::XPath::Step::setNodeTest):
(WebCore::XPath::Step::setNodeTestData):
(WebCore::XPath::Step::setNamespaceURI):
(WebCore::XPath::Step::setPredicates):
New accessors that let optimizeStepPair() manipulate Step data.
* xml/XPathStep.cpp:
(WebCore::XPath::Step::Step): Use the new NodeTest class.
(WebCore::XPath::Step::evaluate): Cache evaluationContext in a local variable. Use swap() to avoid
performing unneeded vector assignments.
(WebCore::XPath::Step::nodesInAxis): Cosmetic changes.
(WebCore::XPath::Step::nodeTestMatches): Use NodeTest instead of parsing the test from string each time.
Added a partial implementation of XPath 2.0 element() node test.
2007-03-10 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12249
FCKeditor: <hr>, <ul> and <ol> have id="undefined"
This fixes the attached reduction, but not the original issue.
Test: editing/execCommand/default-parameters.html
* dom/Document.h:
* dom/Document.idl:
Make second and third execCommand() parameters optional.
2007-03-10 Adele Peterson <adele@apple.com>
Reviewed by Maciej.
Fix for http://bugs.webkit.org/show_bug.cgi?id=13028
REGRESSION: textField:doCommandBySelector:inFrame: not being called properly
* html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler):
Before calling the base class defaultEventHandler, which will call handleKeypress, call doTextFieldCommandFromEvent.
2007-03-10 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13013
REGRESSION: Selection box does not scroll to where the focus jumps when pressing an alphanumeric key
Test: fast/forms/listbox-typeahead-scroll.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::setSelectedIndex): Reordered to set the active selection's
anchor and end before selecting the option, since the active selection is used to
decide where to scroll when the selection is made.
(WebCore::HTMLSelectElement::defaultEventHandler): Removed redundant check.
2007-03-10 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12973
REGRESSION: Reproducible assert while loading this test file if css is already in the cache
Test: fast/dom/css-cached-import-rule.html
Replaced some direct calls to document->stylesheetLoaded() with calls to
the sheet's checkLoaded(). The latter calls back to the element's sheetLoaded() --
which notifies the document of the load -- and then updates the sheet's
loadCompleted() flag, ensuring that it stays in sync with whether the stylesheet
is still considered pending by the document.
* dom/ProcessingInstruction.cpp:
(WebCore::ProcessingInstruction::parseStyleSheet):
* dom/StyleElement.cpp:
(WebCore::StyleElement::childrenChanged):
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process):
(WebCore::HTMLLinkElement::setCSSStyleSheet):
* ksvg2/svg/SVGStyleElement.cpp:
(WebCore::SVGStyleElement::sheetLoaded):
* ksvg2/svg/SVGStyleElement.h:
2007-03-10 David Kilzer <ddkilzer@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=9609
REGRESSION: Missing image icon needs to be moved back to WebKit
* WebCore.exp: Export WebCore::Image::loadPlatformResource(const char*) for use in
[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:].
2007-03-09 Darin Adler <darin@apple.com>
Reviewed by Justin.
- fix http://bugs.webkit.org/show_bug.cgi?id=8928
<rdar://problem/5045708> REPRODUCIBLE ASSERT: Cannot paste HTML into a
contenteditable region in an XHTML document (8928)
Test: editing/pasteboard/paste-xml.xhtml
* editing/markup.cpp: (WebCore::createFragmentFromMarkup): Added a check for 0
here, since createContextualFragment can return 0 for XML documents that fail
to parse. In my testing, callers all seem equipped to handle 0.
2007-03-09 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=9929
REGRESSION: crash on logging in on mijnpostbank.nl
Test: http/tests/misc/onload-remove-iframe-crash-2.html
The resulted from an iframe's load event handler removing the iframe
from the document.
* dom/Document.cpp:
(WebCore::Document::implicitClose): Bail out early if an event handler
removed the frame.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader):
(WebCore::FrameLoader::clear):
(WebCore::FrameLoader::checkCompleted): Protect the frame from deletion
by event handlers.
(WebCore::FrameLoader::checkCompletedTimerFired):
(WebCore::FrameLoader::scheduleCheckCompleted):
(WebCore::FrameLoader::detachFromParent): Schedule a completion check
on the parent (in case the child is what has been keeping it from completing).
* loader/FrameLoader.h:
2007-03-08 David Kilzer <ddkilzer@webkit.org>
Reviewed by Beth.
- fix http://bugs.webkit.org/show_bug.cgi?id=13019
REGRESSION (r20074): Forms don't submit on a variety of websites
No tests added since LayoutTests/fast/forms/document-write.html was timing out
and causing a layout test failure.
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::submit): Removed stray code.
2007-03-08 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed - gdk build fix.
* platform/graphics/cairo/ImageSourceCairo.cpp:
(WebCore::ImageSource::frameIsCompleteAtIndex): add empty stub
2007-03-08 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/4903193>
On particular page, Copy is so slow it seems like a hang
~2x speedup copying:
http://shakespeare.mit.edu/henryviii/full.html
Also produces less bloated markup.
* editing/markup.cpp:
(WebCore::startMarkup): Don't wrap text nodes in style spans.
For Elements, don't inline styles inherited from ancestors.
(WebCore::createMarkup): No longer necessary to find
the root's default style and pass it to startMarkup.
Add a wrapper span around the markup with the styles
that all nodes in the markup inherit (the inheritable
styles from the common ancestor container's computed style).
Added a FIXME about unecessary markup for inline ancestors
up to the commonAncestorBlock.
2007-03-08 Darin Adler <darin@apple.com>
Reviewed by Adele.
- <rdar://problem/4470381> multipart/form-data boundary security vulnerability
By making the form data boundary a string with some random data in it, we reduce
the possibility that anyone could take advantage of it by creating a file that
intentionally has the boundary string in it.
* html/HTMLFormElement.h: Removed boundary(), setBoundary(), and m_boundary.
Marked a lot more stuff private.
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::HTMLFormElement): Removed code to initialize
m_boundary.
(WebCore::randomNumber): Added. Function that returns a random number, including
seeding the random number generator the first time it's called. For now, usees the more
random function random() on Mac OS X and the more-standard rand() on other platforms.
(WebCore::HTMLFormElement::formData): Take a parameter with the form boundary string,
and use that instead of m_boundary.
(WebCore::getUniqueBoundaryString): Added. Makes a boundary string using random numbers
and base 64 encoding.
(WebCore::HTMLFormElement::submit): Call getUniqueBoundaryString and pass the boundary
string into formData for multipart form posts.
2007-03-08 Maciej Stachowiak <mjs@apple.com>
Reviewed by Adele.
<rdar://problem/4646563> REGRESSION: Unable to send text message from Verizon text message website: vtext.com (12588)
http://bugs.webkit.org/show_bug.cgi?id=12588
Carefully revised which focus operations restore previous selection, which clear it, and which
select the whole control contents.
Tests:
fast/forms/focus-selection-input.html
fast/forms/focus-selection-textarea.html
* dom/Element.cpp:
(WebCore::Element::focus):
* dom/Element.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::focus):
(WebCore::HTMLInputElement::accessKeyAction):
* html/HTMLInputElement.h:
* html/HTMLLabelElement.cpp:
(WebCore::HTMLLabelElement::focus):
(WebCore::HTMLLabelElement::accessKeyAction):
* html/HTMLLabelElement.h:
* html/HTMLLegendElement.cpp:
(WebCore::HTMLLegendElement::focus):
* html/HTMLLegendElement.h:
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::focus):
* html/HTMLTextAreaElement.h:
* page/FocusController.cpp:
(WebCore::FocusController::advanceFocus):
2007-03-08 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<http://bugs.webkit.org/show_bug.cgi?id=12244>
FCKeditor: Find dialog doesn't work
* bindings/js/kjs_window.cpp:
(KJS::Window::find): Added. This function doesn't yet
support whole word searches, searching in subframes, or
opening the find dialog.
(KJS::WindowFunc::callAsFunction):
* bindings/js/kjs_window.h:
(KJS::Window::):
2007-03-08 David Hyatt <hyatt@apple.com>
Fix regression from throwing away frames of large animated images. Alter
animated images so that they refuse to advance the animation until the
current displayed frame has been fully decoded.
Reviewed by ggaren
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::startAnimation):
(WebCore::BitmapImage::advanceAnimation):
* platform/graphics/ImageSource.h:
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::ImageSource::frameIsCompleteAtIndex):
2007-03-08 David Hyatt <hyatt@apple.com>
Fix 2% performance regression on the PLT. Increase the large animated
image cutoff from 1MB to 5MB.
In addition when pruning we will aggressively discard image sources.
Reviewed by ggaren
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::destroyDecodedData):
2007-03-08 Timothy Hatcher <timothy@apple.com>
Reviewed by John.
<rdar://problem/4664697> highlighter SPI needs a node parameter to give more context
Pass the RenderObject's node to customHighlightLineRect and paintCustomHighlight.
* page/Frame.h:
* page/mac/FrameMac.mm:
(WebCore::Frame::customHighlightLineRect):
(WebCore::Frame::paintCustomHighlight):
* page/mac/WebCoreFrameBridge.h:
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintCustomHighlight):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintCustomHighlight):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::addHighlightOverflow):
(WebCore::RootInlineBox::paintCustomHighlight):
2007-03-08 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<http://bugs.webkit.org/show_bug.cgi?id=13000>
Range.createContextualFragment is not supported
* dom/Range.cpp:
(WebCore::Range::createContextualFragment): The
"startContainer" may not be a container, if the
range starts inside text. In that case, look
to the parent of the start node for an HTMLElement.
2007-03-08 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/5049671>
Gmail Editor: With linked text, Remove Formatting doesn't always remove underline
* editing/Editor.cpp:
(WebCore::Editor::removeFormattingAndStyle): Clear removed
anchors after the deletion.
2007-03-08 David Kilzer <ddkilzer@webkit.org>
Reviewed by NOBODY (build fix).
Added missing file for r20059:
<rdar://problem/4708689> -- REGRESSION: Some symbols with 2-byte display as garbage in Hotmail.
File was taken from this svn repository which contained versions of ucnv.h and ucnv_err.h
that were identical to ours:
http://source.icu-project.org/repos/icu/icu/tags/release-3-2/source/common/unicode/ucnv_cb.h
* icu/unicode/ucnv_cb.h: Added.
2007-03-08 Shrikant Gangoda <shrikant.gangoda@celunite.com>
Gdk build fix.
* platform/graphics/cairo/ImageSourceCairo.cpp:
(WebCore::ImageSource::~ImageSource):
(WebCore::ImageSource::clear):
2007-03-08 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
To match old TEC behaviour when using ICU we need to use
a few manual fallback encodings for the GBK/EUC-CN charsets
<rdar://problem/4708689> -- REGRESSION: Some symbols with 2-byte display as garbage in Hotmail.
* platform/TextCodecICU.cpp:
(WebCore::TextCodecICU::TextCodecICU):
(WebCore::TextCodecICU::createICUConverter):
(WebCore::gbkEscapes):
(WebCore::gbkCallbackEscape):
(WebCore::gbkCallbackSubstitute):
(WebCore::TextCodecICU::encode):
* platform/TextCodecICU.h:
(WebCore::TextCodecICU::needsGBKFallbacks):
(WebCore::TextCodecICU::setNeedsGBKFallbacks):
2007-03-08 Alexey Proskuryakov <ap@webkit.org>
Build fix.
* xml/XPathUtil.cpp:
(WebCore::XPath::stringValue):
2007-03-08 David Hyatt <hyatt@apple.com>
This patch dramatically reduces the memory consumed by animated images. For large animated GIFs (defined for
now as >1mb in terms of decoded frame buffer size), we will now aggressively flush previous frames of the
animated GIF and just re-decode them on the fly if the animation loops.
Whenever a large animated GIF has its animation reset, we will also just throw out everything and start
the animation over (in order to get rid of any cached detritus held in the ImageSource).
With this patch and the sample GIF used to test, WebKit's memory consumption went from 160MB down to 16MB.
Reviewed by mjs
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::destroyDecodedData):
(WebCore::BitmapImage::resetAnimation):
(WebCore::BitmapImage::advanceAnimation):
* platform/graphics/ImageSource.h:
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::ImageSource::~ImageSource):
(WebCore::ImageSource::clear):
2007-03-08 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=13006
XPath string-value is broken for some node types
Test: fast/xpath/string-value.html
* xml/XPathUtil.cpp:
(WebCore::XPath::stringValue): Fix it :-)
2007-03-07 Anders Carlsson <acarlsson@apple.com>
Reviewed by Adam.
<rdar://problem/4981000>
http://bugs.webkit.org/show_bug.cgi?id=12634
REGRESSION: crash loading web archive (12634)
The reason this bug wasn't always reproducible is that it involved sending an event to a plugin while
the page was loading. Before we send the event to the plugin we defer loads. The problem was that
MainResourceLoader::setDefersLoad would not work with data loads.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::setRequest):
Only set m_committed to false if we also have a valid unreachable URL.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::setDefersLoading):
Make sure to stop and start data loads.
2007-03-07 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed.
Gdk build fixes.
* platform/gdk/EditorClientGdk.cpp:
(WebCore::EditorClientGdk::handleKeypress): renamed
(WebCore::EditorClientGdk::handleInputMethodKeypress): add a stub
* platform/gdk/EditorClientGdk.h:
* platform/graphics/cairo/ImageSourceCairo.cpp:
(WebCore::ImageSource::destroyFrameAtIndex): add a stub
2007-03-07 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=13004
Repeatedly calling XPathExpression.evaluate() causes crashes or memory leaks
Removed XPath::Expression::optimize() and related methods, since they were buggy and almost useless.
Merged doEvaluate() into evaluate(), since this was all evaluate() was doing after the above changes.
Test: fast/xpath/evaluate-twice.html
* xml/XPathExpression.cpp:
(WebCore::XPathExpression::evaluate):
* xml/XPathExpressionNode.cpp:
(WebCore::XPath::Expression::Expression):
(WebCore::XPath::Expression::~Expression):
* xml/XPathExpressionNode.h:
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunLast::evaluate):
(WebCore::XPath::FunPosition::evaluate):
(WebCore::XPath::FunId::evaluate):
(WebCore::XPath::FunLocalName::evaluate):
(WebCore::XPath::FunNamespaceURI::evaluate):
(WebCore::XPath::FunName::evaluate):
(WebCore::XPath::FunCount::evaluate):
(WebCore::XPath::FunString::evaluate):
(WebCore::XPath::FunConcat::evaluate):
(WebCore::XPath::FunStartsWith::evaluate):
(WebCore::XPath::FunContains::evaluate):
(WebCore::XPath::FunSubstringBefore::evaluate):
(WebCore::XPath::FunSubstringAfter::evaluate):
(WebCore::XPath::FunSubstring::evaluate):
(WebCore::XPath::FunStringLength::evaluate):
(WebCore::XPath::FunNormalizeSpace::evaluate):
(WebCore::XPath::FunTranslate::evaluate):
(WebCore::XPath::FunBoolean::evaluate):
(WebCore::XPath::FunNot::evaluate):
(WebCore::XPath::FunTrue::evaluate):
(WebCore::XPath::FunLang::evaluate):
(WebCore::XPath::FunFalse::evaluate):
(WebCore::XPath::FunNumber::evaluate):
(WebCore::XPath::FunSum::evaluate):
(WebCore::XPath::FunFloor::evaluate):
(WebCore::XPath::FunCeiling::evaluate):
(WebCore::XPath::FunRound::evaluate):
* xml/XPathPath.cpp:
(WebCore::XPath::Filter::evaluate):
(WebCore::XPath::LocationPath::evaluate):
(WebCore::XPath::Path::evaluate):
* xml/XPathPath.h:
* xml/XPathPredicate.cpp:
(WebCore::XPath::Number::evaluate):
(WebCore::XPath::StringExpression::evaluate):
(WebCore::XPath::Negative::evaluate):
(WebCore::XPath::NumericOp::evaluate):
(WebCore::XPath::EqTestOp::evaluate):
(WebCore::XPath::LogicalOp::evaluate):
(WebCore::XPath::Union::evaluate):
* xml/XPathPredicate.h:
* xml/XPathStep.cpp:
* xml/XPathStep.h:
* xml/XPathVariableReference.cpp:
(WebCore::XPath::VariableReference::evaluate):
* xml/XPathVariableReference.h:
2007-03-07 Sam Weinig <sam@webkit.org>
Reviewed by Tim H.
Remove unused #import from Objective-C bindings and cleanup the order of #imports.
* bindings/scripts/CodeGeneratorObjC.pm:
2007-03-07 Sam Weinig <sam@webkit.org>
Reviewed by Tim H.
Make sure the baseURI attribute generates for private Objective-C bindings.
* dom/Node.idl:
2007-03-07 Anders Carlsson <acarlsson@apple.com>
Reviewed by Maciej.
<rdar://problem/4874059>
REGRESSION: Painter IX:register - Crash in WebCore:: ResourceLoader::willSendRequest()
If a load is done from inside of an error delegate method that is called because we cancel another load,
the first load should be ignored since this is what shipping WebKit does.
(Actually, it does load the page in the data source but doesn't do anything with it since the data source
won't have a web frame).
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::load):
Just bail out if m_isStoppingLoad is true.
2007-03-07 David Hyatt <hyatt@apple.com>
Use CGImageRelease instead of CFRelease.
Reviewed by aroben
* platform/graphics/cg/ImageCG.cpp:
(WebCore::FrameData::clear):
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::ImageSource::destroyFrameAtIndex):
2007-03-07 David Hyatt <hyatt@apple.com>
Fix a regression where the cache size overflows because of a double
subtraction per resource when they got removed from the cache. Add an
assert to adjustSize to detect this case in the future.
Fix ImageSourceCG so that when we flush decoded data from our cache that
we also flush it from the ImageSource.
Reviewed by mjs
* loader/Cache.cpp:
(WebCore::Cache::adjustSize):
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::~BitmapImage):
(WebCore::BitmapImage::destroyDecodedData):
* platform/graphics/Image.h:
* platform/graphics/ImageSource.h:
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::ImageSource::setData):
(WebCore::ImageSource::destroyFrameAtIndex):
2007-03-07 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=13002
Incomplete repaint of inset outlines
Test: fast/repaint/outline-inset.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::repaintAfterLayoutIfNeeded):
2007-03-07 Oliver Hunt <oliver@apple.com>
Reviewed by Antti.
Reset mouse down/drag state variables on mouse button release
Fixes <rdar://problem/5044654>: Drag out of some QuickTime plug-ins converting into image drag
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseReleaseEvent):
2007-03-07 Adele Peterson <adele@apple.com>
Reviewed by Darin.
WebCore part of fix for:
http://bugs.webkit.org/show_bug.cgi?id=10871
http://bugs.webkit.org/show_bug.cgi?id=12677
<rdar://problem/4823129> REGRESSION: IME key events different in nightly
<rdar://problem/4759563> REGRESSION: Return key is always sent when you confirm a clause in kotoeri
* page/EventHandler.cpp: (WebCore::EventHandler::defaultKeyboardEventHandler): Call handleInputMethodKeypress before actually dispatching the keypress event
so that input methods have a chance to handle the event.
If the input method handles the event (by marking or unmarking text), then we don't need to send the keypress event.
If an input method doesn't handle the event, then we'll save the data we need to perform the correct action (like what text to insert or what selector to use)
when we dispatch the keypress event.
* dom/KeyboardEvent.h: Added Mac-specific KeypressCommand struct, so we can store command info during handleInputMethodKeypress, and use it during handleKeypress.
(WebCore::KeyboardEvent::keypressCommand):
(WebCore::KeyboardEvent::setKeypressCommand):
* bridge/EditorClient.h:
* editing/Editor.cpp:
(WebCore::Editor::handleKeypress): Changed handleKeyPress to handleKeypress.
(WebCore::Editor::handleInputMethodKeypress): Added.
* editing/Editor.h:
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyEditorClient::handleKeypress): Changed handleKeyPress to handleKeypress.
(WebCore::SVGEmptyEditorClient::handleInputMethodKeypress): Added.
2007-03-07 Rob Buis <buis@kde.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12579
WebKit fails SVG xml:base test
Implement DOM3 properties baseURI and documentURI to fix
the testcase in bug 12579.
* bindings/js/kjs_dom.cpp:
(KJS::DOMNode::getValueProperty):
* bindings/js/kjs_domnode.h:
(KJS::DOMNode::):
* dom/Document.cpp:
(WebCore::Document::documentURI):
(WebCore::Document::setDocumentURI):
(WebCore::Document::baseURI):
* dom/Document.h:
* dom/Document.idl:
* dom/DocumentType.cpp:
(WebCore::DocumentType::baseURI):
* dom/DocumentType.h:
* dom/Element.cpp:
(WebCore::Element::baseURI):
* dom/Element.h:
* dom/Node.cpp:
(WebCore::Node::baseURI):
* dom/Node.h:
* ksvg2/misc/SVGImageLoader.cpp:
(WebCore::SVGImageLoader::updateFromElement):
* ksvg2/svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::parseMappedAttribute):
(WebCore::SVGImageElement::attach):
2007-03-07 Anders Carlsson <acarlsson@apple.com>
Reviewed by Brady.
Remove some methods in FrameLoader that just calls down to the active document loader. Since each
resource loader now has a pointer to its document loader, we can just call directly to the
document loader.
* WebCore.exp:
* loader/FrameLoader.cpp:
* loader/FrameLoader.h:
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::willSendRequest):
(WebCore::MainResourceLoader::didReceiveResponse):
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::SubresourceLoader):
(WebCore::SubresourceLoader::didFinishLoading):
(WebCore::SubresourceLoader::didFail):
(WebCore::SubresourceLoader::didCancel):
* loader/mac/NetscapePlugInStreamLoaderMac.mm:
(WebCore::NetscapePlugInStreamLoader::didFinishLoading):
(WebCore::NetscapePlugInStreamLoader::didFail):
(WebCore::NetscapePlugInStreamLoader::didCancel):
2007-03-06 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
Fixed <rdar://problem/4576242> | http://bugs.webkit.org/show_bug.cgi?id=12586
PAC file: malloc deadlock sometimes causes a hang @ www.apple.com/pro/profiles/ (12586)
No test because this is very difficult to repro, and the new ASSERTs in
JavaScriptCore catch the underlying cause while running normal layout tests.
This is a modified version of r14752 on the branch.
The fix is to use a bit inside each node, instead of a hash table, to track
which node subtrees are in the process of being marked. This avoids a call
to malloc inside mark().
* bindings/js/kjs_binding.cpp:
(KJS::domObjects):
(KJS::domNodesPerDocument):
* bindings/js/kjs_dom.cpp:
(KJS::DOMNode::mark):
* dom/Node.cpp:
(WebCore::Node::Node):
* dom/Node.h:
2007-03-06 David Hyatt <hyatt@apple.com>
This patch reworks the WebCore memory cache to significantly reduce the amount of memory consumed by
images in the cache and to enhance the accuracy of the cache size as an absolute bound for the objects
contained within it. WebCore's memory use over time should significantly improve as a result of these
changes.
Cached resources now have both an encoded size (the original data stream) and a decoded size (an estimate of
the amount of memory consumed by an expanded version of that resource, e.g., the decoded frames of an image).
Both sizes now count towards the total size of the object and towards the allowed memory cache total.
By including both totals the reported size of resources will now be larger, and the cache will therefore become
much more aggressive about flushing.
Objects are stored in size-adjusted and popularity-aware LRU lists as before, but encoded size is now always
used when determining the correct LRU list.
The flush algorithm for the memory cache has been rewritten to first destroy decoded data before evicting
resources. By being able to compact its resources without evicting them, the memory cache can now hold many more
unique resources (encoded) in the same amount of space. Depending on how much of a hit we want to take from
re-decoding images, the memory cache could in theory have its size significantly reduced now while still holding
more resources than it did at the larger size!
Reviewed by mjs
* WebCore.xcodeproj/project.pbxproj:
* loader/Cache.cpp:
(WebCore::Cache::requestResource):
(WebCore::Cache::prune):
(WebCore::Cache::remove):
(WebCore::Cache::lruListFor):
(WebCore::Cache::adjustSize):
* loader/Cache.h:
* loader/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::data):
* loader/CachedImage.cpp:
(WebCore::CachedImage::CachedImage):
(WebCore::CachedImage::allReferencesRemoved):
(WebCore::CachedImage::clear):
(WebCore::CachedImage::data):
(WebCore::CachedImage::destroyDecodedData):
(WebCore::CachedImage::decodedSize):
(WebCore::CachedImage::decodedSizeChanged):
(WebCore::CachedImage::shouldPauseAnimation):
* loader/CachedImage.h:
* loader/CachedResource.cpp:
(WebCore::CachedResource::CachedResource):
(WebCore::CachedResource::deref):
(WebCore::CachedResource::setEncodedSize):
* loader/CachedResource.h:
(WebCore::CachedResource::allReferencesRemoved):
(WebCore::CachedResource::size):
(WebCore::CachedResource::encodedSize):
(WebCore::CachedResource::decodedSize):
(WebCore::CachedResource::destroyDecodedData):
* loader/CachedScript.cpp:
(WebCore::CachedScript::data):
* loader/CachedXSLStyleSheet.cpp:
(WebCore::CachedXSLStyleSheet::data):
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::BitmapImage):
(WebCore::BitmapImage::~BitmapImage):
(WebCore::BitmapImage::destroyDecodedData):
(WebCore::BitmapImage::pruneDecodedDataIfNeeded):
(WebCore::BitmapImage::cacheFrame):
(WebCore::BitmapImage::setNativeData):
(WebCore::BitmapImage::shouldAnimate):
(WebCore::BitmapImage::advanceAnimation):
* platform/graphics/BitmapImage.h:
(WebCore::BitmapImage::decodedSize):
* platform/graphics/Image.cpp:
(WebCore::Image::Image):
* platform/graphics/Image.h:
(WebCore::Image::destroyDecodedData):
(WebCore::Image::decodedSize):
(WebCore::Image::imageObserver):
* platform/graphics/ImageAnimationObserver.h: Removed.
* platform/graphics/ImageObserver.h: Added.
(WebCore::ImageObserver::~ImageObserver):
* platform/graphics/svg/SVGImage.cpp:
(WebCore::SVGImage::SVGImage):
* platform/graphics/svg/SVGImage.h:
2007-03-06 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Sam Weinig.
http://bugs.webkit.org/show_bug.cgi?id=12987
Fix and import 4XPath test_numeric_expr.html
* xml/XPathPredicate.cpp:
(WebCore::XPath::Negative::doEvaluate): Convert the argument to number.
(WebCore::XPath::NumericOp::doEvaluate): Convert the arguments to numbers. Use a correct operation for mod.
* xml/XPathStep.cpp:
(WebCore::XPath::Step::nodesInAxis): Do not append parent node if there is none.
* xml/XPathValue.cpp:
(WebCore::XPath::Value::toNumber): Do not convert to DeprecatedString just to trim whitespace and to convert to double.
* platform/DeprecatedString.cpp:
(WebCore::DeprecatedStringData::makeAscii): Added a FIXME about unreliable makeAscii() behavior.
2007-03-06 Maciej Stachowiak <mjs@apple.com>
Reviewed by Adele.
<rdar://problem/4619663> REGRESSION (NativePopup): Popup menu doesn't draw at the correct vertical position (9816)
* platform/mac/PopupMenuMac.mm:
(WebCore::PopupMenu::show): Make a temporary dummy view with the
passed in rect, since AppKit will use the view bounds to determine
what area to exclude when popping up a menu moved to the top of
the screen.
2007-03-06 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
Fixed all known crashers exposed by run-webkit-tests --threaded [*]. See
JavaScriptCore ChangeLog for more details.
* bindings/js/kjs_binding.cpp:
(KJS::domNodesPerDocument): Added thread safety ASSERT.
(KJS::ScriptInterpreter::mark): Removed obsolete logic for marking unsafe
objects when collecting on a secondary thread. The Collector takes care
of this now.
* bindings/js/kjs_binding.h:
(KJS::DOMObject::DOMObject): Used new API for specifying that WebCore
objects should be garbage collected on the main thread only.
* bindings/js/kjs_window.cpp:
(KJS::ScheduledAction::execute): Moved JSLock to cover implementedsCall() call,
which, for some subclasses, ends up allocating garbage collected objects.
(This fix was speculative. I didn't actually see a crash from this.)
(KJS::Window::timerFired): Added JSLock around ScheduleAction destruction,
since it destroys a KJS::List.
* bindings/objc/WebScriptObject.mm:
(-[WebScriptObject setException:]): Added JSLock. (This fix was speculative.
I didn't actually see a crash from this.)
* bridge/mac/WebCoreScriptDebugger.mm:
(-[WebCoreScriptCallFrame evaluateWebScript:]): Added JSLock. (This fix
was speculative. I didn't actually see a crash from this.)
* dom/Document.cpp:
(WebCore::Document::~Document): Added JSLock around modification to
domNodesPerDocument(), which can be accessed concurrently during garbage
collection.
* dom/Node.cpp:
(WebCore::Node::setDocument): ditto.
[*] fast/js/toString-stack-overflow.html is an exception. --threaded mode
crashes this test because it causes the garbage collector to run frequently,
and this test crashes if you happen to garbage collect while it's running.
This is a known issue with stack overflow during the mark phase. It's
not related to threading.
2007-03-06 Mark Rowe <mrowe@apple.com>
Reviewed by Sam Weinig.
Fix http://bugs.webkit.org/show_bug.cgi?id=12942
Bug 12942: ASSERTION FAILURE: qantas.com.au changing selected item in <select> via JS
Test: fast/dom/select-selectedIndex-bug-12942.html.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::recalcListItems): Reset m_lastOnChangeIndex when recalculating list items.
* html/HTMLSelectElement.h:
2007-03-06 Brady Eidson <beidson@apple.com>
Rubberstamped by Kevin Decker
20,000!
* ChangeLog: Point out revision 20,000
2007-03-06 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed.
Gdk build fix.
* loader/gdk/FrameLoaderClientGdk.cpp: update userAgent() signature.
(WebCore::FrameLoaderClientGdk::userAgent):
* loader/gdk/FrameLoaderClientGdk.h: ditto.
2007-03-06 Mitz Pettel <mitz@webkit.org>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=12986
REGRESSION(NativeListBox): Listboxes not updated when resized dynamically
Test: fast/forms/select-change-listbox-size.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::parseMappedAttribute): Reattach on list box size change.
2007-03-06 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12885
REGRESSION (r19696): Incomplete background repaint
Tests: fast/repaint/content-into-overflow.html
fast/repaint/overflow-into-content.html
Changed repaintAfterLayoutIfNeeded() to take, in addition to the clipped overflow
rect, the unclipped border box plus outline, and to repaint any areas that
were added or removed from that box, in addition to any areas added or removed
from the clipped overflow rect.
* platform/graphics/svg/SVGResourceMarker.cpp:
(WebCore::SVGResourceMarker::draw):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::absoluteClippedOverflowRect): Renamed getAbsoluteRepaintRect() to
this.
* rendering/RenderBox.h:
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::absoluteClippedOverflowRect):
* rendering/RenderFlow.h:
* rendering/RenderForeignObject.cpp:
(WebCore::RenderForeignObject::layout):
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::layout):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::layout):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::checkForRepaintOnResize):
(WebCore::RenderLayer::updateLayerPositions):
* rendering/RenderLayer.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::repaint):
(WebCore::RenderObject::repaintAfterLayoutIfNeeded):
(WebCore::RenderObject::getAbsoluteRepaintRectWithOutline):
(WebCore::RenderObject::absoluteClippedOverflowRect):
(WebCore::RenderObject::absoluteOutlineBox):
* rendering/RenderObject.h:
* rendering/RenderPath.cpp:
(WebCore::RenderPath::layout):
(WebCore::RenderPath::absoluteClippedOverflowRect):
(WebCore::RenderPath::absoluteRects):
(WebCore::RenderPath::drawMarkersIfNeeded):
* rendering/RenderPath.h:
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::layout):
(WebCore::RenderSVGContainer::absoluteClippedOverflowRect):
(WebCore::RenderSVGContainer::absoluteRects):
* rendering/RenderSVGContainer.h:
* rendering/RenderSVGHiddenContainer.cpp:
(WebCore::RenderSVGHiddenContainer::absoluteClippedOverflowRect):
* rendering/RenderSVGHiddenContainer.h:
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::imageChanged):
(WebCore::RenderSVGImage::absoluteClippedOverflowRect):
(WebCore::RenderSVGImage::absoluteRects):
* rendering/RenderSVGImage.h:
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::absoluteClippedOverflowRect):
(WebCore::RenderSVGText::layout):
(WebCore::RenderSVGText::absoluteRects):
* rendering/RenderSVGText.h:
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::absoluteClippedOverflowRect):
* rendering/RenderTableCell.h:
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::absoluteClippedOverflowRect):
* rendering/RenderTableCol.h:
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::absoluteClippedOverflowRect):
* rendering/RenderTableRow.h:
* rendering/RenderText.cpp:
(WebCore::RenderText::absoluteClippedOverflowRect):
* rendering/RenderText.h:
2007-03-06 Ian Eng <ian.eng.webkit@gmail.com>
Reviewed by Maciej.
- fixed http://bugs.webkit.org/show_bug.cgi?id=12720
Bug 12720: Re-defining window.location.toString function keeps re-loading forever
* bindings/js/kjs_window.cpp:
Disallow replacing functions in LocationTable, and return early without updating URL.
2007-03-06 Kevin McCullough <kmccullough@apple.com>
Reviewed by Darin.
<http://bugs.webkit.org/show_bug.cgi?id=12686>
REGRESSION: Bloglines.com Feeds tab cannot expand folders in TOT
- Now all class constructors implement implementsHasInstance.
* bindings/scripts/CodeGeneratorJS.pm:
2007-03-07 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Rob & Oliver.
Preparations for the new SVG text engine.
Handle baseline-shift / kerning css values correctly.
Recognize missing svg presentation attribute "font-size-adjust".
Add all missing svg<->css property mappings in mapToEntry().
Doesn't affect any layout test (as these properties are not used w/o my text patch).
While I'm at it, unify the macro names (RS_ -> SVG_RS_) & cleanup style a bit.
* ksvg2/css/CSSPropertyNames.in:
* ksvg2/css/SVGCSSParser.cpp:
(WebCore::CSSParser::parseSVGValue):
* ksvg2/css/SVGCSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applySVGProperty):
* ksvg2/css/SVGRenderStyle.cpp:
(WebCore::SVGRenderStyle::SVGRenderStyle):
(WebCore::SVGRenderStyle::operator==):
(WebCore::SVGRenderStyle::inheritedNotEqual):
(WebCore::SVGRenderStyle::inheritFrom):
* ksvg2/css/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::NonInheritedFlags::):
(WebCore::SVGRenderStyle::setBitDefaults):
* ksvg2/css/SVGRenderStyleDefs.cpp:
(StyleTextData::StyleTextData):
(StyleTextData::operator==):
(StyleMiscData::StyleMiscData):
(StyleMiscData::operator==):
* ksvg2/css/SVGRenderStyleDefs.h:
(WebCore::):
(WebCore::StyleTextData::operator!=):
* ksvg2/svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName):
2007-03-06 Justin Garcia <justin.garcia@apple.com>
Reviewed by kevin
<http://bugs.webkit.org/show_bug.cgi?id=12245>
FCKeditor: Remove Format sometimes doesn't work
<rdar://problem/4786404>
Underline style is not removed from selection after performing Remove Format
* editing/Editor.cpp:
(WebCore::Editor::removeFormattingAndStyle): Re-wrote this.
2007-03-07 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Oliver.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12979
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12981
Guard against registering pending resources with empty id.
Be careful with calling recalcStyle() in SVGUseElement, when change is "Detach" we
have to use special code, as calling attach() on the shadow tree root element will crash,
because it has no (direct) parent node, only a shadow parent node element.
* ksvg2/misc/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::addPendingResource):
* ksvg2/svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::recalcStyle):
2007-03-06 Kevin Decker <kdecker@apple.com>
Reviewed by Adele.
Fixed: <rdar://problem/5041660> REGRESSION: <keygen> element broken, prevents users from signing up for Thawte email certs
* bindings/objc/DOM.mm:
(WebCore::createElementClassMap): Added <keygen> to the DOM bindings so it can be accessed from Objective-C.
* css/html4.css: Apply the look of the <select> element to <keygen>.
* html/HTMLElementFactory.cpp:
(WebCore::keygenConstructor): Added.
(WebCore::createFunctionMap): Added keygen.
* html/HTMLSelectElement.cpp: Made const typeAheadTimeout variable static const.
(WebCore::HTMLSelectElement::HTMLSelectElement): Fix both HTMLSelectElement constructors to initialize the
same number of member variables. The fact that some fields were not initialized could (and would) crash the
keygen element when selecting different items. Also removed m_typedString(String()) from the constructor
initialization because this is not needed.
2007-03-06 Kevin McCullough <kmccullough@apple.com>
Reviewed by Darin.
- Rename a function to clarify its purpose.
* WebCore.exp:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::registerURLSchemeAsLocal):
* loader/FrameLoader.h:
2007-03-06 Adam Roben <aroben@apple.com>
Build fix.
* WebCore.exp: Updated symbols.
2007-03-06 Adam Roben <aroben@apple.com>
Reviewed by Anders.
Added a parameter to all StringTruncator methods to specify whether
rounding hacks should be on or off.
No layout test possible.
* platform/StringTruncator.cpp:
(WebCore::stringWidth): Added disableRoundingHacks parameter.
(WebCore::truncateString): Ditto.
(WebCore::StringTruncator::centerTruncate): Ditto.
(WebCore::StringTruncator::rightTruncate): Ditto.
(WebCore::StringTruncator::width): Ditto.
* platform/StringTruncator.h: Ditto.
* platform/mac/FileChooserMac.mm:
(WebCore::FileChooser::basenameForWidth): Pass in false to
centerTruncate so that the truncation matches the way the text will be
rendered.
2007-03-06 Anders Carlsson <acarlsson@apple.com>
Reviewed by Maciej.
<rdar://problem/5035045>
REGRESSION: WebKit browser doesn't display image at http://www.metoffice.gov.uk/weather/satellite/index.html
It turns out WinIE does allow you to access images by their id as special document properties. However, this is only
allowed when the element also has a name attribute. The value of the name attribute is ignored and can even be empty!
* bindings/js/kjs_html.cpp:
(KJS::JSHTMLDocument::namedItemGetter):
Return jsUndefined() if the collection is empty.
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::parseMappedAttribute):
(WebCore::HTMLImageElement::insertedIntoDocument):
(WebCore::HTMLImageElement::removedFromDocument):
* html/HTMLImageElement.h:
Add the id attribute value to the extra named item map.
* html/HTMLNameCollection.cpp:
(WebCore::HTMLNameCollection::traverseNextItem):
Check for images with name attributes that match, as well as elements with id attributes that match where
the element also has a name attribute.
2007-03-06 Anders Carlsson <acarlsson@apple.com>
Reviewed by Adam.
WebCore part of patch to make it possible to have different user agents for different URLs.
* bindings/js/kjs_navigator.cpp:
(KJS::Navigator::getValueProperty):
* bindings/js/kjs_proxy.cpp:
(WebCore::KJSProxy::initScriptIfNeeded):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::setLoading):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::userAgent):
(WebCore::FrameLoader::loadResourceSynchronously):
(WebCore::FrameLoader::applyUserAgent):
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::userAgent):
2007-03-05 Kevin McCullough <kmccullough@apple.com>
Reviewed by Mark and Dave H.
- rdar://problem/5038491
An oversight of the security fix that prevented remote from loading local is that it
prevents user style sheets when the site is remote. This fixes that.
* loader/Cache.cpp: Propogate and check user style sheet flag.
(WebCore::createResource):
(WebCore::Cache::requestResource):
* loader/Cache.h: Propogate user style sheet flag.
* loader/CachedCSSStyleSheet.cpp: Propogate user style sheet flag.
(WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
* loader/CachedCSSStyleSheet.h: Propogate user style sheet flag.
* loader/DocLoader.cpp: Propogate user style sheet flag.
(WebCore::DocLoader::requestResource):
* loader/SubresourceLoader.cpp: Propogate and check user style sheet flag.
(WebCore::SubresourceLoader::create):
* loader/SubresourceLoader.h: Add check for user style sheet flag.
* loader/loader.cpp: Propogate user style sheet flag.
(WebCore::Loader::load):
(WebCore::Loader::servePendingRequests):
* loader/loader.h: Propogate user style sheet flag.
2007-03-06 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Darin.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12936 (Master bug used to track all current use problems.)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12926 (transform attribute not respected in nested <use> elements)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12267 (getElementById broken for <use>)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12916 (use instance in symbol definition does not work)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12917 (mouseout event does not occur after scaling use instance)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12838 (SVG <use> DOM broken for script)
Added test: svg/custom/use-nested-transform.svg
Added test: svg/custom/struct-use-09-b.svg (not yet official W3C-SVG-1.1 testcase)
Fixes test: svg/custom/use-elementInstance-event-target.svg (rectangle now turns green on first click)
Fix all (except one) known <use> bug. The remaining bug (12630) is not crucical at all.
Enable <use> again as default SVG feature, as discussed on webkit-dev.
dom/Element.cpp needed following tweak: set hasParentStyle to true, if there is no parentNode
available - which happens for <use> nodes, as it's a shadow node. This fixes recalcStyle behaviour.
Override recalcStyle() in SVGUseElement, and properly forward the call to the shadow tree root element.
The shadow tree now receives proper style updates (without having to recreate the whole tree!).
Override attributeChanged() in SVGUseElement and only call notifyAttributeChange if one of x/y/width/height/xlink:href
attribute changed - otherwhise we'll end up recreating the tree for every transform/style/(non-existing-attribute) change.
Do not override transform in nested use situations, but correctly append (right-sided) the translation of the <use> element.
Some cosmetic fixes: don't add transform="translate(0 0)" attributes if both x/y values are null in the shadow tree.
Factor out logic for replacing symbol/svg tags in the shadow tree, and also invoke it during expandUseElementsInShadowTree -
otherwhise <symbol><use xlink:href="#someOtherSymbol"></symbol> the <use> gets expanded to a <symbol>. Though no one expands
the <symbol> element - and we're end up in hitting an assertion. Avoid that.
* bindings/js/JSSVGElementWrapperFactory.cpp:
* bindings/js/kjs_dom.cpp:
(KJS::toJS):
* bindings/objc/DOM.mm:
(WebCore::createElementClassMap):
* dom/Element.cpp:
(WebCore::Element::recalcStyle):
* ksvg2/svg/SVGElement.cpp:
(WebCore::shadowTreeParentElementForShadowTreeElement):
(WebCore::SVGElement::dispatchEvent):
* ksvg2/svg/SVGElementInstance.cpp:
* ksvg2/svg/SVGElementInstance.h:
* ksvg2/svg/SVGElementInstance.idl:
* ksvg2/svg/SVGElementInstanceList.cpp:
* ksvg2/svg/SVGElementInstanceList.h:
* ksvg2/svg/SVGElementInstanceList.idl:
* ksvg2/svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::notifyAttributeChange):
(WebCore::SVGStyledElement::updateElementInstance):
* ksvg2/svg/SVGStyledElement.h:
* ksvg2/svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::attributeChanged):
(WebCore::SVGUseElement::notifyAttributeChange):
(WebCore::SVGUseElement::recalcStyle):
(WebCore::SVGUseElement::buildPendingResource):
(WebCore::SVGUseElement::buildShadowTreeForSymbolTag):
(WebCore::SVGUseElement::alterShadowTreeForSVGTag):
(WebCore::SVGUseElement::buildShadowTree):
(WebCore::SVGUseElement::expandUseElementsInShadowTree):
(WebCore::SVGUseElement::attachShadowTree):
* ksvg2/svg/SVGUseElement.h:
* ksvg2/svg/SVGUseElement.idl:
* ksvg2/svg/svgtags.in:
2007-03-05 Brady Eidson <beidson@apple.com>
Reviewed by John
Fixes <rdar://problem/4974258>
Adds some key null checking
* bindings/js/kjs_html.cpp:
(KJS::JSHTMLElement::implementsCall): Null check doc/frame
* bindings/objc/DOMInternal.mm:
(-[WebScriptObject _initializeScriptDOMNodeImp]): Null check doc/frame
2007-03-06 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Darin.
Path::normalAngleAtLength() / Path::pointAtLength() don't work correctly.
pointAtLength() was not implemented, basically and normalAngleAtLength()
had a bug in the tangent slope calculation.
The normalAngleAtLength() stuff can only be tested with my local textPath support.
New LayoutTest: svg/custom/path-textPath-simulation.svg
* platform/graphics/Path.cpp:
(WebCore::pathLengthApplierFunction):
* platform/graphics/PathTraversalState.cpp:
(WebCore::PathTraversalState::quadraticBezierTo):
(WebCore::PathTraversalState::cubicBezierTo):
* platform/graphics/PathTraversalState.h:
(WebCore::PathTraversalState::):
2007-03-05 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12970
Fix and import 4XPath test_core_functions.html test
* xml/XPathExpression.cpp:
(WebCore::XPathExpression::evaluate): Fully initialize the evaluation context.
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunSubstring::doEvaluate): Fixed handling of edge cases.
(WebCore::XPath::FunRound::round): Reimplemented to match the spec; exposed FunRound::round() to be used in
other functions.
2007-03-05 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12954
XPath relative operations are implemented incorrectly
* xml/XPathPredicate.cpp:
(WebCore::XPath::NumericOp::doEvaluate):
(WebCore::XPath::EqTestOp::compare):
(WebCore::XPath::EqTestOp::doEvaluate):
Reimplemented relative equality operations to match the spec.
* xml/XPathPredicate.h:
(WebCore::XPath::NumericOp::):
(WebCore::XPath::EqTestOp::):
Moved relative operations to EqTestOp.
* xml/XPathGrammar.y:
* xml/XPathParser.cpp:
(WebCore::XPath::Parser::nextTokenInternal):
(WebCore::XPath::Parser::lex):
Adapted for the above changes.
2007-03-05 Mark Rowe <mrowe@apple.com>
Reviewed by Lars.
Fix http://bugs.webkit.org/show_bug.cgi?id=12947
Bug 12947: REGRESSION: ASSERTION FAILED: maxWidth >= 0 in StringTruncator.cpp:109 in WebCore::truncateString()
Handle nil window correctly in toUserSpace and toDeviceSpace. On Intel Macs a message to nil that returns a
float will return 0.0. We use this as the divisor in calculating a scale factor, which results in NaN being
introduced into our rect.
* platform/mac/ScreenMac.mm:
(WebCore::toUserSpace):
(WebCore::toDeviceSpace):
2007-03-05 Rob Buis <buis@kde.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12868
parts of the CSS classes in this simple SVG example are not applied
Make sure the xml stylesheets are parsed in strict mode.
* dom/ProcessingInstruction.cpp:
(WebCore::ProcessingInstruction::parseStyleSheet):
2007-03-04 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Change to dispatch the keypress event during the defaultEventHandler for keydown events. This matches IE behavior.
This is preparation for fixing event dispatch with input methods (http://bugs.webkit.org/show_bug.cgi?id=10871)
Test: fast/events/keydown-keypress-preventDefault.html
* dom/EventTargetNode.cpp: (WebCore::EventTargetNode::defaultEventHandler): Call the defaultKeyboardEventHandler for keydown events.
* page/EventHandler.cpp:
(WebCore::eventTargetNodeForDocument): Return 0 instead of false since the return type in EventTargetNode.
(WebCore::EventHandler::keyEvent): Removed dispatch of keypress event, since this is now done in the default event handler.
(WebCore::EventHandler::defaultKeyboardEventHandler): For keydown events, create and dispatch a keypress event.
2007-03-04 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Nikolas Zimmermann (yay!).
http://bugs.webkit.org/show_bug.cgi?id=12962
4XPath tests crash on lang() function
Covered by 4XPath tests, to be landed later.
* platform/StringImpl.cpp:
(WebCore::StringImpl::reverseFind): Do not crash with empty strings.
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunLang::doEvaluate): Do not crash when an element has no
attributes. Use a proper namespace for xml:lang (not sure where "xms" came from).
Rewrote the algorithm for suffix removing to match the spec.
2007-03-02 Anders Carlsson <acarlsson@apple.com>
Reviewed by Darin.
<rdar://problem/5028165>
http://bugs.webkit.org/show_bug.cgi?id=12915
REGRESSION: XMLHttpRequest.abort() does not stop loading (12915)
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::stopLoading):
Save the value of m_loading since calling FrameLoader::stopLoading could set it to false.
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didCancel):
* loader/SubresourceLoader.h:
Get rid of didCancel now, it's not needed anymore.
* xml/xmlhttprequest.cpp:
(WebCore::XMLHttpRequest::abort):
Call cancel() instead of stopLoading(). Also, set m_aborted to true so the XMLHttpRequest object
won't be dereferenced in didFail when aborting.
2007-03-04 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Nikolas Zimmermann.
Move ScrollView stubs to ScrollViewGdk.cpp
* platform/gdk/FrameGdk.h: remove comment that no longer makes sense
* platform/gdk/ScrollViewGdk.cpp:
(WebCore::ScrollView::addChild):
(WebCore::ScrollView::removeChild):
(WebCore::ScrollView::scrollPointRecursively):
(WebCore::ScrollView::inWindow):
(WebCore::ScrollView::wheelEvent):
(WebCore::ScrollView::updateScrollbars):
(WebCore::ScrollView::updateScrollInfo):
(WebCore::ScrollView::windowToContents):
(WebCore::ScrollView::contentsToWindow):
(WebCore::ScrollView::scrollbarUnderMouse):
* platform/gdk/TemporaryLinkStubs.cpp:
2007-03-02 Kevin McCullough <kmccullough@apple.com>
Reviewed by Geoff.
- rdar://problem/4922454
- This fixes a security issue by making remote referrers not able to access local
resources, unless they register their schemes to be treated as local. The result is
that those schemes can access local resources and cannot be accessed by remote
referrers.
Because this behavior is new a link-on-or-after check is made to determine if the
app should use the older, less safe, behavior.
* WebCore.exp: added exported functions
* bindings/objc/DOM.mm: consolodated function to base class
(-[DOMElement image]):
(-[DOMElement _imageTIFFRepresentation]):
* dom/Document.cpp: Cache the document's ability to load local resources.
(WebCore::Document::Document):
(WebCore::Document::setURL):
(WebCore::Document::shouldBeAllowedToLoadLocalResources):
(WebCore::Document::stylesheetLoaded):
* dom/Document.h: Cache the docuent's ability to load local resources.
(WebCore::Document::getPendingSheet):
(WebCore::Document::isAllowedToLoadLocalResources):
* html/HTMLImageLoader.cpp: Moved functionality into base class.
(WebCore::HTMLImageLoader::updateFromElement):
(WebCore::HTMLImageLoader::dispatchLoadEvent):
* html/HTMLLinkElement.cpp: Handles null returns correctly now.
* html/HTMLTokenizer.cpp: Moved functionality into base class.
(WebCore::HTMLTokenizer::notifyFinished):
* ksvg2/misc/SVGImageLoader.cpp: Moved functionality into base class.
(WebCore::SVGImageLoader::dispatchLoadEvent):
* loader/Cache.cpp: Checks if the cached resource can be loaded.
(WebCore::Cache::requestResource):
* loader/CachedCSSStyleSheet.cpp: Moved functionality into base class.
(WebCore::CachedCSSStyleSheet::ref):
(WebCore::CachedCSSStyleSheet::error):
* loader/CachedImage.cpp: Moved functionality into base class.
(WebCore::CachedImage::CachedImage):
* loader/CachedImage.h: Moved functionality into base class.
(WebCore::CachedImage::canRender):
* loader/CachedResource.cpp: Cache if the CachedResource should be treated as local
(WebCore::CachedResource::CachedResource):
* loader/CachedResource.h: Moved functionality into base class.
(WebCore::CachedResource::errorOccurred):
(WebCore::CachedResource::shouldTreatAsLocal):
* loader/CachedScript.cpp: Moved functionality into base class.
(WebCore::CachedScript::CachedScript):
* loader/CachedScript.h: Moved functionality into base class.
(WebCore::CachedScript::schedule):
* loader/CachedXBLDocument.cpp: Moved functionality into base class.
(WebCore::CachedXBLDocument::error):
* loader/CachedXSLStyleSheet.cpp: Moved functionality into base class.
(WebCore::CachedXSLStyleSheet::error):
* loader/FrameLoader.cpp: See comments for each function below.
(WebCore::FrameLoader::loadSubframe): Use new canLoad.
(WebCore::FrameLoader::restrictAccessToLocal): return value of linked-on-or-after check.
(WebCore::FrameLoader::setRestrictAccessToLocal): set value for linked-on-or-after check.
(WebCore::localSchemes): Return set of schemes that are to be treated as local.
(WebCore::FrameLoader::loadPlugin): Use new canLoad.
(WebCore::FrameLoader::canLoad): Now multiple functions that each do the same work but some can take advantage of the cached values, if they were computed previously.
(WebCore::FrameLoader::shouldHideReferrer): Extracted out the logic to determine if the referrer should be hidden so it is only calculated when needed.
(WebCore::FrameLoader::loadResourceSynchronously): No longer calls canLoad to get hideReferrer info.
(WebCore::FrameLoader::registerSchemeAsLocal): Functionality to register a scheme to be treated as local.
(WebCore::FrameLoader::treatURLAsLocal): Given a URL this function determines if it should be treated as local.
* loader/FrameLoader.h: Declared functions for this security fix. See above.
* loader/MainResourceLoader.cpp: Optized order of bools to regain performance.
(WebCore::MainResourceLoader::continueAfterContentPolicy):
* loader/SubresourceLoader.cpp: Now restricts remote from loading local resources.
(WebCore::SubresourceLoader::create):
* page/EventHandler.cpp: Moved functionality into base class.
(WebCore::selectCursor):
* platform/KURL.cpp: KURLs need to check all the registered schemes now.
(WebCore::KURL::isLocalFile):
* rendering/HitTestResult.cpp: Moved functionality into base class.
(WebCore::HitTestResult::image):
* rendering/RenderImage.cpp: Moved functionality into base class.
(WebCore::RenderImage::setCachedImage):
(WebCore::RenderImage::imageChanged):
(WebCore::RenderImage::paint):
(WebCore::RenderImage::layout):
(WebCore::RenderImage::calcAspectRatioWidth):
(WebCore::RenderImage::calcAspectRatioHeight):
* rendering/RenderImage.h: Moved functionality into base class.
(WebCore::RenderImage::errorOccurred):
* rendering/RenderListItem.cpp: Moved functionality into base class.
(WebCore::RenderListItem::setStyle):
* rendering/RenderListMarker.cpp: Moved functionality into base class.
(WebCore::RenderListMarker::isImage):
* xml/xmlhttprequest.cpp: Check doc's cached value instead of determining independently.
(WebCore::XMLHttpRequest::urlMatchesDocumentDomain):
2007-03-02 Justin Garcia <justin.garcia@apple.com>
Reviewed by kevin
<rdar://problem/5028447>
REGRESSION: Gmail Editor: Copied message text pastes at the wrong font size
* editing/markup.cpp:
(WebCore::createMarkup): The style of the div that holds
a fully selected body's styles didn't include styles inherited
from the body's ancestors.
2007-03-02 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/4545040>
innerHTML does not HTML-escape text nodes inside PRE elements
<rdar://problem/5027857>
Pasting into Mail from Safari's view-source window renders the HTML
* editing/HTMLInterchange.cpp:
(WebCore::convertHTMLTextToInterchangeFormat): Send this function
the node that the text comes from as a parameter. It shouldn't convert
'\n's to spaces/nbsps if the text is coming from text where newlines are
preserved.
* editing/HTMLInterchange.h:
* editing/markup.cpp:
(WebCore::startMarkup): Escape text inside the children of PREs.
2007-03-02 Sam Weinig <sam@webkit.org>
Reviewed by Anders.
Try to fix the Qt build.
* platform/qt/TemporaryLinkStubs.cpp: Add stubs.
(WebCore::searchMenuNoRecentSearchesText):
(WebCore::searchMenuRecentSearchesText):
(WebCore::searchMenuClearRecentSearchesText):
(WebCore::AXWebAreaText):
(WebCore::AXLinkText):
(WebCore::AXListMarkerText):
(WebCore::AXImageMapText):
(WebCore::AXHeadingText):
2007-03-02 David Harrison <harrison@apple.com>
Suggested by Darin.
A more efficient solution to rdar://4961431.
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject accessibilityIsIgnored]):
2007-03-01 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/5032095>
Gmail Editor: Copied text pastes on a new line instead of current line
Start merge failed to occur because positionAtStartOfInsertedContent
had a bug.
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::positionAtStartOfInsertedContent):
Was failing when inserting <span><div>foo/div></span>. Return the
inserted content's first VisiblePosition.
2007-03-02 Dave Hyatt <hyatt@apple.com>
Fix crasher in glyph map code (buffer overrun).
Reviewed by darin
* platform/win/GlyphPageTreeNodeWin.cpp:
(WebCore::GlyphPage::fill):
2007-03-01 Antti Koivisto <antti@apple.com>
Reviewed by Maciej.
Fix for http://bugs.webkit.org/show_bug.cgi?id=12895
REGRESSION: imagemap: pointer cursor is shown everywhere
<rdar://problem/5028163>
Image with imagemap should never itself be URLElement in hit test results.
No layout test, cursor state can't be captured.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hitTest):
2007-03-01 Antti Koivisto <antti@apple.com>
Reviewed by Maciej.
Fix http://bugs.webkit.org/show_bug.cgi?id=12690
REGRESSION: can not log in to bank of america with TOT webkit
<rdar://problem/4990044>
and http://bugs.webkit.org/show_bug.cgi?id=12604
REGRESSION: After closing the "Would you like to save password" sheet, the form fails
to submit automatically at http://www.mac.com/WebObjects/HomePage.woa
<rdar://problem/4871752>
and http://bugs.webkit.org/show_bug.cgi?id=12020
REGRESSION: Flickr uploading broken
<rdar://problem/4928662>
Turn protection against multiple forms submission back on. This approach is buggy
but it is way better than not having it at all. Not protecting against this
breaks number of major sites.
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject accessibilityPerformAction:]):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::resetMultipleFormSubmissionProtection):
(WebCore::FrameLoader::submitForm):
(WebCore::FrameLoader::receivedMainResourceError):
* loader/FrameLoader.h:
* page/EventHandler.cpp:
(WebCore::EventHandler::keyEvent):
* page/Frame.cpp:
(WebCore::Frame::setView):
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::mouseDown):
2007-03-01 Kevin McCullough <kmccullough@apple.com>
Reviewed by Adam.
- Added the test case: external-script-URL-location.html
- Fix an issue where the url of a document is null after an open if the document
has no parent.
* dom/Document.cpp:
(WebCore::Document::open):
2007-03-01 Anders Carlsson <acarlsson@apple.com>
Reviewed by Darin.
<rdar://problem/4960250>
http://bugs.webkit.org/show_bug.cgi?id=11627
REGRESSION: Reproducible crash at IMDb in WebCore::FrameLoader::stopLoadingSubframes
In rare cases, we could end up calling checkLoadComplete twice for the same frame. This would cause the
didFailProvisionalLoad delegate method to be called twice for the same frame, and also cause the provisional document loader
to be reset to null when other code wasn't expecting it.
This regressed in revision 10904 with the fix for <rdar://problem/4184719>. The fix is to only call stopLoading on the frame
if either the document loader is loading, or the document is still being parsed. I've verified that the bug is still fixed and
that no leaks occur.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::stopLoading):
2007-03-01 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Darin.
Fix ARM crash due to accessing non-4-byte-aligned memory
as 32-bit values.
* platform/AtomicString.cpp:
(WebCore::UCharBufferTranslator::equal):
2007-03-01 David Harrison <harrison@apple.com>
Reviewed by Darin.
<rdar://problem/5033905> Have the DOM secondary thread check raise an exception by default
* platform/mac/ThreadCheck.mm:
(WebCore::_WebCoreThreadViolationCheck):
Initialize threadViolationIsException to true.
2007-03-01 Brady Eidson <beidson@apple.com>
Reviewed by Darin
<rdar://problem/5030628> - Crash opening a new window with the
"New windows open to the same page" pref set
* history/HistoryItem.cpp:
(WebCore::HistoryItem::HistoryItem): Set the m_subItems vector capacity correctly
2007-03-01 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12801
Assertion failure in createMarkup() (root) when doing Select All, Copy in an SVG document
Test: editing/pasteboard/createMarkup-assert.xml
* editing/markup.cpp:
(WebCore::createMarkup): Removed the assertion, because it's wrong in a non-HTML world.
2007-02-28 Adam Roben <aroben@apple.com>
Reviewed by Oliver and Hyatt.
Fix <rdar://problem/5024233> Crash while using Find on empty document
No layout test possible, as this involves a null document.
* dom/Range.cpp:
(WebCore::rangeOfContents): Added an ASSERT.
* page/Frame.cpp:
(WebCore::Frame::findString): Added a null-check for document().
(WebCore::Frame::markAllMatchesForText): Ditto.
2007-02-28 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Not reviewed - simple gdk build fix.
Add stubs for newly introduced localized strings.
* platform/gdk/TemporaryLinkStubs.cpp:
(WebCore::searchMenuNoRecentSearchesText):
(WebCore::searchMenuRecentSearchesText):
(WebCore::searchMenuClearRecentSearchesText):
2007-02-28 Brady Eidson <beidson@apple.com>
Reviewed by Beth
Move the Thread Safety Check functions into their own header for export to WebKit
* WebCore.exp: Export the function
* WebCore.xcodeproj/project.pbxproj:
* bindings/scripts/CodeGeneratorObjC.pm: Include the new header
* platform/Logging.h: Move stuff to ThreadCheck.h
* platform/ThreadCheck.h: Added.
* platform/mac/LoggingMac.mm: Move stuff to ThreadCheck.mm
* platform/mac/ThreadCheck.mm: Added.
(WebCore::_WebCoreThreadViolationCheck):
(WebCoreReportThreadViolation):
2007-02-28 Beth Dakin <bdakin@apple.com>
Reviewed by Brady.
Fix for http://bugs.webkit.org/show_bug.cgi?id=12923 REGRESSION:
Assertion failure copying standalone image
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::writeImage): Use the CachedImage as the
resource. This makes more sense anyway. There is no need to null-
check the renderer or the CachedImage since we return early if
there is no Image* and the HitTestResult::image() function checks
for these things.
2007-02-28 Adele Peterson <adele@apple.com>
Reviewed by Beth.
Fix for <rdar://problem/4887423> REGRESSION: search results popup menu strings are not localized
and <rdar://problem/3517227> accessibility-related strings in WebCore are not localized
Use localized strings from WebKit instead of hard coded strings.
* bridge/mac/WebCoreAXObject.mm: (-[WebCoreAXObject roleDescription]):
* page/mac/WebCoreViewFactory.h:
* platform/LocalizedStrings.h:
* platform/mac/LocalizedStringsMac.mm:
(WebCore::searchMenuNoRecentSearchesText):
(WebCore::searchMenuRecentSearchesText):
(WebCore::searchMenuClearRecentSearchesText):
(WebCore::AXWebAreaText):
(WebCore::AXLinkText):
(WebCore::AXListMarkerText):
(WebCore::AXImageMapText):
(WebCore::AXHeadingText):
* rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::itemText):
2007-02-27 Antti Koivisto <antti@apple.com>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=12911
GoogleDocs: Ordered lists don't update immediately when start attribute changed
Update list marker value when start attribute changes.
* html/HTMLOListElement.cpp:
(WebCore::HTMLOListElement::parseMappedAttribute):
2007-02-28 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Maciej.
Corrected the use of the new ENABLE() macros in some ksvg2/svg files.
Add new build-webkit flags "--(no-)xpath" / "--(no-)xslt", to be able
to switch off build features easily. Also add "--(no-)svg-experimental-features"
flag, to be able to test filters/animations/use/foreignObject easily.
* DerivedSources.make:
* ksvg2/scripts/make_names.pl:
* ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
* ksvg2/svg/SVGStyledElement.cpp:
* ksvg2/svg/SVGUseElement.cpp:
2007-02-28 Rob Buis <buis@kde.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12609
Any SVG element will create renderers even when children of HTML elements
Allow creation of svg renderers only when parent is SVG, except for
the <svg> element.
* ksvg2/svg/SVGAElement.h:
* ksvg2/svg/SVGAnimationElement.h:
* ksvg2/svg/SVGCircleElement.h:
* ksvg2/svg/SVGClipPathElement.h:
(WebCore::SVGClipPathElement::rendererIsNeeded):
* ksvg2/svg/SVGDefsElement.cpp:
* ksvg2/svg/SVGDefsElement.h:
* ksvg2/svg/SVGDescElement.h:
(WebCore::SVGDescElement::rendererIsNeeded):
* ksvg2/svg/SVGElement.cpp:
* ksvg2/svg/SVGEllipseElement.h:
* ksvg2/svg/SVGFilterElement.h:
(WebCore::SVGFilterElement::rendererIsNeeded):
* ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
(WebCore::SVGFilterPrimitiveStandardAttributes::rendererIsNeeded):
* ksvg2/svg/SVGForeignObjectElement.h:
* ksvg2/svg/SVGGElement.h:
* ksvg2/svg/SVGGradientElement.h:
* ksvg2/svg/SVGImageElement.h:
* ksvg2/svg/SVGLineElement.h:
* ksvg2/svg/SVGMarkerElement.h:
* ksvg2/svg/SVGMaskElement.h:
* ksvg2/svg/SVGPathElement.h:
* ksvg2/svg/SVGPatternElement.h:
* ksvg2/svg/SVGPolyElement.h:
* ksvg2/svg/SVGRectElement.h:
* ksvg2/svg/SVGStopElement.h:
* ksvg2/svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::rendererIsNeeded):
* ksvg2/svg/SVGStyledElement.h:
* ksvg2/svg/SVGSwitchElement.h:
* ksvg2/svg/SVGSymbolElement.h:
(WebCore::SVGSymbolElement::rendererIsNeeded):
* ksvg2/svg/SVGTRefElement.h:
* ksvg2/svg/SVGTSpanElement.h:
* ksvg2/svg/SVGTextElement.h:
* ksvg2/svg/SVGTitleElement.h:
(WebCore::SVGTitleElement::rendererIsNeeded):
* ksvg2/svg/SVGUseElement.h:
* ksvg2/svg/SVGViewElement.h:
(WebCore::SVGViewElement::rendererIsNeeded):
2007-02-28 Rob Buis <buis@kde.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12913
Markers do not render in webkit when it misses markerWidth or markerHeight attribute
Set defaults for markerWidth/markerHeight so markers that do not specify them render.
* ksvg2/svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::SVGMarkerElement):
2007-02-27 Anders Carlsson <acarlsson@apple.com>
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::~ResourceLoader):
Remove comment.
2007-02-27 Justin Garcia <justin.garcia@apple.com>
Reviewed by oliver
<rdar://problem/5027300>
REGRESSION: Images inserted with align left/right are lost
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::shouldMerge):
Don't attempt to merge to or from a position before
or after a block because it will be a no-op and
lead to infinite recursion.
In this case it instead resulted in content loss because
of bugs in start/endOfParagraph (5027702).
* editing/visible_units.cpp: Added two FIXMEs for
the problems with start/endOfParagraph.
2007-02-27 Anders Carlsson <acarlsson@apple.com>
Reviewed by Geoff.
Make resource load delegate methods pass the right document loader.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::willSendRequest):
(WebCore::FrameLoader::didReceiveResponse):
(WebCore::FrameLoader::didReceiveData):
(WebCore::FrameLoader::didFailToLoad):
(WebCore::FrameLoader::didFinishLoad):
(WebCore::FrameLoader::didReceiveAuthenticationChallenge):
(WebCore::FrameLoader::didCancelAuthenticationChallenge):
Use the resource loader's document loader instead of the active one.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::receivedError):
Make it so we send the frame load delegate method before the resource load delegate method.
This was a regression from 2.0 and was caused by the fix to rdar://problem/4609195. Because the way the loader
now works, both delegate methods will be called.
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::ResourceLoader):
* loader/ResourceLoader.h:
(WebCore::ResourceLoader::documentLoader):
Add document loader pointer to ResourceLoader.
2007-02-27 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12910
REGRESSION (r18756-r18765): list-bullet doesn't redraw properly when changing the list's content using JavaScript
Test: fast/repaint/list-marker.html
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::positionListMarker): Add the marker to the visual
overflow of all its ancestor blocks up to the list item. This needs to be
done here since the marker is positioned only after those blocks have been
laid out.
2007-02-27 Antti Koivisto <antti@apple.com>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12918
REGRESSION: Google Finance dropdown Flickers
<rdar://4988039>
If a node dies while mouse is over it, it is still supposed to receive
mouseout event (wasn't case in Tiger webkit). However this event should
not propagate to any other nodes. This patch matches Firefox behavior in
this respect.
* dom/EventTargetNode.cpp:
(WebCore::EventTargetNode::dispatchGenericEvent):
2007-02-27 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
Fixed http://bugs.webkit.org/show_bug.cgi?id=12659 | <rdar://problem/4954306>
JS objects not collected after closing window @ ebay.com/maps.google.com
Garbage collect in the KJSProxy destructor, after clearing our reference
to the interpreter, because that's when the interpreter has torn down fully.
(Technically speaking, we can't *prove* that we have the only reference to
our interpreter, but that's how it works in practice, and manual garbage
collection is just an opportunistic optimization, so it's OK for it to
work in practice even if it can't be proven in theory.)
Layout tests pass. No leaks reported.
* bindings/js/kjs_proxy.cpp:
(WebCore::KJSProxy::~KJSProxy):
* bindings/js/kjs_proxy.h:
* page/Page.cpp:
(WebCore::Page::~Page): Merged pageDestroyed() calls. Moved debug-only
code to the bottom.
* page/Frame.cpp:
(WebCore::Frame::~Frame): Don't call getObject() because globalObject()
returns a JSObject* already, and the call can leave a pointer to the Window
object on the stack. Don't check for NULL because it is an invariant of
JavaScriptCore that no JSObject* can be NULL. Do use a volatile pointer
for w because the 'w = 0' assignment just screams to the compiler, "Don't
generate any code for me!"
2007-02-27 Rob Buis <buis@kde.org>
Reviewed by David Hyatt.
http://bugs.webkit.org/show_bug.cgi?id=4128
!important is ignored in inline styling.
Handle properties with !important flag better in inline
style declarations.
* css/CSSMutableStyleDeclaration.cpp:
(WebCore::CSSMutableStyleDeclaration::addParsedProperties):
2007-02-27 David Hyatt <hyatt@apple.com>
Bug 11435. Make sure RenderViews always paintBoxDecorations. They used to before I removed RenderView's
paint method. This fix restores the original behavior.
Reviewed by mitz
* rendering/RenderBox.cpp:
(WebCore::RenderBox::setStyle):
2007-02-27 David Hyatt <hyatt@apple.com>
Fix for bug 12094, make sure setMinMaxKnown starts off false for the weird/rare case of empty
plaintext documents (which really are buggy and should be fixed to generate root elements).
Reviewed by mitz
* rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
2007-02-27 Dex Deacon <occupant4@gmail.com>
Reviewed by Darin.
Fixed the case where a BackForwardList of capacity==1 would grow without bound.
* history/BackForwardList.cpp:
(WebCore::BackForwardList::addItem):
2007-02-22 Lars Naesbye Christensen <lars@naesbye.dk>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12848
Help cursor should have a white outline
* Resources/helpCursor.png:
2007-02-27 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12594
REGRESSION: Strange highlight in active input area
No automated test possible.
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint): Restore a check lost in r12792.
2007-02-27 Darin Adler <darin@apple.com>
Reviewed by Mitz.
- fix http://bugs.webkit.org/show_bug.cgi?id=12908
crash in http/tests/incremental/frame-focus-before-load.html
* page/mac/EventHandlerMac.mm: (WebCore::EventHandler::focusDocumentView):
Add null checks.
2007-02-27 Darin Adler <darin@apple.com>
Reviewed by Alexey.
- fix http://bugs.webkit.org/show_bug.cgi?id=12909
should use ICU, not TEC, for MacRoman decoding
* platform/TextCodecICU.cpp: (WebCore::TextCodecICU::registerEncodingNames):
Add "macroman" as an alias for "macintosh". We have seen that in use in mail,
although I'm not sure it's used on the web.
* platform/mac/mac-encodings.txt: Remove MacRoman line, which was added back
as part of the patch for bug 4971226. But by adding it to this file rather
than the ICU codec, we get it only on Mac OS X. And long term we are trying to
get rid of the use of TEC entirely, so we want this file to be as empty as
possible.
2007-02-27 Rob Buis <buis@kde.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12905
Not all svg shapes should support markers
Restrict marker usage to svg shapes polyline, polygon, line and path.
* ksvg2/svg/SVGLineElement.h:
(WebCore::SVGLineElement::supportsMarkers):
* ksvg2/svg/SVGPathElement.h:
(WebCore::SVGPathElement::supportsMarkers):
* ksvg2/svg/SVGPolyElement.h:
(WebCore::SVGPolyElement::supportsMarkers):
* ksvg2/svg/SVGStyledElement.h:
(WebCore::SVGStyledElement::supportsMarkers):
* rendering/RenderPath.cpp:
(WebCore::RenderPath::paint):
2007-02-26 Adele Peterson <adele@apple.com>
Reviewed by Lars.
Fix for http://bugs.webkit.org/show_bug.cgi?id=12902
<rdar://problem/5012679> REGRESSION: Pressing return key doesn't
move caret to next line after applying a font color in GMail
Test: fast/frames/iframe-window-focus-2.html
* page/EventHandler.h: Make focusDocumentView public.
* page/Frame.cpp: (WebCore::Frame::focusWindow): Instead of just setting the focused frame,
we should set also focus the document view. The bug here was that since the subframe view
wasn't the first responder, the key down event was going to the wrong frame.
2007-02-26 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- fixed <rdar://problem/4946881> Recursive loop with <marker> not caught, crashes in WebCore::SVGPaintServer::draw (11244)
http://bugs.webkit.org/show_bug.cgi?id=11244
* platform/graphics/svg/SVGResourceMarker.cpp:
(WebCore::SVGResourceMarker::draw): Use a HashSet to guard against
reference cycles.
2007-02-26 Maciej Stachowiak <mjs@apple.com>
Reviewed by Kevin McCullough.
- fix Qt build for earlier SVG changes.
* platform/graphics/svg/qt/SVGResourceFilterQt.cpp:
2007-02-26 Oliver Hunt <oliver@apple.com>
Reviewed by Maciej.
Fix for <rdar://problem/4827378>: Canvas with large height
uses lots of memory, computer almost stops responding
Put cap on maximum area of canvas, size is similar too the
maximum size allowed by firefox (firefox seems to to cut off
at area == 32767 * 9358).
Also protect renderer against the possibility of a null context
(this was triggering a CG warning)
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::createDrawingContext):
Apply maximum canvas area
(WebCore::HTMLCanvasElement::createPlatformImage):
Protect against null CG Context
2007-02-26 Mitz Pettel <mitz@webkit.org>
Reviewed by Antti Koivisto.
- fix http://bugs.webkit.org/show_bug.cgi?id=12899
Ordered lists not updating dynamically with new styles
Test: fast/lists/list-style-type-dynamic-change.html
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::setStyle): Made changing the marker type trigger
updating of the marker.
2007-02-26 Adele Peterson <adele@apple.com>
Reviewed by Maciej.
Fix for <rdar://problem/5012761> REGRESSION: form submit invokes wrong event handler
Test: fast/events/submit-reset-nested-bubble.html
* dom/EventTargetNode.h: Made handleLocalEvents virtual.
* html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::handleLocalEvents): If we're
not in the capture phase, and the target is a different form, and we're handling
the submitEvent or the resetEvent, then stop propagation of the event. This matches
Firefox behavior. You can only get in this situation if misnested tags cause
forms to be nested.
* html/HTMLFormElement.h: Added handleLocalEvents.
2007-02-26 Darin Adler <darin@apple.com>
Reviewed by Oliver Hunt.
- <rdar://problem/5021555> TextCodecICU does not use fallback mappings; it should
* platform/TextCodecICU.cpp: (WebCore::TextCodecICU::createICUConverter):
Added a call to ucnv_setFallback(TRUE).
2007-02-26 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
Fix for rdar://problem/5021127
Need to add null check to node -- original Obj-C didn't need
the null check due to the Obj-C null messaging semantics
* editing/Editor.cpp:
(WebCore::Editor::shouldInsertFragment):
2007-02-26 David Hyatt <hyatt@apple.com>
Make text files render using white-space: pre-wrap instead of white-space: pre.
Reviewed by aroben
* loader/TextDocument.cpp:
(WebCore::TextTokenizer::write):
2007-02-26 David Hyatt <hyatt@apple.com>
Back out the change to add fullyClippedContentRect. The layout test
was actually showing more correct results.
* page/Frame.cpp:
(WebCore::Frame::visibleSelectionRect):
(WebCore::Frame::setIsActive):
(WebCore::Frame::markAllMatchesForText):
* platform/ScrollView.h:
* platform/mac/ScrollViewMac.mm:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible):
2007-02-26 David Hyatt <hyatt@apple.com>
Add support for a new property called -webkit-border-fit. This property
has two values: border and lines. The "border" value means the border and
background paint normally at the border box level. The "lines" value indicates
that the border and background should shrink dynamically to snugly hug the
line boxes of normal flow descendants.
Reviewed by darin
fast/borders/border-fit.html
* WebCore.xcodeproj/project.pbxproj:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSPropertyNames.in:
* css/CSSValueKeywords.in:
* css/cssparser.cpp:
(WebCore::CSSParser::parseValue):
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::adjustForBorderFit):
(WebCore::RenderBlock::borderFitAdjust):
* rendering/RenderBlock.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintBoxDecorations):
* rendering/RenderBox.h:
(WebCore::RenderBox::borderFitAdjust):
* rendering/RenderStyle.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
(WebCore::RenderStyle::diff):
* rendering/RenderStyle.h:
(WebCore::):
(WebCore::RenderStyle::borderFit):
(WebCore::RenderStyle::setBorderFit):
(WebCore::RenderStyle::initialBorderFit):
2007-02-26 Adam Roben <aroben@apple.com>
Reviewed by Darin.
Build fix.
* rendering/RenderTreeAsText.cpp: Can't use #ifndef with ENABLE() macro.
2007-02-26 Adele Peterson <adele@apple.com>
Reviewed by Adam.
Fix for <rdar://problem/4990700> Safari always crashes when attempting to edit/view
Yahoo pipes in WebCore::HTMLSelectElement::optionToListIndex
Test: fast/forms/select-out-of-bounds-index.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::setSelectedIndex): If we're about to deselect all options, then set m_lastOnChangeIndex to -1.
(WebCore::HTMLSelectElement::optionToListIndex): Moved listSize to a local variable. Rewrote using a simpler for-loop to prevent out-of-bounds errors.
2007-02-26 Anders Carlsson <acarlsson@apple.com>
Reviewed by Geoff.
<rdar://problem/4816376>
REGRESSION: NetNewsWire 3.0 - Crashes in WebDocumentLoaderMac::attachToFrame() (12674)
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::reload):
Remove call to setPolicyDocumentLoader here, it's set by the ::load function that we end up calling.
2007-02-26 Maciej Stachowiak <mjs@apple.com>
Reviewed by Lars.
- fixed <rdar://problem/5021698> Disable experimental SVG features (12883)
I added an ENABLE_SVG_EXPERIMENTAL_FEATURES define to guard all use of the experimental
features, and used it to guard relevant tag names, elements, JS bindings and renderers.
I also converted all the existing optional feature defines to
ENABLE_FOO instead of FOO_SUPPORT since that is the more standard
way to do it in open source projects and works with the handy new
ENABLE() macro.
* CMakeLists.txt:
* DerivedSources.make:
* Projects/gdk/webcore-gdk.bkl:
* WebCore.pro:
* WebCore.vcproj/WebCore/WebCore.vcproj:
* WebCore.vcproj/WebCore/build-generated-files.sh:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSCustomXPathNSResolver.cpp:
* bindings/js/JSCustomXPathNSResolver.h:
* bindings/js/JSSVGElementWrapperFactory.cpp:
* bindings/js/JSSVGElementWrapperFactory.h:
* bindings/js/JSSVGMatrixCustom.cpp:
* bindings/js/JSSVGPODTypeWrapper.h:
* bindings/js/JSSVGPathSegCustom.cpp:
* bindings/js/JSSVGPathSegListCustom.cpp:
* bindings/js/JSSVGPointListCustom.cpp:
* bindings/js/JSXSLTProcessor.cpp:
* bindings/js/JSXSLTProcessor.h:
* bindings/js/kjs_binding.cpp:
(KJS::setDOMException):
* bindings/js/kjs_css.cpp:
(KJS::toJS):
* bindings/js/kjs_dom.cpp:
(KJS::toJS):
* bindings/js/kjs_html.cpp:
(KJS::HTMLElementFunction::callAsFunction):
* bindings/js/kjs_proxy.cpp:
* bindings/js/kjs_proxy.h:
* bindings/js/kjs_window.cpp:
(KJS::Window::getValueProperty):
* bindings/objc/DOM.mm:
(WebCore::createElementClassMap):
(+[DOMNode _nodeWith:]):
* bindings/objc/DOMCSS.mm:
(+[DOMCSSValue _CSSValueWith:]):
* bindings/objc/DOMCustomXPathNSResolver.h:
* bindings/objc/DOMCustomXPathNSResolver.mm:
* bindings/objc/DOMEvents.mm:
(+[DOMEvent _eventWith:]):
* bindings/objc/DOMInternal.h:
* bindings/objc/DOMSVGPathSegInternal.mm:
* bindings/objc/DOMXPath.mm:
* bindings/objc/ExceptionHandlers.mm:
(WebCore::raiseDOMException):
* bindings/objc/PublicDOMInterfaces.h:
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/CodeGeneratorObjC.pm:
* config.h:
* css/CSSGrammar.y:
* css/CSSStyleDeclaration.cpp:
(WebCore::propertyID):
* css/StyleBase.h:
* css/cssparser.cpp:
(WebCore::CSSParser::parseValue):
* css/cssparser.h:
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::loadDefaultStyle):
(WebCore::CSSStyleSelector::initForStyleResolve):
(WebCore::checkPseudoState):
(WebCore::CSSStyleSelector::adjustRenderStyle):
(WebCore::CSSStyleSelector::applyProperty):
* css/cssstyleselector.h:
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::hasFeature):
(WebCore::DOMImplementation::createDocument):
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::~Document):
(WebCore::Document::createElement):
(WebCore::Document::implicitClose):
(WebCore::Document::recalcStyleSelector):
(WebCore::Document::createEvent):
* dom/Document.h:
* dom/Document.idl:
* dom/Event.cpp:
* dom/Event.h:
* dom/EventTarget.cpp:
* dom/EventTarget.h:
* dom/MappedAttributeEntry.h:
(WebCore::):
* dom/Node.cpp:
(WebCore::Node::createRendererIfNeeded):
(WebCore::Node::shadowAncestorNode):
* dom/Node.h:
* dom/ProcessingInstruction.cpp:
(WebCore::ProcessingInstruction::ProcessingInstruction):
(WebCore::ProcessingInstruction::checkStyleSheet):
(WebCore::ProcessingInstruction::setCSSStyleSheet):
* dom/ProcessingInstruction.h:
* dom/Text.cpp:
(WebCore::Text::createRenderer):
* dom/XMLTokenizer.cpp:
(WebCore::XMLTokenizer::startElementNs):
(WebCore::XMLTokenizer::endElementNs):
(WebCore::XMLTokenizer::processingInstruction):
(WebCore::XMLTokenizer::end):
(WebCore::XMLTokenizer::insertErrorMessageBlock):
* dom/XMLTokenizer.h:
* html/HTMLEmbedElement.cpp:
* html/HTMLEmbedElement.h:
* html/HTMLObjectElement.cpp:
* html/HTMLObjectElement.h:
* ksvg2/css/SVGCSSParser.cpp:
* ksvg2/css/SVGCSSStyleSelector.cpp:
* ksvg2/css/SVGRenderStyle.cpp:
* ksvg2/css/SVGRenderStyle.h:
* ksvg2/css/SVGRenderStyleDefs.cpp:
* ksvg2/css/SVGRenderStyleDefs.h:
* ksvg2/events/JSSVGLazyEventListener.cpp:
* ksvg2/events/JSSVGLazyEventListener.h:
* ksvg2/events/SVGZoomEvent.cpp:
* ksvg2/events/SVGZoomEvent.h:
* ksvg2/misc/KCanvasRenderingStyle.cpp:
* ksvg2/misc/KCanvasRenderingStyle.h:
* ksvg2/misc/PointerEventsHitRules.cpp:
* ksvg2/misc/PointerEventsHitRules.h:
* ksvg2/misc/SVGDocumentExtensions.cpp:
* ksvg2/misc/SVGDocumentExtensions.h:
* ksvg2/misc/SVGImageLoader.cpp:
* ksvg2/misc/SVGImageLoader.h:
* ksvg2/misc/SVGTimer.cpp:
* ksvg2/misc/SVGTimer.h:
* ksvg2/misc/TimeScheduler.cpp:
* ksvg2/misc/TimeScheduler.h:
* ksvg2/scripts/make_names.pl:
* ksvg2/svg/ColorDistance.cpp:
* ksvg2/svg/ColorDistance.h:
* ksvg2/svg/GradientAttributes.h:
* ksvg2/svg/LinearGradientAttributes.h:
* ksvg2/svg/PatternAttributes.h:
* ksvg2/svg/RadialGradientAttributes.h:
* ksvg2/svg/SVGAElement.cpp:
* ksvg2/svg/SVGAElement.h:
* ksvg2/svg/SVGAngle.cpp:
* ksvg2/svg/SVGAngle.h:
* ksvg2/svg/SVGAnimateColorElement.cpp:
* ksvg2/svg/SVGAnimateColorElement.h:
* ksvg2/svg/SVGAnimateElement.cpp:
* ksvg2/svg/SVGAnimateElement.h:
* ksvg2/svg/SVGAnimateElement.idl:
* ksvg2/svg/SVGAnimateMotionElement.cpp:
* ksvg2/svg/SVGAnimateMotionElement.h:
* ksvg2/svg/SVGAnimateTransformElement.cpp:
* ksvg2/svg/SVGAnimateTransformElement.h:
* ksvg2/svg/SVGAnimateTransformElement.idl:
* ksvg2/svg/SVGAnimatedPathData.cpp:
* ksvg2/svg/SVGAnimatedPathData.h:
* ksvg2/svg/SVGAnimatedPoints.cpp:
* ksvg2/svg/SVGAnimatedPoints.h:
* ksvg2/svg/SVGAnimatedTemplate.h:
* ksvg2/svg/SVGAnimationElement.cpp:
* ksvg2/svg/SVGAnimationElement.h:
* ksvg2/svg/SVGCircleElement.cpp:
* ksvg2/svg/SVGCircleElement.h:
* ksvg2/svg/SVGClipPathElement.cpp:
* ksvg2/svg/SVGClipPathElement.h:
* ksvg2/svg/SVGColor.cpp:
* ksvg2/svg/SVGColor.h:
* ksvg2/svg/SVGComponentTransferFunctionElement.cpp:
* ksvg2/svg/SVGComponentTransferFunctionElement.h:
* ksvg2/svg/SVGCursorElement.cpp:
* ksvg2/svg/SVGCursorElement.h:
* ksvg2/svg/SVGDefsElement.cpp:
* ksvg2/svg/SVGDefsElement.h:
* ksvg2/svg/SVGDescElement.cpp:
* ksvg2/svg/SVGDescElement.h:
* ksvg2/svg/SVGDocument.cpp:
* ksvg2/svg/SVGDocument.h:
* ksvg2/svg/SVGElement.cpp:
(WebCore::SVGElement::dispatchEvent):
* ksvg2/svg/SVGElement.h:
* ksvg2/svg/SVGElementInstance.cpp:
* ksvg2/svg/SVGElementInstance.h:
* ksvg2/svg/SVGElementInstance.idl:
* ksvg2/svg/SVGElementInstanceList.cpp:
* ksvg2/svg/SVGElementInstanceList.h:
* ksvg2/svg/SVGElementInstanceList.idl:
* ksvg2/svg/SVGEllipseElement.cpp:
* ksvg2/svg/SVGEllipseElement.h:
* ksvg2/svg/SVGException.h:
* ksvg2/svg/SVGExternalResourcesRequired.cpp:
* ksvg2/svg/SVGExternalResourcesRequired.h:
* ksvg2/svg/SVGFEBlendElement.cpp:
* ksvg2/svg/SVGFEBlendElement.h:
* ksvg2/svg/SVGFEBlendElement.idl:
* ksvg2/svg/SVGFEColorMatrixElement.cpp:
* ksvg2/svg/SVGFEColorMatrixElement.h:
* ksvg2/svg/SVGFEColorMatrixElement.idl:
* ksvg2/svg/SVGFEComponentTransferElement.cpp:
* ksvg2/svg/SVGFEComponentTransferElement.h:
* ksvg2/svg/SVGFEComponentTransferElement.idl:
* ksvg2/svg/SVGFECompositeElement.cpp:
* ksvg2/svg/SVGFECompositeElement.h:
* ksvg2/svg/SVGFECompositeElement.idl:
* ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
* ksvg2/svg/SVGFEDiffuseLightingElement.h:
* ksvg2/svg/SVGFEDiffuseLightingElement.idl:
* ksvg2/svg/SVGFEDisplacementMapElement.cpp:
* ksvg2/svg/SVGFEDisplacementMapElement.h:
* ksvg2/svg/SVGFEDisplacementMapElement.idl:
* ksvg2/svg/SVGFEDistantLightElement.cpp:
* ksvg2/svg/SVGFEDistantLightElement.h:
* ksvg2/svg/SVGFEDistantLightElement.idl:
* ksvg2/svg/SVGFEFloodElement.cpp:
* ksvg2/svg/SVGFEFloodElement.h:
* ksvg2/svg/SVGFEFloodElement.idl:
* ksvg2/svg/SVGFEFuncAElement.cpp:
* ksvg2/svg/SVGFEFuncAElement.h:
* ksvg2/svg/SVGFEFuncAElement.idl:
* ksvg2/svg/SVGFEFuncBElement.cpp:
* ksvg2/svg/SVGFEFuncBElement.h:
* ksvg2/svg/SVGFEFuncBElement.idl:
* ksvg2/svg/SVGFEFuncGElement.cpp:
* ksvg2/svg/SVGFEFuncGElement.h:
* ksvg2/svg/SVGFEFuncGElement.idl:
* ksvg2/svg/SVGFEFuncRElement.cpp:
* ksvg2/svg/SVGFEFuncRElement.h:
* ksvg2/svg/SVGFEFuncRElement.idl:
* ksvg2/svg/SVGFEGaussianBlurElement.cpp:
* ksvg2/svg/SVGFEGaussianBlurElement.h:
* ksvg2/svg/SVGFEGaussianBlurElement.idl:
* ksvg2/svg/SVGFEImageElement.cpp:
* ksvg2/svg/SVGFEImageElement.h:
* ksvg2/svg/SVGFEImageElement.idl:
* ksvg2/svg/SVGFELightElement.cpp:
* ksvg2/svg/SVGFELightElement.h:
* ksvg2/svg/SVGFEMergeElement.cpp:
* ksvg2/svg/SVGFEMergeElement.h:
* ksvg2/svg/SVGFEMergeElement.idl:
* ksvg2/svg/SVGFEMergeNodeElement.cpp:
* ksvg2/svg/SVGFEMergeNodeElement.h:
* ksvg2/svg/SVGFEMergeNodeElement.idl:
* ksvg2/svg/SVGFEOffsetElement.cpp:
* ksvg2/svg/SVGFEOffsetElement.h:
* ksvg2/svg/SVGFEOffsetElement.idl:
* ksvg2/svg/SVGFEPointLightElement.cpp:
* ksvg2/svg/SVGFEPointLightElement.h:
* ksvg2/svg/SVGFEPointLightElement.idl:
* ksvg2/svg/SVGFESpecularLightingElement.cpp:
* ksvg2/svg/SVGFESpecularLightingElement.h:
* ksvg2/svg/SVGFESpecularLightingElement.idl:
* ksvg2/svg/SVGFESpotLightElement.cpp:
* ksvg2/svg/SVGFESpotLightElement.h:
* ksvg2/svg/SVGFESpotLightElement.idl:
* ksvg2/svg/SVGFETileElement.cpp:
* ksvg2/svg/SVGFETileElement.h:
* ksvg2/svg/SVGFETileElement.idl:
* ksvg2/svg/SVGFETurbulenceElement.cpp:
* ksvg2/svg/SVGFETurbulenceElement.h:
* ksvg2/svg/SVGFETurbulenceElement.idl:
* ksvg2/svg/SVGFilterElement.cpp:
* ksvg2/svg/SVGFilterElement.h:
* ksvg2/svg/SVGFilterElement.idl:
* ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp:
* ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
* ksvg2/svg/SVGFitToViewBox.cpp:
* ksvg2/svg/SVGFitToViewBox.h:
* ksvg2/svg/SVGForeignObjectElement.cpp:
* ksvg2/svg/SVGForeignObjectElement.h:
* ksvg2/svg/SVGForeignObjectElement.idl:
* ksvg2/svg/SVGGElement.cpp:
* ksvg2/svg/SVGGElement.h:
* ksvg2/svg/SVGGradientElement.cpp:
* ksvg2/svg/SVGGradientElement.h:
* ksvg2/svg/SVGImageElement.cpp:
* ksvg2/svg/SVGImageElement.h:
* ksvg2/svg/SVGLangSpace.cpp:
* ksvg2/svg/SVGLangSpace.h:
* ksvg2/svg/SVGLength.cpp:
* ksvg2/svg/SVGLength.h:
* ksvg2/svg/SVGLengthList.cpp:
* ksvg2/svg/SVGLengthList.h:
* ksvg2/svg/SVGLineElement.cpp:
* ksvg2/svg/SVGLineElement.h:
* ksvg2/svg/SVGLinearGradientElement.cpp:
* ksvg2/svg/SVGLinearGradientElement.h:
* ksvg2/svg/SVGList.h:
* ksvg2/svg/SVGListTraits.h:
* ksvg2/svg/SVGLocatable.cpp:
(WebCore::SVGLocatable::nearestViewportElement):
(WebCore::SVGLocatable::farthestViewportElement):
* ksvg2/svg/SVGLocatable.h:
* ksvg2/svg/SVGMPathElement.cpp:
* ksvg2/svg/SVGMPathElement.h:
* ksvg2/svg/SVGMarkerElement.cpp:
* ksvg2/svg/SVGMarkerElement.h:
* ksvg2/svg/SVGMaskElement.cpp:
* ksvg2/svg/SVGMaskElement.h:
* ksvg2/svg/SVGMetadataElement.cpp:
* ksvg2/svg/SVGMetadataElement.h:
* ksvg2/svg/SVGNumberList.cpp:
* ksvg2/svg/SVGNumberList.h:
* ksvg2/svg/SVGPaint.cpp:
* ksvg2/svg/SVGPaint.h:
* ksvg2/svg/SVGParserUtilities.cpp:
* ksvg2/svg/SVGParserUtilities.h:
* ksvg2/svg/SVGPathElement.cpp:
* ksvg2/svg/SVGPathElement.h:
* ksvg2/svg/SVGPathSeg.h:
* ksvg2/svg/SVGPathSegArc.cpp:
* ksvg2/svg/SVGPathSegArc.h:
* ksvg2/svg/SVGPathSegClosePath.cpp:
* ksvg2/svg/SVGPathSegClosePath.h:
* ksvg2/svg/SVGPathSegCurvetoCubic.cpp:
* ksvg2/svg/SVGPathSegCurvetoCubic.h:
* ksvg2/svg/SVGPathSegCurvetoCubicSmooth.cpp:
* ksvg2/svg/SVGPathSegCurvetoCubicSmooth.h:
* ksvg2/svg/SVGPathSegCurvetoQuadratic.cpp:
* ksvg2/svg/SVGPathSegCurvetoQuadratic.h:
* ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.cpp:
* ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.h:
* ksvg2/svg/SVGPathSegLineto.cpp:
* ksvg2/svg/SVGPathSegLineto.h:
* ksvg2/svg/SVGPathSegLinetoHorizontal.cpp:
* ksvg2/svg/SVGPathSegLinetoHorizontal.h:
* ksvg2/svg/SVGPathSegLinetoVertical.cpp:
* ksvg2/svg/SVGPathSegLinetoVertical.h:
* ksvg2/svg/SVGPathSegList.cpp:
* ksvg2/svg/SVGPathSegList.h:
* ksvg2/svg/SVGPathSegMoveto.cpp:
* ksvg2/svg/SVGPathSegMoveto.h:
* ksvg2/svg/SVGPatternElement.cpp:
* ksvg2/svg/SVGPatternElement.h:
* ksvg2/svg/SVGPointList.cpp:
* ksvg2/svg/SVGPointList.h:
* ksvg2/svg/SVGPolyElement.cpp:
* ksvg2/svg/SVGPolyElement.h:
* ksvg2/svg/SVGPolygonElement.cpp:
* ksvg2/svg/SVGPolygonElement.h:
* ksvg2/svg/SVGPolylineElement.cpp:
* ksvg2/svg/SVGPolylineElement.h:
* ksvg2/svg/SVGPreserveAspectRatio.cpp:
* ksvg2/svg/SVGPreserveAspectRatio.h:
* ksvg2/svg/SVGRadialGradientElement.cpp:
* ksvg2/svg/SVGRadialGradientElement.h:
* ksvg2/svg/SVGRectElement.cpp:
* ksvg2/svg/SVGRectElement.h:
* ksvg2/svg/SVGRenderingIntent.h:
* ksvg2/svg/SVGSVGElement.cpp:
* ksvg2/svg/SVGSVGElement.h:
* ksvg2/svg/SVGScriptElement.cpp:
* ksvg2/svg/SVGScriptElement.h:
* ksvg2/svg/SVGSetElement.cpp:
* ksvg2/svg/SVGSetElement.h:
* ksvg2/svg/SVGStopElement.cpp:
* ksvg2/svg/SVGStopElement.h:
* ksvg2/svg/SVGStringList.cpp:
* ksvg2/svg/SVGStringList.h:
* ksvg2/svg/SVGStylable.cpp:
* ksvg2/svg/SVGStylable.h:
* ksvg2/svg/SVGStyleElement.cpp:
* ksvg2/svg/SVGStyleElement.h:
* ksvg2/svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::notifyAttributeChange):
* ksvg2/svg/SVGStyledElement.h:
* ksvg2/svg/SVGStyledLocatableElement.cpp:
* ksvg2/svg/SVGStyledLocatableElement.h:
* ksvg2/svg/SVGStyledTransformableElement.cpp:
* ksvg2/svg/SVGStyledTransformableElement.h:
* ksvg2/svg/SVGSwitchElement.cpp:
* ksvg2/svg/SVGSwitchElement.h:
* ksvg2/svg/SVGSymbolElement.cpp:
* ksvg2/svg/SVGSymbolElement.h:
* ksvg2/svg/SVGTRefElement.cpp:
* ksvg2/svg/SVGTRefElement.h:
* ksvg2/svg/SVGTSpanElement.cpp:
* ksvg2/svg/SVGTSpanElement.h:
* ksvg2/svg/SVGTests.cpp:
* ksvg2/svg/SVGTests.h:
* ksvg2/svg/SVGTextContentElement.cpp:
* ksvg2/svg/SVGTextContentElement.h:
* ksvg2/svg/SVGTextElement.cpp:
* ksvg2/svg/SVGTextElement.h:
* ksvg2/svg/SVGTextPositioningElement.cpp:
* ksvg2/svg/SVGTextPositioningElement.h:
* ksvg2/svg/SVGTitleElement.cpp:
* ksvg2/svg/SVGTitleElement.h:
* ksvg2/svg/SVGTransform.cpp:
* ksvg2/svg/SVGTransform.h:
* ksvg2/svg/SVGTransformDistance.cpp:
* ksvg2/svg/SVGTransformDistance.h:
* ksvg2/svg/SVGTransformList.cpp:
* ksvg2/svg/SVGTransformList.h:
* ksvg2/svg/SVGTransformable.cpp:
* ksvg2/svg/SVGTransformable.h:
* ksvg2/svg/SVGURIReference.cpp:
* ksvg2/svg/SVGURIReference.h:
* ksvg2/svg/SVGUnitTypes.h:
* ksvg2/svg/SVGUseElement.cpp:
* ksvg2/svg/SVGUseElement.h:
* ksvg2/svg/SVGUseElement.idl:
* ksvg2/svg/SVGViewElement.cpp:
* ksvg2/svg/SVGViewElement.h:
* ksvg2/svg/SVGZoomAndPan.cpp:
* ksvg2/svg/SVGZoomAndPan.h:
* ksvg2/svg/svgtags.in:
* loader/Cache.cpp:
(WebCore::createResource):
(WebCore::Cache::getStatistics):
* loader/Cache.h:
* loader/CachedImage.cpp:
(WebCore::CachedImage::createImage):
* loader/CachedResource.h:
(WebCore::CachedResource::):
* loader/CachedResourceClient.h:
* loader/CachedXBLDocument.cpp:
* loader/CachedXBLDocument.h:
* loader/CachedXSLStyleSheet.cpp:
* loader/CachedXSLStyleSheet.h:
* loader/DocLoader.cpp:
* loader/DocLoader.h:
* page/DOMWindow.idl:
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::selectCursor):
* page/Frame.cpp:
(WebCore::Frame::Frame):
* page/PageState.cpp:
(WebCore::PageState::PageState):
(WebCore::PageState::restore):
* platform/MimeTypeRegistry.cpp:
(WebCore::initialiseSupportedNonImageMimeTypes):
* platform/graphics/FloatPoint3D.cpp:
* platform/graphics/FloatPoint3D.h:
* platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::renderSubtreeToImage):
* platform/graphics/svg/SVGImage.cpp:
* platform/graphics/svg/SVGImage.h:
* platform/graphics/svg/SVGImageEmptyClients.h:
* platform/graphics/svg/SVGPaintServer.cpp:
* platform/graphics/svg/SVGPaintServer.h:
* platform/graphics/svg/SVGPaintServerGradient.cpp:
* platform/graphics/svg/SVGPaintServerGradient.h:
* platform/graphics/svg/SVGPaintServerLinearGradient.cpp:
* platform/graphics/svg/SVGPaintServerLinearGradient.h:
* platform/graphics/svg/SVGPaintServerPattern.cpp:
* platform/graphics/svg/SVGPaintServerPattern.h:
* platform/graphics/svg/SVGPaintServerRadialGradient.cpp:
* platform/graphics/svg/SVGPaintServerRadialGradient.h:
* platform/graphics/svg/SVGPaintServerSolid.cpp:
* platform/graphics/svg/SVGPaintServerSolid.h:
* platform/graphics/svg/SVGResource.cpp:
* platform/graphics/svg/SVGResource.h:
* platform/graphics/svg/SVGResourceClipper.cpp:
* platform/graphics/svg/SVGResourceClipper.h:
* platform/graphics/svg/SVGResourceFilter.cpp:
* platform/graphics/svg/SVGResourceFilter.h:
* platform/graphics/svg/SVGResourceMarker.cpp:
* platform/graphics/svg/SVGResourceMarker.h:
* platform/graphics/svg/SVGResourceMasker.cpp:
* platform/graphics/svg/SVGResourceMasker.h:
* platform/graphics/svg/cg/CgSupport.cpp:
* platform/graphics/svg/cg/CgSupport.h:
* platform/graphics/svg/cg/RenderPathCg.cpp:
* platform/graphics/svg/cg/SVGPaintServerCg.cpp:
* platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
* platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
* platform/graphics/svg/cg/SVGPaintServerSolidCg.cpp:
* platform/graphics/svg/cg/SVGResourceClipperCg.cpp:
* platform/graphics/svg/cg/SVGResourceFilterCg.mm:
* platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
* platform/graphics/svg/filters/SVGDistantLightSource.h:
* platform/graphics/svg/filters/SVGFEBlend.cpp:
* platform/graphics/svg/filters/SVGFEBlend.h:
* platform/graphics/svg/filters/SVGFEColorMatrix.cpp:
* platform/graphics/svg/filters/SVGFEColorMatrix.h:
* platform/graphics/svg/filters/SVGFEComponentTransfer.cpp:
* platform/graphics/svg/filters/SVGFEComponentTransfer.h:
* platform/graphics/svg/filters/SVGFEComposite.cpp:
* platform/graphics/svg/filters/SVGFEComposite.h:
* platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp:
* platform/graphics/svg/filters/SVGFEConvolveMatrix.h:
* platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp:
* platform/graphics/svg/filters/SVGFEDiffuseLighting.h:
* platform/graphics/svg/filters/SVGFEDisplacementMap.cpp:
* platform/graphics/svg/filters/SVGFEDisplacementMap.h:
* platform/graphics/svg/filters/SVGFEFlood.cpp:
* platform/graphics/svg/filters/SVGFEFlood.h:
* platform/graphics/svg/filters/SVGFEGaussianBlur.cpp:
* platform/graphics/svg/filters/SVGFEGaussianBlur.h:
* platform/graphics/svg/filters/SVGFEImage.cpp:
* platform/graphics/svg/filters/SVGFEImage.h:
* platform/graphics/svg/filters/SVGFEMerge.cpp:
* platform/graphics/svg/filters/SVGFEMerge.h:
* platform/graphics/svg/filters/SVGFEMorphology.cpp:
* platform/graphics/svg/filters/SVGFEMorphology.h:
* platform/graphics/svg/filters/SVGFEOffset.cpp:
* platform/graphics/svg/filters/SVGFEOffset.h:
* platform/graphics/svg/filters/SVGFESpecularLighting.cpp:
* platform/graphics/svg/filters/SVGFESpecularLighting.h:
* platform/graphics/svg/filters/SVGFETile.h:
* platform/graphics/svg/filters/SVGFETurbulence.cpp:
* platform/graphics/svg/filters/SVGFETurbulence.h:
* platform/graphics/svg/filters/SVGFilterEffect.cpp:
* platform/graphics/svg/filters/SVGFilterEffect.h:
* platform/graphics/svg/filters/SVGLightSource.cpp:
* platform/graphics/svg/filters/SVGLightSource.h:
* platform/graphics/svg/filters/SVGPointLightSource.h:
* platform/graphics/svg/filters/SVGSpotLightSource.h:
* platform/graphics/svg/filters/cg/SVGFEBlendCg.mm:
* platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
* platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm:
* platform/graphics/svg/filters/cg/SVGFECompositeCg.mm:
* platform/graphics/svg/filters/cg/SVGFEDiffuseLightingCg.mm:
* platform/graphics/svg/filters/cg/SVGFEDisplacementMapCg.mm:
* platform/graphics/svg/filters/cg/SVGFEFloodCg.mm:
* platform/graphics/svg/filters/cg/SVGFEGaussianBlurCg.mm:
* platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
* platform/graphics/svg/filters/cg/SVGFEHelpersCg.mm:
* platform/graphics/svg/filters/cg/SVGFEImageCg.mm:
* platform/graphics/svg/filters/cg/SVGFEMergeCg.mm:
* platform/graphics/svg/filters/cg/SVGFEOffsetCg.mm:
* platform/graphics/svg/filters/cg/SVGFESpecularLightingCg.mm:
* platform/graphics/svg/filters/cg/SVGFETileCg.mm:
* platform/graphics/svg/filters/cg/SVGFilterEffectCg.mm:
* platform/graphics/svg/qt/SVGPaintServerGradientQt.cpp:
* platform/graphics/svg/qt/SVGPaintServerLinearGradientQt.cpp:
* platform/graphics/svg/qt/SVGPaintServerPatternQt.cpp:
* platform/graphics/svg/qt/SVGPaintServerQt.cpp:
* platform/graphics/svg/qt/SVGPaintServerRadialGradientQt.cpp:
* platform/graphics/svg/qt/SVGPaintServerSolidQt.cpp:
* platform/graphics/svg/qt/SVGResourceClipperQt.cpp:
* platform/graphics/svg/qt/SVGResourceFilterQt.cpp:
* platform/graphics/svg/qt/SVGResourceMaskerQt.cpp:
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::absoluteImageURL):
(WebCore::HitTestResult::absoluteLinkURL):
(WebCore::HitTestResult::isLiveLink):
* rendering/RenderForeignObject.cpp:
* rendering/RenderForeignObject.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::isTransparent):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::containingBlock):
* rendering/RenderObject.h:
* rendering/RenderPath.cpp:
* rendering/RenderPath.h:
* rendering/RenderSVGBlock.cpp:
* rendering/RenderSVGBlock.h:
* rendering/RenderSVGContainer.cpp:
* rendering/RenderSVGContainer.h:
* rendering/RenderSVGGradientStop.cpp:
* rendering/RenderSVGGradientStop.h:
* rendering/RenderSVGHiddenContainer.cpp:
* rendering/RenderSVGHiddenContainer.h:
* rendering/RenderSVGImage.cpp:
* rendering/RenderSVGImage.h:
* rendering/RenderSVGInline.cpp:
* rendering/RenderSVGInline.h:
* rendering/RenderSVGInlineText.cpp:
* rendering/RenderSVGInlineText.h:
* rendering/RenderSVGTSpan.cpp:
* rendering/RenderSVGTSpan.h:
* rendering/RenderSVGText.cpp:
* rendering/RenderSVGText.h:
* rendering/RenderStyle.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::~StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
(WebCore::RenderStyle::RenderStyle):
(WebCore::RenderStyle::inheritFrom):
(WebCore::RenderStyle::operator==):
(WebCore::RenderStyle::inheritedNotEqual):
(WebCore::RenderStyle::diff):
* rendering/RenderStyle.h:
* rendering/RenderText.cpp:
(WebCore::RenderText::setStyle):
(WebCore::RenderText::setTextInternal):
* rendering/RenderTreeAsText.cpp:
(WebCore::write):
(WebCore::externalRepresentation):
* rendering/SVGInlineFlowBox.cpp:
* rendering/SVGInlineFlowBox.h:
* rendering/SVGRenderTreeAsText.cpp:
* rendering/SVGRenderTreeAsText.h:
* rendering/SVGRootInlineBox.cpp:
* rendering/SVGRootInlineBox.h:
* rendering/bidi.cpp:
(WebCore::shouldPreserveNewline):
(WebCore::RenderBlock::findNextLineBreak):
* webcore-base.bkl:
* xml/NativeXPathNSResolver.cpp:
* xml/NativeXPathNSResolver.h:
* xml/XPathEvaluator.cpp:
* xml/XPathEvaluator.h:
* xml/XPathExpression.cpp:
* xml/XPathExpression.h:
* xml/XPathExpressionNode.cpp:
* xml/XPathExpressionNode.h:
* xml/XPathFunctions.cpp:
* xml/XPathFunctions.h:
* xml/XPathGrammar.y:
* xml/XPathNSResolver.cpp:
* xml/XPathNSResolver.h:
* xml/XPathNamespace.cpp:
* xml/XPathNamespace.h:
* xml/XPathParser.cpp:
* xml/XPathParser.h:
* xml/XPathPath.cpp:
* xml/XPathPath.h:
* xml/XPathPredicate.cpp:
* xml/XPathPredicate.h:
* xml/XPathResult.cpp:
* xml/XPathResult.h:
* xml/XPathStep.cpp:
* xml/XPathStep.h:
* xml/XPathUtil.cpp:
* xml/XPathUtil.h:
* xml/XPathValue.cpp:
* xml/XPathValue.h:
* xml/XPathVariableReference.cpp:
* xml/XPathVariableReference.h:
* xml/XSLImportRule.cpp:
* xml/XSLImportRule.h:
* xml/XSLStyleSheet.cpp:
* xml/XSLStyleSheet.h:
* xml/XSLTProcessor.cpp:
* xml/XSLTProcessor.h:
2007-02-25 Mitz Pettel <mitz@webkit.org>
Reviewed by David Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12886
Crash with Scriptalicious javascript library
Test: fast/dynamic/float-withdrawal.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlockChildren): Detect when a child block had
intruding floats in a previous layout, and in that case force it to relayout.
2007-02-25 David Hyatt <hyatt@apple.com>
Revert my change to the default fill color. Just set the color to transparent explicitly when
drawing textarea resizer frames.
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContextState::GraphicsContextState):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintOverflowControls):
2007-02-25 Sam Weinig <sam@webkit.org>
Update forgotten files.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPosition):
2007-02-25 David Hyatt <hyatt@apple.com>
Fix for regression caused by changing the containing block of positioned elements with no positioned ancestor
to be the initial containing block (represented in our tree by the RenderView). Rework RenderView's layout
to have very few special cases. Now it will just relayout its children when the width/height of the
view actually changes. Positioned elements no longer get a special additional layout, since width/height
adjustments are caught by the base class already anyway.
Reviewed by mjs, darin
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
(WebCore::RenderFlexibleBox::layoutVerticalBox):
* rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
(WebCore::RenderView::layout):
* rendering/RenderView.h:
2007-02-25 Maciej Stachowiak <mjs@apple.com>
Not reviewed, build fix.
- fix build breakage
* platform/gdk/ScrollViewGdk.cpp:
(WebCore::ScrollView::fullyClippedContentRect):
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::fullyClippedContentRect):
2007-02-24 Maciej Stachowiak <mjs@apple.com>
Reviewed by Adam.
- fixed layout test failure in fast/overflow/scrollRevealButton
I added a new ScrollView method, fullyClippedContentRect, that vies the content rect
as clipped by all ancestor scroll views, not just this one. Currently it only works
correctly on mac however. visibleContentRect, only accounting for the clipping from
this particular scroll view, is sufficient for most purposes.
* page/Frame.cpp:
(WebCore::Frame::visibleSelectionRect):
(WebCore::Frame::setIsActive):
(WebCore::Frame::markAllMatchesForText):
* platform/ScrollView.h:
* platform/gdk/ScrollViewGdk.cpp:
(WebCore::ScrolView::fullyClippedContentRect):
* platform/mac/ScrollViewMac.mm:
(WebCore::ScrollView::fullyClippedContentRect):
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrolView::fullyClippedContentRect):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible):
2007-02-24 Adam Roben <aroben@apple.com>
Reviewed by Steve.
"Look Up in Dictionary" context menu item should be Mac-only for now,
since it's only implemented on that platform (<rdar://problem/5021468>)
* platform/ContextMenu.cpp:
(WebCore::ContextMenu::populate): Wrap all instances of the dictionary
menu item in #if PLATFORM(MAC).
2007-02-24 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
Fixed <rdar://problem/4987649> leaks in BidiRun::operator new seen while
running WebKit unit tests
In bidi.cpp, some functions allocate BidiRuns and put them in a global data
structure, while others uses the BidiRuns in the global data structure.
The caller is responsible for knowing which functions may allocate runs
and which may use them, and calling deleteBidiRuns() at the appropriate time.
The fix is to add some calls to deleteBidiRuns() where they were missing.
I also added a BidiRun counter because these two leaks were introduced by
our two bidi.cpp experts, so the odds that leaks will creep in again
in the future seem pretty high.
* rendering/bidi.cpp:
(WebCore::RenderBlock::bidiReorderCharacters): Added missing call to
deleteBidiRuns().
(WebCore::BidiRunCounter::~BidiRunCounter):
(WebCore::BidiRun::operator delete):
(WebCore::RenderBlock::layoutInlineChildren): Added missing call to
deleteBidiRuns(). Moved call to deleteBidiRuns() to same scope as call to
bidiReorderLine(), to emphasize that they go together like new/delete.
In theory, the old code was just as good, but I didn't want to rely on
theory.
2007-02-24 David Harrison <harrison@apple.com>
Reviewed by Kevin.
<rdar://problem/4961431> Image with empty string alt tag should be ignored
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject accessibilityIsIgnored]):
Ignore img element that has an alt attribute, but that string is empty.
2007-02-24 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Gdk improvements.
* platform/gdk/FrameGdk.cpp: only scroll on keydown, not both keydown and keyup.
(WebCore::FrameGdk::keyPress):
(WebCore::FrameGdk::handleGdkEvent):
(WebCore::Frame::print):
(WebCore::Frame::issueTransposeCommand):
(WebCore::Frame::respondToChangedSelection):
(WebCore::Frame::cleanupPlatformScriptObjects):
(WebCore::Frame::dragImageForSelection):
* platform/network/gdk/ResourceHandleManager.cpp: don't free memory that
doesn't belong to us.
(WebCore::ResourceHandleManager::downloadTimerCallback):
2007-02-23 Kevin Decker <kdecker@apple.com>
Reviewed by Anders.
Fixed: <rdar://problem/4971226> REGRESSION: Replying to closed HTML mail message does not quote original body (12503)
There were two problems here:
* page/mac/WebCoreFrameBridge.mm:
(+[WebCoreFrameBridge stringWithData:textEncodingName:]): The old code said "if there is no text encoding name than
assume WindowsLatin1 (iso-8859-1) and try to decode that". That's not sufficient because it doesn't handle the fallback
case for unknown encodings. This method will now attempt to decode using WindowsLatin1 for unknown encoding types.
* platform/mac/mac-encodings.txt: Added the missing "macroman" encoding type.
2007-02-23 Mitz Pettel <mitz@webkit.org>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=12856
REGRESSION (r13685): Canceling the suggestion popup does not revert the change
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::doApply): If the fragment to be inserted
is empty, first delete the selection, and only then bail out.
2007-02-23 Anders Carlsson <acarlsson@apple.com>
Reviewed by Adam.
<rdar://problem/5001923>
REGRESSION: Crash when navigating forward from an error page in WebFrameLoaderClient::dispatchDidReceiveContentLength
Fix an error that was introduced in revision r18541. We should check if the provisional document loader
has an unreachable URL, not the actual document loader.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::updateHistoryForCommit):
2007-02-23 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12823
REGRESSION(r16968-16977): unable to prevent selection by cancelling "selectstart" event
Test: fast/events/selectstart-during-autoscroll.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::autoscroll): Invoke the renderer's shouldSelect() --
which dispatches the selection DOM event and gives it a chance to cancel
the selection -- before updating the selection during autoscroll.
2007-02-23 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
Fix for http://bugs.webkit.org/show_bug.cgi?id=12870
It turns out short circuiting DragData::containsURL() was bad
* manual-tests/directory-drop-on-view.html: Added.
* platform/mac/DragDataMac.mm:
(WebCore::DragData::containsURL):
2007-02-23 Maciej Stachowiak <mjs@apple.com>
Reviewed by Mitz.
- 12.5% speedup on BenchJS test 6
Partial fix for http://bugs.webkit.org/show_bug.cgi?id=12866
It turns out that calling documentVisibleRect on an NSScrollView is pretty expensive,
and calling visibleRect even more so. Take measures to call them less often.
* platform/mac/ScrollViewMac.mm:
(WebCore::ScrollView::visibleContentRect): Use documentVisibleRect when possible.
(WebCore::ScrollView::updateContents): Use visibleContentRect to be able to use
documentVisibleRect when possible.
* rendering/RenderView.cpp:
(WebCore::RenderView::repaintViewRectangle): Don't get or intersect with viewRect
if we don't have a parent frame, since the ScrollView will do that anyway. Also,
don't get contentX and contentY separately since they are in the viewRect already.
(WebCore::RenderView::viewRect): Use visibleContentRect instead of getting each
coordinate individually, to avoid calling documentVisibleRect repeatedly.
2007-02-23 Maciej Stachowiak <mjs@apple.com>
Reviewed by Mitz.
- 2% speedup on BenchJS test 6
Partial fix for http://bugs.webkit.org/show_bug.cgi?id=12866
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::cssText): Use format() instead of
number() followed by append of a constant string.
2007-02-22 George Staikos <staikos@kde.org>
Fix the Qt build.
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::ClipboardQt):
2007-02-22 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben, who never sleeps.
To avoid code duplication, move notImplementedGdk() macro to a separate
header file. Remove existing notImplementedGdk() macros and replace
remaining notImplemented() to notImplementedGdk() in gdk code.
* loader/gdk/DocumentLoaderGdk.cpp:
(WebCore::DocumentLoader::getResponseModifiedHeader):
* loader/gdk/FrameLoaderClientGdk.cpp:
(WebCore::FrameLoaderClientGdk::hasWebView):
(WebCore::FrameLoaderClientGdk::hasFrameView):
* page/gdk/ContextMenuClientGdk.cpp:
(WebCore::ContextMenuClientGdk::contextMenuDestroyed):
(WebCore::ContextMenuClientGdk::getCustomMenuFromDefaultItems):
(WebCore::ContextMenuClientGdk::contextMenuItemSelected):
(WebCore::ContextMenuClientGdk::downloadURL):
(WebCore::ContextMenuClientGdk::copyImageToClipboard):
(WebCore::ContextMenuClientGdk::searchWithGoogle):
(WebCore::ContextMenuClientGdk::lookUpInDictionary):
(WebCore::ContextMenuClientGdk::speak):
(WebCore::ContextMenuClientGdk::stopSpeaking):
* page/gdk/EventHandlerGdk.cpp:
* platform/gdk/CursorGdk.cpp:
(WebCore::Cursor::Cursor):
* platform/gdk/EditorClientGdk.cpp:
* platform/gdk/NotImplementedGdk.h: Added.
* platform/gdk/PopupMenuGdk.cpp:
(WebCore::PopupMenu::PopupMenu):
(WebCore::PopupMenu::~PopupMenu):
(WebCore::PopupMenu::show):
(WebCore::PopupMenu::hide):
(WebCore::PopupMenu::updateFromElement):
* platform/gdk/RenderThemeGdk.cpp:
* platform/gdk/ScreenGdk.cpp:
(WebCore::screenDepth):
(WebCore::screenDepthPerComponent):
(WebCore::screenIsMonochrome):
(WebCore::screenRect):
(WebCore::screenAvailableRect):
* platform/gdk/TemporaryLinkStubs.cpp:
* platform/graphics/gdk/ImageGdk.cpp:
(WebCore::Image::drawPattern):
* platform/network/gdk/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::setDefersLoading):
* platform/network/gdk/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::setupPUT):
(WebCore::ResourceHandleManager::setupPOST):
2007-02-22 Ian Eng <ian.eng.webkit@gmail.com>
Reviewed by Maciej.
- Patch for http://bugs.webkit.org/show_bug.cgi?id=12850
Leaks >10k objects
and
- http://bugs.webkit.org/show_bug.cgi?id=12853
add a EventListener leak counter
Problem: RemoveEventListener leaks memory if the listener is not
registered.
Fix: Added Window::findJSEventListener function w/o creating a
JSEventListener; Renamed getJSEventListener to findOrCreateJSEventListener;
As an enhancement, added a leak counter for EventListeners.
Added a test case, LayoutTests/fast/events/remove-event-listener.html.
* WebCore/bindings/js/kjs_dom.cpp:
* WebCore/bindings/js/kjs_window.h:
* WebCore/bindings/js/kjs_window.cpp:
* WebCore/bindings/js/kjs_event.cpp: Add a leak counter.
* WebCore/bindings/js/JSXMLHttpRequest.cpp:
* LayoutTests/fast/events/remove-event-listener.html:
2007-02-22 Anders Carlsson <acarlsson@apple.com>
Reviewed by Geoff.
<rdar://problem/4998203>
REGRESSION: Back-forward list gets messed up when navigating to error pages with back-forward cache turned off
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::load):
Remove call to setPolicyDocumentLoader(), the policy document loader is set immediately after, and setting it before
calling shouldReloadToHandleUnreachableURL causes us to get the wrong URL.
(WebCore::FrameLoader::shouldReloadToHandleUnreachableURL):
Check if the unreachable URL is equal to the document loader's request.
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
Check the provisional document loader's unreachable URL.
2007-02-22 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/5007143>
REGRESSION: WebKit doesn't remember horizontal position of caret when moving forward by line
* editing/SelectionController.cpp:
(WebCore::SelectionController::SelectionController): Initialize
m_xPosForVerticalArrowNavigation.
(WebCore::SelectionController::setSelection): Call the new setter.
(WebCore::SelectionController::modifyMovingRightForward): For line
and paragraph granularities, use the saved xPosForVerticalArrowNavigation
even if the old selection was a range. Use the x position of the
*start*, not the end of the selection if there is no saved
xPosForVerticalArrowNavigation. This matches TextEdit's behavior.
(WebCore::SelectionController::modifyMovingLeftBackward): For line
and paragraph granularities, use the saved xPosForVerticalArrowNavigation
even if the old selection was a range.
(WebCore::SelectionController::modify): Preserve the xPosForVerticalArrowNavigation
for line and paragraph granularities.
(WebCore::SelectionController::xPosForVerticalArrowNavigation): Removed
the recalc bool because it is now always false.
(WebCore::SelectionController::setXPosForVerticalArrowNavigation): Added.
* editing/SelectionController.h: Moved m_xPosForVerticalArrowNavigation
from Frame.
* page/Frame.cpp: Moved m_xPosForVerticalArrowNavigation to SelectionController.
* page/Frame.h: Ditto.
* page/FramePrivate.h: Ditto.
2007-02-22 Beth Dakin <bdakin@apple.com>
Reviewed by Adam. Manual test added.
Fix for http://bugs.webkit.org/show_bug.cgi?id=12399 REGRESSION:
Unable to prevent default context menu from appearing. <rdar://
problem/5017416>
This problem appeared because of two facets of the current context
menu design. First, all context menu events are now considered to
be "swallowed" since we take care of building up the regular
context menu through the defaultEventHandler(). Second, the context
menu controller holds onto it's context menu until a new one is
created. There would be logistical problems changing this since
AppKit relies on the menu being around for as long as it is
visible on the screen and we don't get any notification once the
menu is popped-down.
This patch fixes the problem by giving WebKit a way to clear the
controller's context menu. WebKit now clears the menu before it
propagates a new context menu event through the DOM.
* WebCore.exp:
* manual-tests/DOMContextMenuEvent.html: Added.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::clearContextMenu):
* page/ContextMenuController.h:
2007-02-22 John Sullivan <sullivan@apple.com>
Reviewed by Kevin and Adele
- fixed <rdar://problem/4129417> Need final art for textarea's resize corner
This probably broke some layout pixel tests since the image changed. I'm going to
track those down in a moment (non-trivial since there are a bunch failing for other
reasons).
* Resources/textAreaResizeCorner.tiff:
new art
* Resources/deleteButton.tiff:
* Resources/deleteButtonPressed.tiff:
these got smaller when I ran compress-tiffs on this directory
2007-02-22 Oliver Hunt <oliver@apple.com>
Reviewed by Ada, Lou and Steve.
Moving basic components of ClipboardMac to Clipboard,
last of the basic common code merge will come later (namely setting the
drag element/image).
Tidying up in DragController including a few bad PassRefPtr uses and
removing unnecessary accessors. Also initialise fields properly to
fix <rdar:/problems/5014889>
* dom/Clipboard.cpp:
(WebCore::Clipboard::Clipboard):
New constructor
* dom/Clipboard.h:
(WebCore::Clipboard::isForDragging):
(WebCore::Clipboard::dragLocation):
(WebCore::Clipboard::dragImage):
(WebCore::Clipboard::dragImageElement):
Exposing common data
* page/DragController.cpp:
(WebCore::DragController::DragController):
Initialise m_isHandlingDrag (oops)
(WebCore::documentFragmentFromDragData):
(WebCore::DragController::tryDocumentDrag):
Fixing PassRefPtr misuse
(WebCore::DragController::canProcessDrag):
(WebCore::DragController::startDrag):
(WebCore::DragController::doSystemDrag):
Make sure we're using the correct coordinate space
* page/EventHandler.cpp:
(WebCore::EventHandler::handleDrag):
Reset drag source correctly
* platform/mac/ClipboardMac.h:
* platform/mac/ClipboardMac.mm:
(WebCore::ClipboardMac::ClipboardMac):
update constructor to use new Clipboard constructor
2007-02-22 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Fix for <rdar://problem/5014970> 9A374: Tabs don't work in the message body
Test: fast/events/keypress-insert-tab.html
* page/EventHandler.cpp: (WebCore::EventHandler::defaultTextInputEventHandler):
If the defaultTabEventHandler doesn't handle the event, then go on to the insertText case.
2007-02-22 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin.
<rdar://problem/4948887> REGRESSION: Correct differences in public DOM API that inadvertently changed in Leopard
* bindings/objc/PublicDOMInterfaces.h: Changes return types for two size properties, adds deprecated DOMEventTarget methods.
* bindings/scripts/CodeGeneratorObjC.pm: Fixed public API checking for protocols, adds support for ConvertToString.
* dom/EventTarget.idl: Marks addEventListener and removeEventListener with the OldStyleObjC attribute.
* html/HTMLBaseFontElement.idl: Changes the size property to a DOMString for ObjC only.
* html/HTMLInputElement.idl: Changes the size property to a DOMString for ObjC only.
* html/HTMLOptionsCollection.idl: Changes the length property to be unsigned.
2007-02-22 Adele Peterson <adele@apple.com>
Reviewed by John.
Fix <rdar://problem/5016969> REGRESSION: "Check Spelling As You Type" context menu item is never checked
* platform/ContextMenu.cpp: (WebCore::ContextMenu::checkOrEnableIfNeeded): Set shouldCheck for ContextMenuItemTagCheckSpellingWhileTyping.
2007-02-22 Antti Koivisto <antti@apple.com>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=11447
REGRESSION(NativeListBox): List not scrolled to preselected option
<rdar://problem/4957463>
Initiate scroll when selected <option> is added to <select>.
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::insertedIntoDocument):
* html/HTMLOptionElement.h:
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::notifyOptionSelected):
(WebCore::HTMLSelectElement::updateListBoxSelection):
(WebCore::HTMLSelectElement::scrollToSelection):
* html/HTMLSelectElement.h:
2007-02-22 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Fix sites with fixed positioned backgrounds.
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::setStaticBackground):
2007-02-22 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Properly implement canvas/scrollview's. Get
rid of ScrollViewCanvas and replace it with
a tailor abstractscrollview (now in qwebframe).
Scrolling of pages is finally completely smooth.
* WebCore.pro:
* platform/ScrollView.h:
* platform/qt/ScrollViewCanvasQt.cpp: Removed.
* platform/qt/ScrollViewCanvasQt.h: Removed.
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::ScrollView):
(WebCore::ScrollView::setScrollArea):
(WebCore::ScrollView::updateContents):
(WebCore::ScrollView::resizeContents):
(WebCore::ScrollView::contentsWidth):
(WebCore::ScrollView::contentsHeight):
(WebCore::ScrollView::contentsToWindow):
(WebCore::ScrollView::windowToContents):
(WebCore::ScrollView::addChild):
* platform/qt/WidgetQt.cpp:
(WebCore::WidgetPrivate::canvas):
(WebCore::WidgetPrivate::parentScroll):
(WebCore::WidgetPrivate::setGeometry):
(WebCore::WidgetPrivate::geometry):
(WebCore::Widget::frameGeometry):
(WebCore::Widget::setQWidget):
(WebCore::Widget::setFrameGeometry):
2007-02-21 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Improve notImplemented() macro for gdk. Rename to notImplementedGdk() to
give it a unique name (so that it doesn't clash with notImplemented()
for other platforms).
Make it print a given warning only once, so that frequently called
functions don't clutter the output.
Don't print the warning if DISABLE_NI_WARNING env variable is set.
* loader/gdk/FrameLoaderClientGdk.cpp:
(WebCore::FrameLoaderClientGdk::dispatchDidReceiveAuthenticationChallenge):
(WebCore::FrameLoaderClientGdk::dispatchDidCancelAuthenticationChallenge):
(WebCore::FrameLoaderClientGdk::dispatchWillSendRequest):
(WebCore::FrameLoaderClientGdk::assignIdentifierToInitialRequest):
(WebCore::FrameLoaderClientGdk::createPlugin):
(WebCore::FrameLoaderClientGdk::createFrame):
(WebCore::FrameLoaderClientGdk::redirectDataToPlugin):
(WebCore::FrameLoaderClientGdk::createJavaAppletWidget):
(WebCore::FrameLoaderClientGdk::objectContentType):
(WebCore::FrameLoaderClientGdk::overrideMediaType):
(WebCore::FrameLoaderClientGdk::windowObjectCleared):
(WebCore::FrameLoaderClientGdk::hasWebView):
(WebCore::FrameLoaderClientGdk::hasFrameView):
(WebCore::FrameLoaderClientGdk::frameLoadCompleted):
(WebCore::FrameLoaderClientGdk::saveViewStateToItem):
(WebCore::FrameLoaderClientGdk::restoreViewState):
(WebCore::FrameLoaderClientGdk::privateBrowsingEnabled):
(WebCore::FrameLoaderClientGdk::makeDocumentView):
(WebCore::FrameLoaderClientGdk::makeRepresentation):
(WebCore::FrameLoaderClientGdk::forceLayout):
(WebCore::FrameLoaderClientGdk::forceLayoutForNonHTML):
(WebCore::FrameLoaderClientGdk::setCopiesOnScroll):
(WebCore::FrameLoaderClientGdk::detachedFromParent1):
(WebCore::FrameLoaderClientGdk::detachedFromParent2):
(WebCore::FrameLoaderClientGdk::detachedFromParent3):
(WebCore::FrameLoaderClientGdk::detachedFromParent4):
(WebCore::FrameLoaderClientGdk::loadedFromPageCache):
(WebCore::FrameLoaderClientGdk::dispatchDidHandleOnloadEvents):
(WebCore::FrameLoaderClientGdk::dispatchDidReceiveServerRedirectForProvisionalLoad):
(WebCore::FrameLoaderClientGdk::dispatchDidCancelClientRedirect):
(WebCore::FrameLoaderClientGdk::dispatchWillPerformClientRedirect):
(WebCore::FrameLoaderClientGdk::dispatchDidChangeLocationWithinPage):
(WebCore::FrameLoaderClientGdk::dispatchWillClose):
(WebCore::FrameLoaderClientGdk::dispatchDidReceiveIcon):
(WebCore::FrameLoaderClientGdk::dispatchDidStartProvisionalLoad):
(WebCore::FrameLoaderClientGdk::dispatchDidReceiveTitle):
(WebCore::FrameLoaderClientGdk::dispatchDidCommitLoad):
(WebCore::FrameLoaderClientGdk::dispatchDidFinishDocumentLoad):
(WebCore::FrameLoaderClientGdk::dispatchDidFirstLayout):
(WebCore::FrameLoaderClientGdk::dispatchShow):
(WebCore::FrameLoaderClientGdk::cancelPolicyCheck):
(WebCore::FrameLoaderClientGdk::dispatchDidLoadMainResource):
(WebCore::FrameLoaderClientGdk::revertToProvisionalState):
(WebCore::FrameLoaderClientGdk::clearUnarchivingState):
(WebCore::FrameLoaderClientGdk::willChangeTitle):
(WebCore::FrameLoaderClientGdk::finishedLoading):
(WebCore::FrameLoaderClientGdk::finalSetupForReplace):
(WebCore::FrameLoaderClientGdk::setDefersLoading):
(WebCore::FrameLoaderClientGdk::isArchiveLoadPending):
(WebCore::FrameLoaderClientGdk::cancelPendingArchiveLoad):
(WebCore::FrameLoaderClientGdk::clearArchivedResources):
(WebCore::FrameLoaderClientGdk::canHandleRequest):
(WebCore::FrameLoaderClientGdk::canShowMIMEType):
(WebCore::FrameLoaderClientGdk::representationExistsForURLScheme):
(WebCore::FrameLoaderClientGdk::generatedMIMETypeForURLScheme):
(WebCore::FrameLoaderClientGdk::provisionalLoadStarted):
(WebCore::FrameLoaderClientGdk::didFinishLoad):
(WebCore::FrameLoaderClientGdk::prepareForDataSourceReplacement):
(WebCore::FrameLoaderClientGdk::setTitle):
(WebCore::FrameLoaderClientGdk::setDocumentViewFromPageCache):
(WebCore::FrameLoaderClientGdk::dispatchDidReceiveContentLength):
(WebCore::FrameLoaderClientGdk::dispatchDidFinishLoading):
(WebCore::FrameLoaderClientGdk::dispatchDidFailLoading):
(WebCore::FrameLoaderClientGdk::dispatchDidLoadResourceFromMemoryCache):
(WebCore::FrameLoaderClientGdk::dispatchDidFailProvisionalLoad):
(WebCore::FrameLoaderClientGdk::dispatchDidFailLoad):
(WebCore::FrameLoaderClientGdk::download):
(WebCore::FrameLoaderClientGdk::cancelledError):
(WebCore::FrameLoaderClientGdk::cannotShowURLError):
(WebCore::FrameLoaderClientGdk::interruptForPolicyChangeError):
(WebCore::FrameLoaderClientGdk::cannotShowMIMETypeError):
(WebCore::FrameLoaderClientGdk::fileDoesNotExistError):
(WebCore::FrameLoaderClientGdk::shouldFallBack):
(WebCore::FrameLoaderClientGdk::willUseArchive):
(WebCore::FrameLoaderClientGdk::saveDocumentViewToPageCache):
(WebCore::FrameLoaderClientGdk::canCachePage):
(WebCore::FrameLoaderClientGdk::dispatchCreatePage):
(WebCore::FrameLoaderClientGdk::dispatchUnableToImplementPolicy):
(WebCore::FrameLoaderClientGdk::setMainDocumentError):
(WebCore::FrameLoaderClientGdk::startDownload):
(WebCore::FrameLoaderClientGdk::updateGlobalHistoryForStandardLoad):
(WebCore::FrameLoaderClientGdk::updateGlobalHistoryForReload):
(WebCore::FrameLoaderClientGdk::shouldGoToHistoryItem):
* page/gdk/EventHandlerGdk.cpp:
(WebCore::EventHandler::passMouseDownEventToWidget):
(WebCore::EventHandler::eventActivatedView):
(WebCore::EventHandler::passSubframeEventToSubframe):
(WebCore::EventHandler::passWheelEventToWidget):
(WebCore::EventHandler::createDraggingClipboard):
* platform/gdk/EditorClientGdk.cpp:
(WebCore::EditorClientGdk::shouldDeleteRange):
(WebCore::EditorClientGdk::isContinuousSpellCheckingEnabled):
(WebCore::EditorClientGdk::isGrammarCheckingEnabled):
(WebCore::EditorClientGdk::spellCheckerDocumentTag):
(WebCore::EditorClientGdk::shouldBeginEditing):
(WebCore::EditorClientGdk::shouldEndEditing):
(WebCore::EditorClientGdk::shouldInsertText):
(WebCore::EditorClientGdk::shouldChangeSelectedRange):
(WebCore::EditorClientGdk::shouldApplyStyle):
(WebCore::EditorClientGdk::didBeginEditing):
(WebCore::EditorClientGdk::respondToChangedContents):
(WebCore::EditorClientGdk::didEndEditing):
(WebCore::EditorClientGdk::didWriteSelectionToPasteboard):
(WebCore::EditorClientGdk::didSetSelectionTypesForPasteboard):
(WebCore::EditorClientGdk::selectWordBeforeMenuEvent):
(WebCore::EditorClientGdk::isEditable):
(WebCore::EditorClientGdk::registerCommandForUndo):
(WebCore::EditorClientGdk::registerCommandForRedo):
(WebCore::EditorClientGdk::clearUndoRedoOperations):
(WebCore::EditorClientGdk::canUndo):
(WebCore::EditorClientGdk::canRedo):
(WebCore::EditorClientGdk::undo):
(WebCore::EditorClientGdk::redo):
(WebCore::EditorClientGdk::shouldInsertNode):
(WebCore::EditorClientGdk::pageDestroyed):
(WebCore::EditorClientGdk::smartInsertDeleteEnabled):
(WebCore::EditorClientGdk::toggleContinuousSpellChecking):
(WebCore::EditorClientGdk::textFieldDidBeginEditing):
(WebCore::EditorClientGdk::textFieldDidEndEditing):
(WebCore::EditorClientGdk::textDidChangeInTextField):
(WebCore::EditorClientGdk::doTextFieldCommandFromEvent):
(WebCore::EditorClientGdk::textWillBeDeletedInTextField):
(WebCore::EditorClientGdk::textDidChangeInTextArea):
* platform/gdk/RenderThemeGdk.cpp:
(WebCore::RenderThemeGdk::setCheckboxSize):
(WebCore::RenderThemeGdk::setRadioSize):
(WebCore::RenderThemeGdk::adjustTextFieldStyle):
* platform/gdk/TemporaryLinkStubs.cpp:
(FrameView::updateBorder):
(Widget::setEnabled):
(Widget::isEnabled):
(Widget::focusPolicy):
(Widget::enableFlushDrawing):
(Widget::disableFlushDrawing):
(Widget::lockDrawingFocus):
(Widget::unlockDrawingFocus):
(Widget::removeFromParent):
(Widget::paint):
(Widget::setIsSelected):
(Widget::invalidate):
(Widget::invalidateRect):
(PlatformMouseEvent::PlatformMouseEvent):
(WebCore::findNextSentenceFromIndex):
(WebCore::findSentenceBoundary):
(WebCore::findNextWordFromIndex):
(ChromeClientGdk::chromeDestroyed):
(ChromeClientGdk::windowRect):
(ChromeClientGdk::setWindowRect):
(ChromeClientGdk::pageRect):
(ChromeClientGdk::scaleFactor):
(ChromeClientGdk::focus):
(ChromeClientGdk::unfocus):
(ChromeClientGdk::createWindow):
(ChromeClientGdk::createModalDialog):
(ChromeClientGdk::show):
(ChromeClientGdk::canRunModal):
(ChromeClientGdk::runModal):
(ChromeClientGdk::setToolbarsVisible):
(ChromeClientGdk::toolbarsVisible):
(ChromeClientGdk::setStatusbarVisible):
(ChromeClientGdk::statusbarVisible):
(ChromeClientGdk::setScrollbarsVisible):
(ChromeClientGdk::scrollbarsVisible):
(ChromeClientGdk::setMenubarVisible):
(ChromeClientGdk::menubarVisible):
(ChromeClientGdk::setResizable):
(ChromeClientGdk::closeWindowSoon):
(ChromeClientGdk::canTakeFocus):
(ChromeClientGdk::takeFocus):
(ChromeClientGdk::canRunBeforeUnloadConfirmPanel):
(ChromeClientGdk::addMessageToConsole):
(ChromeClientGdk::runBeforeUnloadConfirmPanel):
(ChromeClientGdk::runJavaScriptAlert):
(ChromeClientGdk::runJavaScriptConfirm):
(ChromeClientGdk::runJavaScriptPrompt):
(ChromeClientGdk::setStatusbarText):
(ChromeClientGdk::shouldInterruptJavaScript):
(ChromeClientGdk::tabsToLinks):
(ChromeClientGdk::windowResizerRect):
(ChromeClientGdk::addToDirtyRegion):
(ChromeClientGdk::scrollBackingStore):
(ChromeClientGdk::updateBackingStore):
(PlugInInfoStore::createPluginInfoForPluginAtIndex):
(PlugInInfoStore::pluginCount):
(WebCore::PlugInInfoStore::supportsMIMEType):
(WebCore::refreshPlugins):
(SearchPopupMenu::saveRecentSearches):
(SearchPopupMenu::loadRecentSearches):
(SearchPopupMenu::SearchPopupMenu):
(PlatformScrollbar::PlatformScrollbar):
(PlatformScrollbar::~PlatformScrollbar):
(PlatformScrollbar::setEnabled):
(PlatformScrollbar::paint):
(PlatformScrollbar::updateThumbPosition):
(PlatformScrollbar::updateThumbProportion):
(PlatformScrollbar::setRect):
(FileChooser::FileChooser):
(FileChooser::~FileChooser):
(FileChooser::openFileChooser):
(FileChooser::basenameForWidth):
(ResourceHandle::willLoadFromCache):
(ResourceHandle::loadsBlocked):
(ResourceHandle::loadResourceSynchronously):
(Icon::Icon):
(Icon::~Icon):
(Icon::newIconForFile):
(Icon::paint):
(Font::drawComplexText):
(Font::floatWidthForComplexText):
(Font::offsetForPositionForComplexText):
(PageCache::close):
(Editor::ignoreSpelling):
(Editor::learnSpelling):
(Editor::isSelectionUngrammatical):
(Editor::isSelectionMisspelled):
(Editor::guessesForMisspelledSelection):
(Editor::guessesForUngrammaticalSelection):
(Editor::markMisspellingsAfterTypingToPosition):
(Editor::newGeneralClipboard):
(Pasteboard::generalPasteboard):
(Pasteboard::writeSelection):
(Pasteboard::writeURL):
(Pasteboard::writeImage):
(Pasteboard::clear):
(Pasteboard::canSmartReplace):
(Pasteboard::documentFragment):
(Pasteboard::plainText):
(Pasteboard::Pasteboard):
(Pasteboard::~Pasteboard):
(ContextMenu::ContextMenu):
(ContextMenu::~ContextMenu):
(ContextMenu::appendItem):
(ContextMenuItem::ContextMenuItem):
(ContextMenuItem::~ContextMenuItem):
(ContextMenuItem::releasePlatformDescription):
(ContextMenuItem::type):
(ContextMenuItem::setType):
(ContextMenuItem::action):
(ContextMenuItem::setAction):
(ContextMenuItem::title):
(ContextMenuItem::setTitle):
(ContextMenuItem::platformSubMenu):
(ContextMenuItem::setSubMenu):
(ContextMenuItem::setChecked):
(ContextMenuItem::setEnabled):
(WebCore::supportedKeySizes):
(WebCore::systemBeep):
(WebCore::userIdleTime):
2007-02-21 Antti Koivisto <antti@apple.com>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12820
REGRESSION (r19706): Caret not painted after popup, failing editing/pasteboard/4641033
Yet another attempt to figure out exactly who should paint the caret.
* editing/SelectionController.cpp:
(WebCore::SelectionController::isInsideNode):
* editing/SelectionController.h:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintCaret):
2007-02-21 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12818
REGRESSION (r19148): shacknews.com does not render completely
Test: fast/dynamic/staticY-marking-parents-regression.html
Changed calls to setChildNeedsLayout(true) during layout to
setChildNeedsLayout(true, false). Prior to r19148, the default behavior
of marking containers did not matter because the caller was the container
and was already marked, but r19148 added marking of the parent of
objects with static Y, which can be different from the caller and not
necessarily marked already.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::collapseMargins):
(WebCore::RenderBlock::clearFloatsIfNeeded):
(WebCore::RenderBlock::layoutBlockChildren):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::setStaticY):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutVerticalBox):
2007-02-21 Brady Eidson <beidson@apple.com>
Reviewed by Dave Harrison
<rdar://problem/5014313> - Crash in FrameLoader::restoreScrollPositionAndViewState()
after regaining network connection
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::restoreScrollPositionAndViewState): Leave an assertion for debug
build exploration, but gracefully handle the release build case
2007-02-21 Timothy Hatcher <timothy@apple.com>
Rubber-stamped by Darin.
* bindings/objc/PublicDOMInterfaces.h: Add missing classes that are really public.
Also adds the deprecated selector for getComputedStyle: on DOMDocument.
2007-02-21 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/5012665>
Removing indent from list moves the caret to the line below
Selection preservation during indent, outdent and list
operations uses rangeFromLocationAndLength. Ranges returned
by rangeFromLocationAndLength were incorrect for locations
just before the line breaks that are emitted after blocks.
This is because TextIterator emitted bad ranges for these line
breaks (ranges that started and ended *after* the block).
The fix corrects the start but not the end. This is acceptible
because there is code in rangeFromLocationAndLength that corrects
the ends of runs using the start of the run and VisiblePosition
creation.
* editing/TextIterator.cpp:
(WebCore::TextIterator::exitNode): Emit a position *inside*
the block, after its contents.
2007-02-21 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Fix for <rdar://problem/4999030> Indexing into select element to get to items in the options collection is broken
Test: fast/forms/select-index-setter.html
Added indexSetter for HTMLSelectElement.
* WebCore.xcodeproj/project.pbxproj: Added JSHTMLSelectElementCustom.h
* bindings/js/JSHTMLOptionsCollectionCustom.cpp: (WebCore::JSHTMLOptionsCollection::indexSetter):
Moved code to selectIndexSetter so it can be shared between these classes.
* bindings/js/JSHTMLSelectElementCustom.cpp:
(WebCore::selectIndexSetter): Added. Moved from JSHTMLOptionsCollection::indexSetter.
(WebCore::JSHTMLSelectElement::indexSetter): Calls selectIndexSetter.
* bindings/js/JSHTMLSelectElementCustom.h: Added.
* html/HTMLSelectElement.idl: Added HasCustomIndexSetter keyword.
* bindings/scripts/CodeGeneratorJS.pm: When generating "put" methods, if the propertyName is a number, call the indexSetter first,
and then call the version of lookupPut that will also try to use the parent's lookup table. This matches the order of our
old code, before we autogenerated the JSHTMLSelectElement class.
2007-02-21 George Staikos <staikos@kde.org>
Reviewed by Zack.
Add files to the build.
* WebCore.pro:
2007-02-21 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Implementing popups for the Qt platform.
* WebCore.pro:
* platform/PopupMenu.h:
* platform/Widget.h:
* platform/qt/PopupMenuQt.cpp:
(WebCore::PopupMenu::PopupMenu):
(WebCore::PopupMenu::clear):
(WebCore::PopupMenu::populate):
(WebCore::PopupMenu::show):
(WebCore::PopupMenu::hide):
* platform/qt/QWebPopup.cpp: Added.
(WebCore::QWebPopup::QWebPopup):
(WebCore::QWebPopup::exec):
(WebCore::QWebPopup::hideEvent):
(WebCore::QWebPopup::activeChanged):
* platform/qt/QWebPopup.h: Added.
* platform/qt/WidgetQt.cpp:
(WebCore::Widget::canvas):
2007-02-21 George Staikos <staikos@kde.org>
Reviewed by Zack.
Remove unneeded hack now.
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::setCheckboxSize):
2007-02-21 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Fix rendering of lineedits and remove the spurious
padding on push-buttons.
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::baselinePosition):
(WebCore::RenderThemeQt::adjustTextFieldStyle):
(WebCore::RenderThemeQt::sizeForFont):
(WebCore::RenderThemeQt::setButtonPadding):
2007-02-21 Zack Rusin <zrusin@trolltech.com>
Fix compilation.
* platform/qt/PasteboardQt.cpp:
(WebCore::Pasteboard::writeURL):
(WebCore::Pasteboard::writeImage):
2007-02-20 Adam Roben <aroben@apple.com>
Preemptive build fix.
* platform/mac/FontCacheMac.mm: Remove unused (and non-existent) header.
2007-02-20 Adam Roben <aroben@apple.com>
Fix the build the right way.
* platform/StringTruncator.cpp:
(WebCore::truncateString): Keep all widths as floats.
2007-02-20 Beth Dakin <bdakin@apple.com>
Reviewed by Maciej.
Implement writeImage() on Pasteboard so that the context menus can
call into the editor for the "Copy image" command instead of
calling across the clients.
* WebCore.exp:
* WebCore.xcodeproj/project.pbxproj:
* editing/Editor.cpp:
(WebCore::Editor::copyImage): Call into the Pasteboard.
* editing/Editor.h:
* loader/mac/LoaderNSURLExtras.h: A new NSURL extra needed inside
WebCore.
* loader/mac/LoaderNSURLExtras.m: Made this file Objective-C++
(from Objective-C) since the call into the MIMETypeRegistry will
return a Vector.
(urlByRemovingComponent): Cast to build as Obj-C++
(urlWithDataRelativeToURL): Same.
(vectorContainsString): Helper.
(suggestedFilenameWithMIMEType): New function.
* page/ContextMenuClient.h: Remove copyImageToClipboard()
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected): Call
into the editor instead of the client.
* page/mac/WebCoreViewFactory.h: New localized String.
* platform/LocalizedStrings.h: Same.
* platform/MimeTypeRegistry.h: Expose two additional functions for
MIMEType information from WebCore System Interface.
* platform/Pasteboard.h:
* platform/SharedBuffer.h: Make platformData() and platformDataSize
() public since they are needed to write the image to the
pasteboard.
* platform/mac/LocalizedStringsMac.mm: New localized string.
(WebCore::copyImageUnknownFileLabel):
* platform/mac/MimeTypeRegistryMac.mm:
(WebCore::MimeTypeRegistry::getExtensionsForMIMEType):
(WebCore::MimeTypeRegistry::getPreferredExtensionForMIMEType):
* platform/mac/PasteboardMac.mm:
(WebCore::writableTypesForImage):
(WebCore::Pasteboard::writeURL): Write the correct types if the url
is for an image.
(WebCore::fileWrapperForImage):
(WebCore::Pasteboard::writeFileWrapperAsRTFDAttachment):
(WebCore::Pasteboard::writeImage):
* platform/mac/WebCoreNSStringExtras.h: Added. Some the the
NSStringExtras that were in WebKit are now needed by WebCore. To
avoid having two copies of these functions, I just moved the
implementations to WebCore. The WebKit functions just call into
WebCore.
* platform/mac/WebCoreNSStringExtras.mm: Added.
(hasCaseInsensitiveSuffix):
(hasCaseInsensitiveSubstring):
(filenameByFixingIllegalCharacters):
* platform/mac/WebCoreSystemInterface.h:
wkGetPreferredExtensionForMIMEType and wkGetExtensionsForMIMEType
are now needed in WebCore as well as WebKit.
* platform/mac/WebCoreSystemInterface.mm:
2007-02-20 Adam Roben <aroben@apple.com>
Build fix.
* platform/StringTruncator.cpp:
(WebCore::truncateString): Added explicit casts.
2007-02-20 Adam Roben <aroben@apple.com>
Reviewed by Darin and Anders.
Fix <rdar://problem/4736215> Make WebCoreStringTruncator use WebCore types
* WebCore.exp: Updated symbols.
* WebCore.xcodeproj/project.pbxproj: Updated file names.
* bridge/mac/WebCoreStringTruncator.h: Removed.
* bridge/mac/WebCoreStringTruncator.mm: Removed.
* platform/StringTruncator.cpp: Added. Moved from bridge/mac/WebCoreStringTruncator.mm.
(WebCore::textBreakAtOrPreceding): Added.
(WebCore::boundedTextBreakFollowing): Added.
(WebCore::centerTruncateToBuffer):
(WebCore::rightTruncateToBuffer):
(WebCore::stringWidth): Now takes a const Font& instead of a Font*.
(WebCore::truncateString):
(WebCore::StringTruncator::centerTruncate):
(WebCore::StringTruncator::rightTruncate):
(WebCore::StringTruncator::width):
* platform/StringTruncator.h: Added.
* platform/TextBreakIterator.h: Added isTextBreak declaration.
* platform/TextBreakIteratorICU.cpp:
(WebCore::isTextBreak): Implemented.
* platform/mac/FileChooserMac.mm:
(WebCore::FileChooser::basenameForWidth): Updated for changes to WebCoreStringTruncator.
* platform/qt/TextBreakIteratorQt.cpp:
(WebCore::isTextBreak): Stubbed out.
2007-02-20 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/5006779>
REGRESSION: Paste and Match Style of quoted text onto empty line yields quoted text
We decided to change the copy/paste behavior in both
the Paste and the Paste and Match Style cases.
* editing/markup.cpp:
(WebCore::createMarkup): Don't add mail blockquote wrappers
unless the user selected one or more paragraphs.
2007-02-20 Timothy Hatcher <timothy@apple.com>
Reviewed by Mark Rowe.
<rdar://problem/4912899> WebCore project ObjC @property cleanup
* bindings/objc/DOMObject.h: Add the new style @property
* bindings/objc/PublicDOMInterfaces.h: Update to the new style @property
* bindings/scripts/CodeGeneratorObjC.pm: Export both new and old style @properties
2007-02-20 Timothy Hatcher <timothy@apple.com>
Reviewed by Sam Weinig.
<rdar://problem/5007248> need to export symbols for DOM exception constants
* WebCore.exp: Adds DOMEventException, DOMException, DOMRangeException, DOMXPathException
2007-02-20 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin.
<rdar://problem/4900579> WebKit -finalize methods are not thread-safe; design change needed
Call WebCoreObjCFinalizeOnMainThread from the initialize method of all the classes
that have a finalizer that needs called on the main thread.
* WebCore.exp:
* WebCore.xcodeproj/project.pbxproj:
* bindings/objc/WebScriptObject.mm:
(+[WebScriptObject initialize]):
* bridge/mac/WebCoreScriptDebugger.mm:
(+[WebCoreScriptDebugger initialize]):
* platform/mac/SharedBufferMac.mm:
(+[SharedBufferData initialize]):
* platform/mac/WebCoreObjCExtras.c: Added.
(WebCoreObjCFinalizeOnMainThread):
* platform/mac/WebCoreObjCExtras.h: Added.
2007-02-20 Geoffrey Garen <ggaren@apple.com>
Not not reviewed by Mitz Pettel.
Fixed http://bugs.webkit.org/show_bug.cgi?id=12827 | <rdar://problem/5006671>
REGRESSION: -[DOMCSSStyleDeclaration setValue:forKey:] doesn't have an
immediate effect
Let's just pretend this never happened.
I attempted a layout test but I couldn't get the old code to fail because
there's no obvious way to isolate the ObjC bindings in a test that's
controlled by JS.
* bindings/objc/WebScriptObject.mm:
(_didExecute):
2007-02-20 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Maciej S.
Gdk build fixes for recent refactorings.
* Projects/gdk/webcore-gdk.bkl:
* WebCoreSources.bkl:
* page/gdk/DragControllerGdk.cpp:
(WebCore::DragController::dragOperation):
(WebCore::DragController::maxDragImageSize):
* page/gdk/EventHandlerGdk.cpp:
(WebCore::EventHandler::createDraggingClipboard):
* platform/DragImage.h:
* platform/gdk/ChromeClientGdk.h:
* platform/gdk/CursorGdk.cpp:
(WebCore::verticalTextCursor):
(WebCore::cellCursor):
(WebCore::contextMenuCursor):
(WebCore::noDropCursor):
(WebCore::copyCursor):
(WebCore::progressCursor):
(WebCore::aliasCursor):
(WebCore::noneCursor):
(WebCore::notAllowedCursor):
* platform/gdk/EditorClientGdk.cpp:
(WebCore::EditorClientGdk::shouldChangeSelectedRange):
(WebCore::EditorClientGdk::isEditable):
(WebCore::EditorClientGdk::textFieldDidBeginEditing):
(WebCore::EditorClientGdk::textFieldDidEndEditing):
(WebCore::EditorClientGdk::textDidChangeInTextField):
(WebCore::EditorClientGdk::doTextFieldCommandFromEvent):
(WebCore::EditorClientGdk::textWillBeDeletedInTextField):
(WebCore::EditorClientGdk::textDidChangeInTextArea):
* platform/gdk/EditorClientGdk.h:
* platform/gdk/FrameGdk.cpp:
(WebCore::Frame::print):
(WebCore::Frame::issueTransposeCommand):
(WebCore::Frame::respondToChangedSelection):
(WebCore::Frame::cleanupPlatformScriptObjects):
(WebCore::Frame::isCharacterSmartReplaceExempt):
(WebCore::Frame::dragImageForSelection):
* platform/gdk/FrameGdk.h:
* platform/gdk/MimeTypeRegistryGdk.cpp: Added.
* platform/gdk/TemporaryLinkStubs.cpp:
(ChromeClientGdk::tabsToLinks):
(ChromeClientGdk::windowResizerRect):
(ChromeClientGdk::addToDirtyRegion):
(ChromeClientGdk::scrollBackingStore):
(ChromeClientGdk::updateBackingStore):
* webcore-base.bkl:
2007-02-20 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Darin.
Allow over-writting Product, ProductSub, Vendor and VendorSub
js properties via #define WEBCORE_NAVIGATOR_*
* bindings/js/kjs_navigator.cpp:
(KJS::Navigator::getValueProperty):
2007-02-20 Darin Adler <darin@apple.com>
Reviewed by Anders.
- prepare to fix some "stop loading" bugs by moving state from the
FrameLoader class to the DocumentLoader class
* WebCore.exp: Update since cancelMainResourceLoad is now on the document loader.
* html/HTMLDocument.h:
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::HTMLDocument): Removed unused bodyElement and htmlElement
data members.
(WebCore::HTMLDocument::lastModified): Call getResponseModifiedHeader directly on
the document loader.
* loader/DocumentLoader.h: Moved m_mainResourceLoader, m_subresourceLoaders, and
m_plugInStreamLoaders here.
* loader/DocumentLoader.cpp:
(WebCore::cancelAll): Moved here from FrameLoader.
(WebCore::setAllDefersLoading): Ditto.
(WebCore::DocumentLoader::mainResourceData): Moved the body of FrameLoader's
mainResourceData function here.
(WebCore::DocumentLoader::stopLoading): Replaced calls to hasMainResourceLoader
and cancelMainResourceLoad with code that works directly on m_mainResourceLoader.
Call the stop functions moved from FrameLoader here on ourselves.
(WebCore::DocumentLoader::setupForReplaceByMIMEType): Ditto.
(WebCore::DocumentLoader::setPrimaryLoadComplete): Moved the code to store the
main resource data here; it doesn't require separate functions.
(WebCore::DocumentLoader::isLoadingInAPISense): Removed call to isLoadingSubresources
and instead just check if the m_subresourceLoaders set is empty.
(WebCore::DocumentLoader::setDefersLoading): Moved code here from FrameLoader.
(WebCore::DocumentLoader::stopLoadingPlugIns): Ditto.
(WebCore::DocumentLoader::stopLoadingSubresources): Ditto.
(WebCore::DocumentLoader::addSubresourceLoader): Ditto.
(WebCore::DocumentLoader::removeSubresourceLoader): Ditto.
(WebCore::DocumentLoader::addPlugInStreamLoader): Ditto.
(WebCore::DocumentLoader::removePlugInStreamLoader): Ditto.
(WebCore::DocumentLoader::isLoadingSubresources): Ditto.
(WebCore::DocumentLoader::isLoadingPlugIns): Ditto.
(WebCore::DocumentLoader::startLoadingMainResource): Ditto.
(WebCore::DocumentLoader::cancelMainResourceLoad): Ditto.
* loader/FrameLoader.h: Removed stopLoadingPlugIns, stopLoadingSubresources,
cancelMainResourceLoad, hasMainResourceLoader, isLoadingSubresources,
mainResourceData, releaseMainResourceLoader, lastModified, startLoadingMainResource,
isLoadingPlugIns, m_mainResourceLoader, m_subresourceLoaders, m_plugInStreamLoaders,
m_responseRefreshHeader, and m_responseModifiedHeader.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::setDefersLoading): Call setDefersLoading on all the document
loaders.
(WebCore::FrameLoader::stopLoading): Get rid of code to set m_responseRefreshHeader
and m_responseModifiedHeader.
(WebCore::FrameLoader::receivedFirstData): Call httpHeaderField on the response
here to get the Refresh, instead of storing it in a data member.
(WebCore::FrameLoader::addPlugInStreamLoader): Change to just call this on the
document loader.
(WebCore::FrameLoader::removePlugInStreamLoader): Ditto.
(WebCore::FrameLoader::isLoading): Change to call isLoadingSubresources and
isLoadingPlugIns on the document loader.
(WebCore::FrameLoader::addSubresourceLoader): Change to just call this on the
document loader.
(WebCore::FrameLoader::removeSubresourceLoader): Ditto.
(WebCore::FrameLoader::commitProvisionalLoad): Call stopLoadingSubresources and
stopLoadingPlugIns on the document loader. Removed code to set
m_responseModifiedHeader.
(WebCore::FrameLoader::startLoading): Call isLoadingMainResource and
startLoadingMainResource on the document loader.
* loader/ImageDocument.cpp: (WebCore::ImageTokenizer::finish): Call
mainResourceData() on the document loader instead of the frame loader.
- other changes
* loader/DocLoader.cpp:
(WebCore::DocLoader::checkCacheObjectStatus): Fixed indentation.
2007-02-20 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Fix focus handling and make the forms
work as expected.
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::setScrollArea):
* platform/qt/WidgetQt.cpp:
(WebCore::WidgetPrivate::WidgetPrivate):
(WebCore::WidgetPrivate::canvas):
(WebCore::Widget::hasFocus):
(WebCore::Widget::setFocus):
(WebCore::Widget::clearFocus):
(WebCore::Widget::setFont):
(WebCore::Widget::setQWidget):
(WebCore::Widget::focusPolicy):
2007-02-20 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin and then Sam.
- fix http://bugs.webkit.org/show_bug.cgi?id=10735
Clicking in SVG results causes WebKit to consume 100% CPU for several minutes
No test since there is no change in functionality.
* CMakeLists.txt:
* WebCore.pro:
* WebCore.xcodeproj/project.pbxproj: Added PositionIterator.{cpp,h}.
* WebCoreSources.bkl:
* dom/Position.cpp:
(WebCore::Position::Position): Added converting constructor from
PositionIterator.
(WebCore::Position::previous): Changed assert() to ASSERT().
(WebCore::Position::next): Ditto.
(WebCore::isStreamer): Changed the argument to a PositionIterator.
(WebCore::Position::upstream): Changed to use PositionIterator.
(WebCore::Position::downstream): Ditto.
(WebCore::Position::inRenderedText): Made public.
(WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight): Changed
into a static member function.
(WebCore::Position::nodeIsUserSelectNone): Ditto.
* dom/Position.h:
* dom/PositionIterator.cpp: Added. A Position iterator with constant-time
increment, decrement, and several predicates on the Position it is at.
Conversion to/from Position is O(n) in the offset.
(WebCore::PositionIterator::increment):
(WebCore::PositionIterator::decrement):
(WebCore::PositionIterator::atStart):
(WebCore::PositionIterator::atEnd):
(WebCore::PositionIterator::atStartOfNode):
(WebCore::PositionIterator::atEndOfNode):
(WebCore::PositionIterator::isCandidate):
* dom/PositionIterator.h: Added.
(WebCore::PositionIterator::PositionIterator):
(WebCore::PositionIterator::node):
(WebCore::PositionIterator::offsetInLeafNode):
* editing/htmlediting.cpp:
(WebCore::nextCandidate): Changed to use PositionIterator.
(WebCore::previousCandidate): Changed to use PositionIterator.
2007-02-20 Rob Buis <buis@kde.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12439
SVG parser complains about points attribute in polygon and polyline element
Return true when the parsed points specification is valid.
* ksvg2/svg/SVGParserUtilities.cpp:
(WebCore::parseNumber):
(WebCore::SVGPolyParser::parsePoints):
* ksvg2/svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::parseMappedAttribute):
2007-02-20 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Make editing of forms work plus make sure that non-void methods
always return something.
* WebCore.pro:
* loader/qt/DocumentLoaderQt.cpp:
(WebCore::DocumentLoader::getResponseModifiedHeader):
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::setData):
2007-02-20 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Refactor and fix the implementation of theming of
form elements on the Qt platform.
* platform/qt/RenderThemeQt.cpp:
(WebCore::theme):
(WebCore::RenderThemeQt::RenderThemeQt):
(WebCore::RenderThemeQt::supportsHover):
(WebCore::RenderThemeQt::supportsFocusRing):
(WebCore::RenderThemeQt::baselinePosition):
(WebCore::RenderThemeQt::controlSupportsTints):
(WebCore::RenderThemeQt::supportsControlTints):
(WebCore::RenderThemeQt::adjustRepaintRect):
(WebCore::RenderThemeQt::paintResizeControl):
(WebCore::RenderThemeQt::platformActiveSelectionBackgroundColor):
(WebCore::RenderThemeQt::platformInactiveSelectionBackgroundColor):
(WebCore::RenderThemeQt::platformActiveSelectionForegroundColor):
(WebCore::RenderThemeQt::platformInactiveSelectionForegroundColor):
(WebCore::RenderThemeQt::systemFont):
(WebCore::RenderThemeQt::minimumMenuListSize):
(WebCore::RenderThemeQt::adjustSliderThumbSize):
(WebCore::RenderThemeQt::paintCheckbox):
(WebCore::RenderThemeQt::paintRadio):
(WebCore::RenderThemeQt::setRadioSize):
(WebCore::RenderThemeQt::adjustButtonStyle):
(WebCore::RenderThemeQt::setButtonSize):
(WebCore::RenderThemeQt::adjustTextFieldStyle):
(WebCore::RenderThemeQt::adjustMenuListStyle):
(WebCore::RenderThemeQt::paintMenuList):
(WebCore::RenderThemeQt::paintMenuListButton):
(WebCore::RenderThemeQt::adjustMenuListButtonStyle):
(WebCore::RenderThemeQt::paintSliderTrack):
(WebCore::RenderThemeQt::paintSliderThumb):
(WebCore::RenderThemeQt::paintSearchField):
(WebCore::RenderThemeQt::adjustSearchFieldStyle):
(WebCore::RenderThemeQt::adjustSearchFieldCancelButtonStyle):
(WebCore::RenderThemeQt::paintSearchFieldCancelButton):
(WebCore::RenderThemeQt::adjustSearchFieldDecorationStyle):
(WebCore::RenderThemeQt::paintSearchFieldDecoration):
(WebCore::RenderThemeQt::adjustSearchFieldResultsDecorationStyle):
(WebCore::RenderThemeQt::paintSearchFieldResultsDecoration):
(WebCore::RenderThemeQt::supportsFocus):
(WebCore::RenderThemeQt::getStylePainterAndWidgetFromPaintInfo):
(WebCore::RenderThemeQt::applyTheme):
(WebCore::RenderThemeQt::setSizeFromFont):
(WebCore::RenderThemeQt::sizeForFont):
(WebCore::RenderThemeQt::setButtonPadding):
(WebCore::RenderThemeQt::setPopupPadding):
(WebCore::RenderThemeQt::setPrimitiveSize):
* platform/qt/RenderThemeQt.h: Added.
2007-02-19 Lars Naesbye Christensen <lars@naesbye.dk>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12815
Two image files not included in project file
* WebCore.xcodeproj/project.pbxproj: Added crossHairCursor.png and
notAllowedCursor.png.
2007-02-19 Geoffrey Garen <ggaren@apple.com>
Reviewed by Adam Roben.
Fixed some leaks in RenderThemeMac.
No test case because 'leaks' can't detect these leaks inside DRT, even if
DRT forces the WebView to paint. ('leaks' can detect these leaks inside
Safari. Weird.)
* rendering/RenderThemeMac.h:
- Renamed data members to m_*, to match our style guidelines.
- Renamed *Is* to is**, to match our style guidelines.
- Removed a few unnecessary data members.
- Made cached values like m_checkbox mutable, since they can change
inside functions that don't change the logical state of a RenderTheme
object. (The alternative was to make some const functions non-const.)
(WebCore::RenderThemeMac::paintMenuList): Took CFType pointers that just
used to leak and placed them in RetainPtrs.
(WebCore::RenderThemeMac::paintMenuListButtonGradients): ditto
Factored inline implementations of lazy initialization into these accessor
functions, for better encapsulation:
(WebCore::RenderThemeMac::checkbox):
(WebCore::RenderThemeMac::radio):
(WebCore::RenderThemeMac::button):
(WebCore::RenderThemeMac::popupButton):
(WebCore::RenderThemeMac::search):
(WebCore::RenderThemeMac::sliderThumbHorizontal): The inline version of
this initialization used to confuse the retained data member with a local
stack value, causing both a leak and a failure to initialize. Fixed now.
(WebCore::RenderThemeMac::sliderThumbVertical): ditto
(WebCore::RenderThemeMac::resizeCornerImage):
2007-02-19 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12817
REGRESSION (r18634): Table border-collapse problems with right margin
Test: fast/repaint/table-outer-border.html
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout): Reordered to initialize horizontal overflow
after table sections have computed their outer horizontal borders.
2007-02-19 John Sullivan <sullivan@apple.com>
Reviewed by Darin
- fixed <rdar://problem/4613701> REGRESSION: A line break in the source HTML of a link becomes visible after drag & drop
* page/DragController.cpp:
(WebCore::DragController::startDrag):
Call simplifyWhiteSpace() on the proposed link title to match what's displayed on the web page, instead of using the
raw source HTML text.
2007-02-19 David Hyatt <hyatt@apple.com>
Fix for Radar 4981605, regression where button grows randomly when a select is
opened. With the new form controls, the WinIE quirk for using line width
ended up being used for them more.
This patch removes the quirk after verifying that Firefox doesn't implement
the quirk at all. usesLineWidth is being renamed to shrinksToAvoidFloats to
make it clear that the new method only applies to block objects that avoid floats
and that have auto width.
Also fixed a regression where whitespace after a floating <select> at the start
of a block got incorrectly rendered. Make sure skipWhitespace always skips
through floating/positioned elements regardless of the whitespace setting (this
way the white-space:pre value on floating <select>s doesn't cause trouble).
Reviewed by darin
fast/block/float/float-avoidance.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::collapseMargins):
(WebCore::RenderBlock::clearFloatsIfNeeded):
(WebCore::RenderBlock::layoutBlockChildren):
(WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::containingBlockWidth):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::shrinkToAvoidFloats):
* rendering/RenderObject.h:
* rendering/bidi.cpp:
(WebCore::RenderBlock::skipWhitespace):
2007-02-19 Zalan Bujtas <zbujtas@gmail.com>
Reviewed by Darin.
Update stylesheet href, when document's baseUrl changes. It needs
update when the stylesheet is constructed before the parser hits the base tag.
http://bugs.webkit.org/show_bug.cgi?id=12214
* css/StyleSheet.h:
(WebCore::StyleSheet::setHref):
* dom/Document.cpp:
(WebCore::Document::setBaseURL):
* dom/Document.h:
2007-02-19 Mitz Pettel <mitz@webkit.org>
Reviewed by Adam.
- fix http://bugs.webkit.org/show_bug.cgi?id=11518
REGRESSION (r14376): View Source not available after Back navigation from a non-HTML page
The FrameLoader's responseMIMEType was not being updated when a page was
brought back from the page cache.
Moved the line that updates the MIME type from commitProvisionalLoad() to
transitionToCommitted().
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::transitionToCommitted):
2007-02-19 Anders Carlsson <acarlsson@apple.com>
Reviewed by Oliver.
Make DragController::maxDragImageSize a function to get rid of the global initializer.
* page/DragController.cpp:
(WebCore::DragController::doImageDrag):
* page/DragController.h:
* page/mac/DragControllerMac.mm:
(WebCore::DragController::maxDragImageSize):
* page/qt/DragControllerQt.cpp:
(WebCore::DragController::maxDragImageSize):
2007-02-19 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- <rdar://problem/5006414> REGRESSION: Crash occurs at WebCore::Frame::loader()
when loading AFL Ladder widget
* html/HTMLFrameElementBase.cpp: (WebCore::HTMLFrameElementBase::openURL):
Add missing null check so this fails without crashing when called on an element
that's no longer in a frame.
2007-02-19 Antti Koivisto <antti@apple.com>
Reviewed by Mitz.
- fix for http://bugs.webkit.org/show_bug.cgi?id=10990
REGRESSION: Pressing a pop-up's access key doesn't focus it
<rdar://problem/4823138>
Focus the select element too in accessKeyAction.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::accessKeyAction):
2007-02-18 Antti Koivisto <antti@apple.com>
Reviewed by Hyatt.
- really fix http://bugs.webkit.org/show_bug.cgi?id=11974
REGRESSION: Caret drawn over input when smaller than font size on initial focus
<rdar://problem/4960258>
Avoid double painting caret when it is on a block element.
Layout test for this already went in previous try (it only fails in pixel mode) in r19626.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintCaret):
2007-02-19 Lars Knoll <lars@trolltech.com>
Added a one line patch from Olliej to create the
clipboard on demand (to stop things from crashing),
and added lots of notImplemented() warnings all
over the place.
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::ClipboardQt):
(WebCore::ClipboardQt::clearData):
(WebCore::ClipboardQt::clearAllData):
(WebCore::ClipboardQt::getData):
(WebCore::ClipboardQt::setData):
(WebCore::ClipboardQt::types):
(WebCore::ClipboardQt::dragLocation):
(WebCore::ClipboardQt::dragImage):
(WebCore::ClipboardQt::setDragImage):
(WebCore::ClipboardQt::dragImageElement):
(WebCore::ClipboardQt::setDragImageElement):
(WebCore::ClipboardQt::createDragImage):
(WebCore::ClipboardQt::declareAndWriteDragImage):
(WebCore::ClipboardQt::writeURL):
(WebCore::ClipboardQt::writeRange):
(WebCore::ClipboardQt::hasData):
* platform/qt/DragDataQt.cpp:
(WebCore::DragData::canSmartReplace):
(WebCore::DragData::containsColor):
(WebCore::DragData::containsPlainText):
(WebCore::DragData::asPlainText):
(WebCore::DragData::asColor):
(WebCore::DragData::createClipboard):
(WebCore::DragData::containsCompatibleContent):
(WebCore::DragData::containsURL):
(WebCore::DragData::asURL):
(WebCore::DragData::asFragment):
2007-02-19 Lars Knoll <lars@trolltech.com>
Compile again.
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::types):
2007-02-17 Lars Knoll <lars@trolltech.com>
Reviewed by Maciej.
Additional coding by Maciej, additional review by Oliver.
Get rid of the FrameMac and FrameQt classes. Instead
move all methods into Frame directly, and implement
some platform specific methods in foo/FrameFoo.cpp.
Some general cleanup in Frame:
* Move some methods out of Frame, to the place where they
belong.
* Unify the different ways of creating the JavaScript wrappers
for <object>, <embed> and <applet>
* Some cleanup of the WebCoreFrameBridge
* ForwardingHeaders/bindings/NP_jsobject.h: Added.
* ForwardingHeaders/bindings/npruntime_impl.h: Added.
* ForwardingHeaders/bindings/runtime_root.h: Added.
* WebCore.exp:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/kjs_binding.cpp:
(KJS::ScriptInterpreter::shouldInterruptScript):
* bindings/objc/DOM.mm:
(-[DOMNode KJS::Bindings::]):
* bindings/objc/DOMInternal.mm:
(-[WebScriptObject _initializeScriptDOMNodeImp]):
* bridge/EditorClient.h:
* bridge/mac/FrameViewMac.mm:
(WebCore::FrameView::updateBorder):
(WebCore::FrameView::updateDashboardRegions):
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject rendererForView:]):
* dom/Position.cpp:
(WebCore::Position::next):
* editing/CommandByName.cpp:
(WebCore::Frame::execCopy):
(WebCore::Frame::execCut):
(WebCore::Frame::execPaste):
* editing/Editor.cpp:
(WebCore::Editor::canEdit):
(WebCore::Editor::pasteWithPasteboard):
(WebCore::Editor::paste):
(WebCore::Editor::pasteAsPlainText):
* editing/Editor.h:
* editing/JSEditor.cpp:
* html/HTMLAppletElement.cpp:
(WebCore::HTMLAppletElement::getInstance):
* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::getInstance):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::formData):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::getInstance):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::clear):
(WebCore::FrameLoader::detachFromParent):
* loader/mac/ImageDocumentMac.mm:
(WebCore::finishImageLoad):
* loader/qt/DocumentLoaderQt.cpp:
* page/Chrome.cpp:
(WebCore::Chrome::shouldInterruptJavaScript):
* page/Chrome.h:
* page/ChromeClient.h:
* page/Frame.cpp:
(WebCore::Frame::~Frame):
(WebCore::Frame::markedTextRange):
(WebCore::Frame::shouldChangeSelection):
(WebCore::Frame::shouldDeleteSelection):
(WebCore::Frame::isContentEditable):
(WebCore::Frame::setSecureKeyboardEntry):
(WebCore::Frame::isSecureKeyboardEntry):
(WebCore::Frame::bindingRootObject):
(WebCore::Frame::createRootObject):
(WebCore::Frame::windowScriptNPObject):
(WebCore::Frame::cleanupScriptObjects):
(WebCore::FramePrivate::FramePrivate):
* page/Frame.h:
* page/FramePrivate.h:
* page/FrameView.h:
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::tabsToLinks):
(WebCore::EventHandler::tabsToAllControls):
(WebCore::EventHandler::focusDocumentView):
(WebCore::EventHandler::passMouseDownEventToWidget):
(WebCore::EventHandler::handleDrag):
(WebCore::EventHandler::sendFakeEventsAfterWidgetTracking):
(WebCore::EventHandler::keyboardUIMode):
* page/mac/FrameMac.h: Removed.
* page/mac/FrameMac.mm:
(WebCore::Frame::setBridge):
(WebCore::Frame::bridge):
(WebCore::Frame::searchForLabelsAboveCell):
(WebCore::Frame::searchForLabelsBeforeElement):
(WebCore::Frame::matchLabelsAgainstElement):
(WebCore::Frame::focusWindow):
(WebCore::Frame::unfocusWindow):
(WebCore::Frame::imageFromRect):
(WebCore::Frame::selectionImage):
(WebCore::Frame::snapshotDragImage):
(WebCore::Frame::fontAttributesForSelectionStart):
(WebCore::Frame::baseWritingDirectionForSelectionStart):
(WebCore::Frame::print):
(WebCore::Frame::issuePasteCommand):
(WebCore::Frame::issueTransposeCommand):
(WebCore::Frame::respondToChangedSelection):
(WebCore::Frame::textFieldDidBeginEditing):
(WebCore::Frame::textFieldDidEndEditing):
(WebCore::Frame::textDidChangeInTextField):
(WebCore::Frame::textDidChangeInTextArea):
(WebCore::Frame::doTextFieldCommandFromEvent):
(WebCore::Frame::textWillBeDeletedInTextField):
(WebCore::Frame::setSecureKeyboardEntry):
(WebCore::Frame::isSecureKeyboardEntry):
(WebCore::Frame::setMarkedTextRange):
(WebCore::Frame::dashboardRegionsDictionary):
(WebCore::Frame::dashboardRegionsChanged):
(WebCore::Frame::willPopupMenu):
(WebCore::Frame::isCharacterSmartReplaceExempt):
(WebCore::Frame::setNeedsReapplyStyles):
(WebCore::Frame::customHighlightLineRect):
(WebCore::Frame::paintCustomHighlight):
(WebCore::Frame::createScriptInstanceForWidget):
(WebCore::Frame::windowScriptObject):
(WebCore::Frame::cleanupPlatformScriptObjects):
* page/mac/WebCoreFrameBridge.h:
* page/mac/WebCoreFrameBridge.mm:
(createRootObject):
(bridge):
(-[WebCoreFrameBridge _frame]):
* page/qt/EventHandlerQt.cpp:
* page/qt/FrameQt.cpp:
(WebCore::Frame::unfocusWindow):
(WebCore::Frame::focusWindow):
(WebCore::Frame::issueTransposeCommand):
(WebCore::Frame::respondToChangedSelection):
(WebCore::Frame::print):
(WebCore::Frame::createScriptInstanceForWidget):
(WebCore::Frame::cleanupPlatformScriptObjects):
(WebCore::Frame::isCharacterSmartReplaceExempt):
* page/qt/FrameQt.h: Removed.
* platform/MimeTypeRegistry.h:
* platform/graphics/svg/SVGImage.cpp:
(WebCore::SVGImage::setData):
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyChromeClient::shouldInterruptJavaScript):
(WebCore::SVGEmptyEditorClient::shouldChangeSelectedRange):
* platform/mac/ClipboardMac.h:
* platform/mac/ClipboardMac.mm:
(WebCore::ClipboardMac::ClipboardMac):
* platform/mac/FileChooserMac.mm:
(-[OpenPanelController beginSheetWithFrame:]):
* platform/mac/MimeTypeRegistryMac.mm:
(WebCore::MimeTypeRegistry::getMIMETypeForPath):
* platform/mac/PopupMenuMac.mm:
(WebCore::PopupMenu::show):
* platform/mac/WidgetMac.mm:
(WebCore::Widget::setFocus):
(WebCore::Widget::setIsSelected):
* platform/network/mac/ResourceHandleMac.mm:
* platform/network/qt/ResourceHandleManagerQt.cpp:
* platform/network/qt/ResourceHandleQt.cpp:
(WebCore::ResourceHandle::start):
* platform/qt/MimeTypeRegistryQt.cpp:
(WebCore::MimeTypeRegistry::getMIMETypeForPath):
* platform/qt/PopupMenuQt.cpp:
* platform/qt/ScrollViewCanvasQt.cpp:
* platform/qt/ScrollViewQt.cpp:
* platform/win/TemporaryLinkStubs.cpp:
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintCustomHighlight):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintCustomHighlight):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::addHighlightOverflow):
(WebCore::RootInlineBox::paintCustomHighlight):
2007-02-18 Oliver Hunt <oliver@apple.com>
Reviewed by NOBODY (Buildfix).
Oops, missed a 'const'
* platform/qt/ClipboardQt.h:
2007-02-18 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
Adding stubbed out implementation of Clipboard for Qt to stop
it crashing whenever someone drags the mouse.
* WebCore.pro:
* page/qt/EventHandlerQt.cpp:
(WebCore::EventHandler::createDraggingClipboard):
* platform/qt/ClipboardQt.cpp: Added.
(WebCore::ClipboardQt::ClipboardQt):
(WebCore::ClipboardQt::clearData):
(WebCore::ClipboardQt::clearAllData):
(WebCore::ClipboardQt::getData):
(WebCore::ClipboardQt::setData):
(WebCore::ClipboardQt::types):
(WebCore::ClipboardQt::dragLocation):
(WebCore::ClipboardQt::dragImage):
(WebCore::ClipboardQt::setDragImage):
(WebCore::ClipboardQt::dragImageElement):
(WebCore::ClipboardQt::setDragImageElement):
(WebCore::ClipboardQt::createDragImage):
(WebCore::ClipboardQt::declareAndWriteDragImage):
(WebCore::ClipboardQt::writeURL):
(WebCore::ClipboardQt::writeRange):
(WebCore::ClipboardQt::hasData):
* platform/qt/ClipboardQt.h: Added.
(WebCore::ClipboardQt::~ClipboardQt):
(WebCore::ClipboardQt::isForDragging):
2007-02-18 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
Don't even attempt to do a document based drag if there isn't a document
Fixes rdar://problem/4960109
* page/DragController.cpp:
(WebCore::DragController::tryDocumentDrag):
Null check m_document
(WebCore::DragController::tryDHTMLDrag):
ASSERT(m_document) -- tryDocumentDrag is the only
thing that will ever call us, but lets play it safe
2007-02-18 Adam Roben <aroben@apple.com>
Reviewed by Hyatt.
A little preparation for <rdar://problem/5006872>.
* platform/PopupMenu.h:
2007-02-18 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Adele.
http://bugs.webkit.org/show_bug.cgi?id=12807
XPath incorrectly converts NaN to boolean
Test: fast/xpath/nan-to-boolean.html
* xml/XPathValue.cpp:
(WebCore::XPath::Value::toBoolean): Convert NaN to false.
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunSubstringAfter::doEvaluate): Fix substring-after to actually work.
2007-02-18 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12123
REGRESSION: Incomplete repaint of floats' overflows
Tests: fast/repaint/float-overflow.html
fast/repaint/float-overflow-right.html
fast/repaint/table-cell-vertical-overflow.html
- fix http://bugs.webkit.org/show_bug.cgi?id=10116
REGRESSION: Menu item drawn 2 pixels short on WWDC 2006 Attendee Site
Reflected in existing test results.
Unified floats and overflow for the purposes of painting and hit-testing.
Overhanging and overflowing floats are now factored into a block's overflow
unless their painting has been propagated to an ancestor.
Changed table cells to no longer expand to enclose overflow, thus making
it purely "visual overflow", having no effect on layout in WebCore. It
still determines scrolling dimensions.
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::placeBoxesHorizontally): Include inline blocks'
horizontal overflow in the inline box's dimensions.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock): Removed the expand to enclose overflows
behavior. Added code to add this block's floats (and their overflow) to its
overflow rect if it is not in a block formatting context. Otherwise, the
inclusion of floats in the overflow is deferred until this block's parent
examines its floats and possibly adopts overhanging floats.
(WebCore::RenderBlock::layoutBlockChildren):
(WebCore::RenderBlock::paint):
(WebCore::RenderBlock::floatRect): Made non-virtual and changed to return an empty
rect if there are no floats or the floats are clipped, instead of returning the border
box.
(WebCore::RenderBlock::addOverhangingFloats): Any floats of the child that
are not to be painted by the parent are added to the child's overflow rect.
(WebCore::RenderBlock::addVisualOverflow): Added. Adjusts the overflow
bounds to include the given rect.
(WebCore::RenderBlock::nodeAtPoint):
* rendering/RenderBlock.h:
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
(WebCore::RenderFlexibleBox::layoutHorizontalBox): After placing a normal
child, add its floats to its overflow, since painting of floats does not
propagate to flexible boxes.
(WebCore::RenderFlexibleBox::layoutVerticalBox): Ditto.
* rendering/RenderForeignObject.cpp:
(WebCore::RenderForeignObject::layout):
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::layout):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::layout):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::absoluteBoundingBox):
* rendering/RenderLayer.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::repaintAfterLayoutIfNeeded):
* rendering/RenderObject.h:
(WebCore::RenderObject::expandsToEncloseOverhangingFloats):
* rendering/RenderPath.cpp:
(WebCore::RenderPath::layout):
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::layout):
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::layout):
* rendering/RenderTable.h: Removed the override of overflowHeight() since now tables can have
vertical overflow.
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::paint): Made sure that overflow is repainted.
* rendering/RenderTableCell.h:
(WebCore::RenderTableCell::expandsToEncloseOverhangingFloats): Removed.
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::RenderTableSection):
(WebCore::RenderTableSection::layoutRows): Factor in vertical overflow from cells.
(WebCore::RenderTableSection::paint):
* rendering/RenderTableSection.h:
(WebCore::RenderTableSection::overflowHeight):
(WebCore::RenderTableSection::overflowTop):
2007-02-18 Oliver Hunt <oliver@apple.com>
Reviewed by NOBODY (Buildfix).
Build fix for the build fix -- can't call something that isn't a function
* platform/qt/CursorQt.cpp:
(WebCore::notAllowedCursor):
2007-02-18 Oliver Hunt <oliver@apple.com>
Reviewed by NOBODY (Build fix).
Adding platform/DragImage.cpp and platform/qt/DragImageQt.cpp to the Qt
project files
Stubbed method for WebCore::notAllowedCursor -- not sure what it should return,
have returned blank cursor, possibly needs to return something else
* WebCore.pro:
* platform/qt/CursorQt.cpp:
(WebCore::notAllowedCursor):
2007-02-18 Oliver Hunt <oliver@apple.com>
Reviewed by NOBODY (Buildfix).
Sigh, obnoxious occasional auto conversion from float to int
* platform/mac/ClipboardMac.mm:
(WebCore::ClipboardMac::createDragImage):
2007-02-18 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Hyatt.
http://bugs.webkit.org/show_bug.cgi?id=12799
REGRESSION: Webpage doesn't load correctly (www.cincinnati.com
redirects to the wrong URL)
Test: http/tests/misc/refresh-meta-with-newline.html
* platform/network/HTTPParsers.cpp:
(WebCore::skipWhiteSpace):
(WebCore::parseHTTPRefresh):
* platform/network/HTTPParsers.h:
In HTML, all characters with codes <= 0x20 are whitespace, while in
HTTP, only space and tab are such.
* dom/Document.cpp:
(WebCore::Document::processHttpEquiv):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::receivedFirstData):
Pass parseHTTPRefresh() a flag telling about the source of data.
2007-02-18 Oliver Hunt <oliver@apple.com>
Reviewed by NOBODY (Build fix).
Buld fix -- surprisingly RetainPtr doesn't exist on Qt
* platform/DragImage.h:
2007-02-18 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
More drag and drop migration, now the entirety of the
drag initiation logic has been rendered platform independent
This has required a number of new interfaces, and a reasonable
amount of logic migration.
As a side effect, this patch also fixes rdar://problem/4945341
There are some basic Qt stubs that should stop the build from failing,
however the absence of ClipboardQt means any attempt to initiate a drag
may cause a crash.
* WebCore.exp:
Exporting new symbols
* WebCore.xcodeproj/project.pbxproj:
New files
* dom/Clipboard.cpp:
(WebCore::Clipboard::canSaveAsWebArchive):
Migrated from WebKit
* dom/Clipboard.h:
Added more methods to allow Clipboard to be used as a
platform independent container for drag and drop
* page/DragClient.h:
(WebCore::DragClient::declareAndWriteDragImage):
This is a mac only helper function, so i've made it have an empty implementation,
that way we won't need a PLATFORM(MAC) block in SVGImageEmptyClients
* page/DragController.cpp:
(WebCore::DragController::dragExited):
(WebCore::DragController::performDrag):
(WebCore::DragController::tryDocumentDrag):
(WebCore::DragController::tryDHTMLDrag):
Using RefPtrs now
(WebCore::getCachedImage):
(WebCore::getImage):
Helper functions
(WebCore::dragLocForDHTMLDrag):
(WebCore::dragLocForSelectionDrag):
(WebCore::DragController::startDrag):
(WebCore::DragController::doImageDrag):
(WebCore::DragController::doSystemDrag):
Logic that generates drag images and clipboard content, and
initiates the actual system drag operation
* page/DragController.h:
Method and variable declarations
* page/EventHandler.cpp:
(WebCore::EventHandler::handleDrag):
handleDrag is now platform independent
(WebCore::EventHandler::handleTextInputEvent):
formatting
* page/EventHandler.h:
(WebCore::EventHandler::eventLoopHandleMouseDragged):
Forgot to define this stub function
* page/Frame.h:
Declaring dragImageForSelection to provide drag image for selected content
* page/mac/DragControllerMac.mm:
Defining drag images control vars
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::createDraggingClipboard):
Migrated old clipboard creation to here
* page/mac/FrameMac.mm:
(WebCore::Frame::dragImageForSelection):
Wrap FrameMac::selectionImage
* page/qt/DragControllerQt.cpp:
Defining drag images control vars
* page/qt/EventHandlerQt.cpp:
(WebCore::EventHandler::createDraggingClipboard):
stub
* page/qt/FrameQt.cpp:
(WebCore::Frame::dragImageForSelection):
stub
* platform/DragImage.cpp: Added.
(WebCore::fitDragImageToMaxSize):
(WebCore::createDragImageForSelection):
Platform independent processing for drag images
* platform/DragImage.h: Added.
Declaring typedefs and wrapper functions to abstract the handling
of drag images
* platform/Pasteboard.h:
Declaring extracted writeURL and writeSelection methods
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyDragClient::willPerformDragSourceAction):
(WebCore::SVGEmptyDragClient::startDrag):
(WebCore::SVGEmptyDragClient::createDragImageForLink):
Stubs FTW!
* platform/mac/ClipboardMac.h:
(WebCore::ClipboardMac::pasteboard):
Provide accessor for underlying NSPasteboard
* platform/mac/ClipboardMac.mm:
(WebCore::ClipboardMac::hasData):
(WebCore::ClipboardMac::writeRange):
(WebCore::ClipboardMac::writeURL):
(WebCore::ClipboardMac::declareAndWriteDragImage):
(WebCore::ClipboardMac::createDragImage):
Implemented new Clipboarid functionality.
(WebCore::ClipboardMac::dragNSImage):
Made this a const method
* platform/mac/DragImageMac.mm: Added.
(WebCore::dragImageSize):
(WebCore::deleteDragImage):
(WebCore::scaleDragImage):
(WebCore::dissolveDragImageToFraction):
(WebCore::createDragImageFromImage):
(WebCore::createDragImageIconForCachedImage):
Implemented platform specific DragImage functions
* platform/mac/PasteboardMac.mm:
(WebCore::writeSelection):
(WebCore::Pasteboard::writeSelection):
(WebCore::writeURL):
(WebCore::Pasteboard::writeURL):
Extracted member implementations of these functions, so that
Clipboard could also make use of this functionality.
Pasteboard methods now call the new non-member implementations.
Also fixed implementations to respect the list of requested types.
* platform/qt/DragImageQt.cpp: Added.
(WebCore::dragImageSize):
(WebCore::deleteDragImage):
(WebCore::scaleDragImage):
(WebCore::dissolveDragImageToFraction):
(WebCore::createDragImageFromImage):
(WebCore::createDragImageIconForCachedImage):
Stubs
2007-02-17 David Hyatt <hyatt@apple.com>
Fix textarea resizers to not fill with black by making sure the fill color starts off as
transparent instead of black.
Reviewed by aroben
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContextState::GraphicsContextState):
2007-02-17 Lars Knoll <lars@trolltech.com>
Reviewed by Adam.
fix http://bugs.webkit.org/show_bug.cgi?id=11476
<rdar://problem/4960247> REGRESSION: Nesting the IMG tag inside of a
MAP fails to render correctly in ToT
Test: fast/images/image-in-map.html
* html/HTMLMapElement.cpp:
(WebCore::HTMLMapElement::checkDTD):
2007-02-17 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12733
XPath namespace is attached to a wrong step
* xml/XPathGrammar.y: NAMETEST is different from other NodeTests in that its
resulting type is an expanded name, rather than a string. It is not really possible
to store the namespace inside Parser, because it gets used in wrong steps then.
* xml/XPathParser.cpp:
(WebCore::XPath::Parser::expandQName):
* xml/XPathParser.h:
Moved code that expands a QName from XPathGrammar.y. Removed m_currentNamespaceURI.
* xml/XPathStep.cpp:
(WebCore::XPath::Step::Step):
* xml/XPathStep.h:
Added a constructor that takes a namespace.
2007-02-17 Mitz Pettel <mitz@webkit.org>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=12479
ASSERTION FAILURE: resource->inCache() in WebCore::Cache::remove
Test: fast/loader/simultaneous-reloads-assert.html
* loader/Cache.cpp:
(WebCore::Cache::remove): Replaced the assertion with a check whether the
resource is in the cache. The resource could have been removed from the cache
as a result of a reload occurring simultaneously in a different document.
2007-02-12 Lars Naesbye Christensen <lars@naesbye.dk>
Reviewed by Adam.
Fix for http://bugs.webkit.org/show_bug.cgi?id=12711
Prettier and more distinct cursors
* Resources/crossHairCursor.png: Added.
* Resources/northEastSouthWestResizeCursor.png:
* Resources/northWestSouthEastResizeCursor.png:
* Resources/notAllowedCursor.png: Added.
* page/EventHandler.cpp: (WebCore::selectCursor):
* platform/Cursor.h:
* platform/mac/CursorMac.mm:
(WebCore::crossCursor):
(WebCore::notAllowedCursor):
2007-02-16 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12780
REGRESSION (r19341-r19385): Reproducible crash in "onselectstart" event
Test: fast/events/shadow-boundary-crossing.html
* dom/EventTargetNode.cpp:
(WebCore::EventTargetNode::dispatchGenericEvent): Changed to use the new
eventParentNode() function for constructing the chain of ancestors for
capture and bubbling.
* dom/Node.h:
(WebCore::Node::eventParentNode): Added. Returns the node's parent for the
purpose of of event capture and bubbling. The base class implementation is
to return the parent node.
* ksvg2/svg/SVGElement.h:
(WebCore::SVGElement::eventParentNode): Added. Since in SVG events bubble
to and can be captured across the shadow DOM boundary, returns the shadow parent
for shadow nodes.
2007-02-17 Dave Hyatt <hyatt@apple.com>
Change how textarea resizers paint to more closely match the way the main window resizer paints.
Reviewed by olliej
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintOverflowControls):
2007-02-17 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Fix crashes on ARM due to different struct packing. Based on a patch
from Mike Emmel.
* platform/DeprecatedString.cpp: compile-time assert to make sure sizeof(DeprecatedChar) == 2
* platform/DeprecatedString.h: pack DeprecatedChar struct to ensure that
sizeof(DeprecatedChar) == 2. Move _internalBuffer in DeprecatedStringData
to the end, to avoid crashes on ARM due to different struct packing.
2007-02-16 Adele Peterson <adele@apple.com>
Reviewed by Mitz.
Fix for http://bugs.webkit.org/show_bug.cgi?id=11534
<rdar://problem/4946947> REGRESSION: Readonly text fields don't scroll when selecting content
Test: fast/forms/input-readonly-autoscroll.html
Implemented autoscroll methods for RenderTextControl, so this works on non-editable text controls.
* rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::autoscroll):
* rendering/RenderTextControl.h: (WebCore::RenderTextControl::shouldAutoscroll):
2007-02-17 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Curl networking improvements inspired by Mike Emmel's patches in
http://bugs.webkit.org/show_bug.cgi?id=11332.
Fix FrameLoaderClientGdk due to changed FrameLoaderClient API.
* loader/gdk/FrameLoaderClientGdk.cpp: Massage for changed API.
(WebCore::FrameLoaderClientGdk::saveViewStateToItem):
(WebCore::FrameLoaderClientGdk::restoreViewState):
(WebCore::FrameLoaderClientGdk::generatedMIMETypeForURLScheme):
(WebCore::FrameLoaderClientGdk::willUseArchive):
* loader/gdk/FrameLoaderClientGdk.h: Ditto.
* platform/network/ResourceHandleInternal.h: Remember url and custom headers
for the request lifetime and free them at the end.
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
* platform/network/gdk/ResourceHandleCurl.cpp: Ditto.
(WebCore::ResourceHandleInternal::~ResourceHandleInternal):
* platform/network/gdk/ResourceHandleManager.cpp: url improvements:
- remove m_useSimple code-path since it wasn't used anywhere
- don't use hashmap for keeping track of outstanding jobs - curl does it anyway
- set custom headers from request
- enable gzip and deflate through Accept-Encoding
- setup curl to share cookies and DNS cache between requests
- enable persisting of cookies in a file (if client provides file name
for cookies via ResourceHandleManager::setCookieJarFileName())
(WebCore::ResourceHandleManager::ResourceHandleManager):
(WebCore::ResourceHandleManager::setCookieJarFileName):
(WebCore::ResourceHandleManager::downloadTimerCallback):
(WebCore::ResourceHandleManager::removeFromCurl):
(WebCore::ResourceHandleManager::setupPUT):
(WebCore::ResourceHandleManager::setupPOST):
(WebCore::ResourceHandleManager::add):
(WebCore::ResourceHandleManager::cancel):
* platform/network/gdk/ResourceHandleManager.h:
2007-02-17 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Gdk fixes.
* page/gdk/EventHandlerGdk.cpp: Comment out chatty message.
(WebCore::EventHandler::handleDrag):
* platform/gdk/EditorClientGdk.cpp: Enable entering text into text field.
(WebCore::EditorClientGdk::shouldInsertText):
2007-02-16 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Move Path implementation from TemporaryLinkStubs.cpp to
its own file.
Implement setLineCap, setLineJoin and setMiterLimit for
cairo's GraphicsContext.
* WebCoreSources.bkl:
* platform/gdk/TemporaryLinkStubs.cpp:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::setPlatformFillColor):
(WebCore::GraphicsContext::setPlatformStrokeColor):
(WebCore::GraphicsContext::setLineCap):
(WebCore::GraphicsContext::setLineJoin):
(WebCore::GraphicsContext::setMiterLimit):
* platform/graphics/cairo/PathCairo.cpp: Added.
(WebCore::Path::Path):
(WebCore::Path::~Path):
(WebCore::Path::contains):
(WebCore::Path::translate):
(WebCore::Path::boundingRect):
(WebCore::Path::operator=):
(WebCore::Path::clear):
(WebCore::Path::moveTo):
(WebCore::Path::addLineTo):
(WebCore::Path::addQuadCurveTo):
(WebCore::Path::addBezierCurveTo):
(WebCore::Path::addArcTo):
(WebCore::Path::closeSubpath):
(WebCore::Path::addArc):
(WebCore::Path::addRect):
(WebCore::Path::addEllipse):
(WebCore::Path::transform):
(WebCore::Path::apply):
2007-02-16 Ada Chan <adachan@apple.com>
Reviewed by Adam and Maciej.
Use a RefPtr to store the old hover node.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateHoverActiveState):
2007-02-16 Darin Adler <darin@apple.com>
Reviewed by Adele.
- fix <rdar://problem/4990864> ASSERT in FormDelegate.m while dragging text between frames
This symptom is specific to Safari, so no layout test.
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::doApply): Only call textWillBeDeletedInTextField if the
text field is focused.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::aboutToUnload): Only call textFieldDidEndEditing if the text
field is focused.
(WebCore::HTMLInputElement::dispatchBlurEvent): Remove unneeded type cast.
(WebCore::HTMLInputElement::defaultEventHandler): Only call doTextFieldCommandFromEvent if
the text field is focused.
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::subtreeHasChanged): Only call textDidChangeInTextArea,
textFieldDidBeginEditing, and textDidChangeInTextField if the element is focused.
2007-02-16 Anders Carlsson <acarlsson@apple.com>
Reviewed by Adam.
<rdar://problem/4943985>
REGRESSION: Dragging standalone images to Finder fails to download the image file
Set the data and response on the image resource. Also, since this is platform-independent we don't need to do it in
ImageDocumentMac.mm
* loader/ImageDocument.cpp:
(WebCore::ImageTokenizer::finish):
* loader/mac/ImageDocumentMac.h:
* loader/mac/ImageDocumentMac.mm:
(WebCore::finishImageLoad):
2007-02-16 David Harrison <harrison@apple.com>
Reviewed by Adam.
<rdar://problem/5004746> Need mechanism to protect against WebKit calls from secondary threads (DOM APIs)
* platform/mac/LoggingMac.mm:
(WebCore::_WebCoreThreadViolationCheck):
Change the default to log the violations.
2007-02-16 Adele Peterson <adele@apple.com>
Reviewed by Mitz.
Fixed: http://bugs.webkit.org/show_bug.cgi?id=12768
<rdar://problem/4995250> REGRESSION: Crash occurs at WebCore::RenderLayer::scrollToOffset() when leaving page that has focus in field
No test case added. This crash doesn't occur in DumpRenderTree because the B/F cache is turned off.
* dom/Node.cpp: (WebCore::Node::willRemove): Check that the document is not in the page cache before
* dom/Element.cpp: (WebCore::Element::updateFocusAppearance): Added restorePreviousSelection argument, with appropriate default values.
* dom/Element.h: ditto.
* html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::updateFocusAppearance): ditto.
* html/HTMLInputElement.h: ditto.
* html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::updateFocusAppearance): ditto.
* html/HTMLTextAreaElement.h: ditto.
* page/PageState.cpp: (WebCore::PageState::restore): Call updateFocusAppearance on the focused node for this page. Pass true for the
restorePreviousSelection argument.
* rendering/RenderLayer.cpp: Added ASSERTS and nil checks on the RenderView. It shouldn't be null, but if it is,
we'll fail silently on release builds.
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::scrollToOffset):
(WebCore::RenderLayer::windowClipRect):
(WebCore::RenderLayer::calculateClipRects):
(WebCore::RenderLayer::calculateRects):
(WebCore::RenderLayer::intersectsDamageRect):
(WebCore::RenderLayer::absoluteBoundingBox):
2007-02-16 Anders Carlsson <acarlsson@apple.com>
Reviewed by Darin.
<rdar://problem/4993055> auto_refcount_underflow_error: WebCore::FrameLoader::continueAfterNavigationPolicy () over-releases under GC
Add ::adoptNS and ::adoptCF methods to RetainPtr to indicate what type of reference to adopt.
* platform/cf/RetainPtr.h:
(WebCore::):
(WebCore::adoptNSReference):
(WebCore::RetainPtr::RetainPtr):
(WebCore::::adoptCF):
(WebCore::::adoptNS):
* platform/mac/FileChooserMac.mm:
(WebCore::FileChooser::FileChooser):
* platform/network/mac/ResourceErrorMac.mm:
(WebCore::ResourceError::operator NSError*):
* platform/network/mac/ResourceRequestMac.mm:
(WebCore::ResourceRequest::doUpdatePlatformRequest):
* platform/network/mac/ResourceResponseMac.mm:
(WebCore::ResourceResponse::nsURLResponse):
2007-02-15 Brady Eidson <beidson@apple.com>
Reviewed by Lost Objective-C Hippyness (or hippiness)
Oh boy, did I ever botch this one up...
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::saveScrollPositionAndViewStateToItem): Null check the FrameView
2007-02-15 Brady Eidson <beidson@apple.com>
Reviewed by Adam's complaint
Adam wanted me to do an early return, instead.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::saveScrollPositionAndViewStateToItem):
2007-02-15 Brady Eidson <beidson@apple.com>
Reviewed by Adele
Forgot to bring the null check with me when I backed this code out of
the FrameLoaderClient
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::saveScrollPositionAndViewStateToItem): null check the HistoryItem
2007-02-15 Brady Eidson <beidson@apple.com>
Reviewed by Adam
Save scroll state for back/forward navigation in FrameLoader, not the client
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::saveScrollPositionAndViewStateToItem): Actually save the scroll position
here instead of asking the FrameLoaderClient
(WebCore::FrameLoader::restoreScrollPositionAndViewState): Ditto
* loader/FrameLoaderClient.h: Renamed/repurposed 2 methods
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::restoreViewState): Ditto
(WebCore::SVGEmptyFrameLoaderClient::saveViewStateToItem): Ditto
2007-02-15 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/4989774>
REGRESSION: Pasting a image into a plain text message can place image on a new line
<span><img><span><img></span></span> will appear as two
images on different lines because of a layout/rendering
bug. This patch avoids the bug by producing cleaner
markup so that the paste code can safely remove the style
spans.
* editing/markup.cpp:
(WebCore::createMarkup): Get the default style from the
editable root or body instead of the document element.
This produces cleaner markup since we don't inline the
root's styles.
2007-02-15 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Add gdk version of ContextMenuClient based on qt version.
* WebCoreSources.bkl:
* page/gdk/ContextMenuClientGdk.cpp: Added.
(WebCore::ContextMenuClientGdk::contextMenuDestroyed):
(WebCore::ContextMenuClientGdk::getCustomMenuFromDefaultItems):
(WebCore::ContextMenuClientGdk::contextMenuItemSelected):
(WebCore::ContextMenuClientGdk::downloadURL):
(WebCore::ContextMenuClientGdk::copyImageToClipboard):
(WebCore::ContextMenuClientGdk::searchWithGoogle):
(WebCore::ContextMenuClientGdk::lookUpInDictionary):
(WebCore::ContextMenuClientGdk::speak):
(WebCore::ContextMenuClientGdk::stopSpeaking):
* page/gdk/ContextMenuClientGdk.h: Added.
* webcore-base.bkl: curl is needed when building webcore_base files.
2007-02-15 Kevin Decker <kdecker@apple.com>
Reviewed by Darin.
Fixed: <rdar://problem/4983883> Background of a .mov window should not be white
* loader/PluginDocument.cpp:
(WebCore::PluginTokenizer::createDocumentStructure): Set a background color of gray
for full frame plug-ins, which makes it easier on the eyes. It's also the same
gray that PDFKit uses, too.
2007-02-15 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12625
REGRESSION: Crash when closing the web inspector with text selected
The problem was that selectionRect() was being called on a render tree that
had pending style changes. The changes were committed as a side effect in
the middle of traversing the render tree, and the current object got
deleted as a result. The solution is to update the render tree before
starting to traverse it.
The inspector was affected because it makes style changes in response to
an AppKit notification that's sent right before the windowDidResignKey:
notification, under which WebKit calls selectionRect(). I couldn't recreate
the same conditions (having uncommitted style changes in the tree when the
window becomes inactive) using HTML/JS in Safari, hence the lack of
a regression test to go with this patch.
* rendering/RenderView.cpp:
(WebCore::RenderView::selectionRect): Added call to updateRendering().
2007-02-15 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=10127
REGRESSION: Crash undoing delete in textarea
Document::removeMarkers() was using a Vector iterator (which is just a
pointer) and inserting into the Vector at the same time, which made the
iterator invalid as the Vector's data buffer was relocated.
Replaced all instances of Vector<DocumentMarker>::iterator with indices.
* dom/Document.cpp:
(WebCore::Document::addMarker):
(WebCore::Document::copyMarkers):
(WebCore::Document::removeMarkers):
(WebCore::Document::repaintMarkers):
(WebCore::Document::shiftMarkers):
2007-02-15 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- http://bugs.webkit.org/show_bug.cgi?id=12777
REGRESSION (r18574): User profile pages display incorrectly at ebay.ca
Fixes existing layout tests: tables/mozilla/bugs/bug45486.html
tables/mozilla_expected_failures/core/col_span2.html
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::calcEffectiveWidth): Fixed a mismatch between which
columns count as percentage columns when adding up the total percent and
which columns count as percentage columns when converting non-percentage
columns to effectively-percentage.
2007-02-14 Mitz Pettel <mitz@webkit.org>
Reviewed by Sam Weinig!
- fix http://bugs.webkit.org/show_bug.cgi?id=12773
REGRESSION (r19490): Crash on ipx-server.de
* manual-tests/background-image-change-in-page-cache.html: Added.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::imageChanged): Bail out if the object is not in a view,
which can happen if the document is in the page cache and the same cached
image used for its background is also being used in another document that
is currently in view.
2007-02-14 Adam Roben <aroben@apple.com>
Reviewed by Darin.
Fix http://bugs.webkit.org/show_bug.cgi?id=12517
<rdar://problem/4971227> REGRESSION: Tab order incorrect when input
inside frame/iframe gets initial focus (12517)
Test: fast/events/frame-programmatic-focus.html
* dom/Element.cpp:
(WebCore::Element::focus): Call FocusController::setFocusedNode to set
the focus for the whole page.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::focus): Ditto.
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::focus): Ditto.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleTextInputEvent): Send the textInput
event to the same target that was sent the keypress event before it.
* page/FocusController.cpp:
(WebCore::FocusController::advanceFocus): Added a FIXME.
(WebCore::FocusController::setFocusedNode): Added. Sets the focused
node for a whole page.
* page/FocusController.h: Added declaration.
* platform/cf/RetainPtr.h: Removed unused pointer_cast functions.
2007-02-14 Justin Garcia <justin.garcia@apple.com>
Reviewed by adele
<rdar://problem/4976800>
Outdent combines 2 separate strings on 2 different lines
* editing/IndentOutdentCommand.cpp:
(WebCore::IndentOutdentCommand::outdentParagraph): Add line breaks
if removing the indented node causes content before or after it to
collapse into the same paragraph as its content.
2007-02-14 Justin Garcia <justin.garcia@apple.com>
Reviewed by adele
<rdar://problem/4960120>
REGRESSION: First Enter key ignored on initial focus of textarea after page load (11967)
We'd insert a newline, but into an empty div. We need two newlines
in that case.
* editing/InsertLineBreakCommand.cpp:
(WebCore::lineBreakExistsAtPosition): Returns true if there is a
br or a '\n' in text that preserves newlines at the incoming position.
(WebCore::InsertLineBreakCommand::doApply): Fixed to handle the empty
block case, the anonymous block case.
2007-02-14 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- test or http://bugs.webkit.org/show_bug.cgi?id=12417
<rdar://problem/4990046> REGRESSION: pressing "Return" in a <select>
box does not submit the form (12697)
Test: fast/forms/select-enter-key.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
Add code to submit when someone hits the Enter key.
2007-02-14 Anders Carlsson <acarlsson@apple.com>
Reviewed by Darin.
<rdar://problem/4960112>
http://bugs.webkit.org/show_bug.cgi?id=12417
REGRESSION: "Are you sure you want to send a form again?" sheet is displayed twice (validator.w3.org)
The problem was that doing a reload would cause the "Cache-Control" HTTP header to be set on the request _after_ the first
navigation policy delegate callback was called. This would break the request equality check that's used to prevent multiple policy
delegate callbacks from getting called for the same request. The solution is to set the header as early as possible.
This patch also fixes some bugs in the ResourceRequest equality operator.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::reload):
Set the "Cache-Control" header field on the request here.
* platform/network/FormData.h:
(WebCore::operator==):
Short-circuit if the pointers are the same.
* platform/network/ResourceRequest.cpp:
(WebCore::operator==):
Check the equality of the objects, not the pointers.
2007-02-14 David Hyatt <hyatt@apple.com>
Move setPlatformData out of FontFallbackListMac.mm and delete the file. The function was completely
cross-platform already.
Reviewed by Ada
* WebCore.xcodeproj/project.pbxproj:
* platform/FontFallbackList.cpp:
(WebCore::FontFallbackList::setPlatformFont):
2007-02-14 David Hyatt <hyatt@apple.com>
Make the Font constructor that takes a FontPlatformData cross-platform, since the implementation was already
completely cross-platform.
Reviewed by Ada
* platform/Font.cpp:
(WebCore::Font::Font):
* platform/Font.h:
* platform/mac/FontMac.mm:
2007-02-14 Antti Koivisto <antti@apple.com>
Reverting http://bugs.webkit.org/show_bug.cgi?id=11974, it causes repainting problems in some cases.
* rendering/RenderTextControl.h:
(WebCore::RenderTextControl::avoidsFloats):
2007-02-14 Antti Koivisto <antti@apple.com>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=11974
REGRESSION: Caret drawn over input when smaller than font size on initial focus
<rdar://problem/4960258>
Set controlClip for non-search text controls.
* rendering/RenderTextControl.h:
(WebCore::RenderTextControl::hasControlClip):
2007-02-14 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12726
REGRESSION (r12073): Text wraps in the middle of a word instead of wrapping at the space before the word
Test: fast/text/break-word.html
The wrapW variable used to keep track of the width of the characters scanned
so far by adding up the widths of individual characters. Because of the
rounding hack, the total ended up being bigger than the width of the same characters
when measured together as a single run.
The fix is to use wrapW only as an upper bound, and once it overflows the line's width,
fall back on measuring everything from the beginning of the line as one run.
* rendering/bidi.cpp:
(WebCore::RenderBlock::findNextLineBreak): Implemented the above fix, including not measuring
additional single characters once wrapW overflows the line. Also moved the assignment
to breakNBSP out of the loop since it is constant for the entire text object, made breakWords and
midWordBreak update only when they might change, and cleaned up a few things.
2007-02-14 Antti Koivisto <antti@apple.com>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=11923
REGRESSION: Placeholder text in password field shows as bullets
<rdar://problem/4960257>
Disable textSecurity when placeholder is visible.
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::updatePlaceholder):
2007-02-13 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Mark Rowe.
http://bugs.webkit.org/show_bug.cgi?id=12763
REGRESSION: button title is displayed incorrectly at quotes.burntelectrons.org
Test: fast/parser/entities-in-attributes.xhtml
* dom/XMLTokenizer.cpp:
(WebCore::getEntityHandler): Set a correct type for the found entity (I'm not really
sure if XML_INTERNAL_GENERAL_ENTITY is _the_ correct one, but it fixes the problem).
2007-02-13 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- removed some bogus names (Hyatt smacked me since this doesn't fix a P1)
* dom/EventNames.h: Removed half-implemented khtmlDragdrop and khtmlMove
(you could add listeners, but nobody ever sent the events). Renamed the
other two khtml-prefixed internal event names to use the webkit prefix.
* bindings/js/kjs_dom.cpp:
(KJS::DOMEventTargetNode::getValueProperty): Removed ondragdrop and onmove.
(KJS::DOMEventTargetNode::putValueProperty): Ditto.
* bindings/js/kjs_dom.h:
* bindings/js/kjs_window.cpp:
(KJS::Window::getValueProperty): Ditto.
(KJS::Window::put): Ditto.
* bindings/js/kjs_window.h:
* dom/BeforeTextInsertedEvent.cpp:
(WebCore::BeforeTextInsertedEvent::BeforeTextInsertedEvent): Renamed to webkit.
* editing/Editor.cpp:
(WebCore::dispatchEditableContentChangedEvents): Ditto.
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::ReplacementFragment): Ditto.
* html/HTMLTextFieldInnerElement.cpp:
(WebCore::HTMLTextFieldInnerTextElement::defaultEventHandler): Ditto.
2007-02-13 Darin Adler <darin@apple.com>
Rubber stamped by Maciej.
* dom/EventNames.h: Resort names. Removed unused names.
2007-02-13 Anders Carlsson <acarlsson@apple.com>
Reviewed by Kevin Decker.
<rdar://problem/4990049>
http://bugs.webkit.org/show_bug.cgi?id=12718
REGRESSION: Segmentation fault when loading abc.go.com (12718)
The problem is that redirecting to about:blank causes the delegate to be released even though the load wasn't finished.
This is usally not a problem since NSURLConnection retains its delegate. However, the proxy delegate does not retain _it's_
delegate. The solution is to make releaseDelegate clear out the proxy delegate's delegate.
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::releaseDelegate):
If there's a proxy, nil out its delegate too.
2007-02-13 Dex Deacon <occupant4@gmail.com>
Reviewed by Darin.
- fix for http://bugs.webkit.org/show_bug.cgi?id=12750
Vector operator== was not defined correctly. It returned void,
did not accept const Vectors, and used an int instead of size_t.
* rendering/RenderStyle.h: Added a != operator for StyleDashboardRegion.
The only reason this compiled before was that the comparing two vectors
with a != was simply comparing the pointers.
2007-02-13 Darin Adler <darin@apple.com>
- roll out fix for <rdar://problem/4874059> REGRESSION: Painter IX:register -
Crash in WebCore:: ResourceLoader::willSendRequest()
This fix was causing a crash in at least one layout test.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopAllLoaders):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
2007-02-13 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12746
REGRESSION (r13853): List item's first line overflows containing div
Test: fast/lists/item-not-in-list-line-wrapping.html
* rendering/bidi.cpp:
(WebCore::RenderBlock::findNextLineBreak): Use the list marker's isInside()
instead of looking at its style()->listStylePosition(), since if the
list item is not in a list, the marker is inside regardless of the style.
2007-02-13 Rob Buis <buis@kde.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12578
WebKit incorrectly strokes zero-width/height rectangles
Create an empty path when encountering zero-width/height rectangles, similar to circles with zero radius.
* platform/graphics/Path.cpp:
(WebCore::Path::createRectangle):
2007-02-13 Rob Buis <buis@kde.org>
Reviewed by Maciej.
Remove SVGDOMImplementation from the project.
* CMakeLists.txt:
* WebCore.pro:
* ksvg2/svg/SVGDOMImplementation.cpp: Removed.
* ksvg2/svg/SVGDOMImplementation.h: Removed.
2007-02-13 Brady Eidson <beidson@apple.com>
Reviewed by Maciej and Adam
Fixes <rdar://problem/4985497> - Crash when opening a new window to "Same Page"
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadItem): Null check documentLoader() since if we're a brand new
WebView, cloning the history of another view, we have no documentLoader()
2007-02-12 Antti Koivisto <antti@apple.com>
Reviewed by Maciej.
-fix REGRESSION: <select disabled size="5"> listbox cannot be scrolled
http://bugs.webkit.org/show_bug.cgi?id=11852
<rdar://problem/4960129>
Pass mouse press events to scrollbars even if event is swallowed.
No layout test, DumpRenderTree eventSender can't hit scrollbars.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent):
2007-02-12 David Hyatt <hyatt@apple.com>
Fix for bug 12149 (Radar Bug#4928692), external CSS causes incomplete
text field focus.
Make sure to clear out the focus node in willRemove() rather than in
detach(), since detach/attach caused by style recalc should not affect
the focused node.
Reviewed by aroben
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::willRemove):
* dom/Document.cpp:
(WebCore::Document::focusedNodeRemoved):
(WebCore::Document::setFocusedNode):
* dom/Document.h:
* dom/Element.cpp:
(WebCore::Element::updateFocusAppearance):
* dom/Node.cpp:
(WebCore::Node::willRemove):
(WebCore::Node::detach):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateFocusAppearance):
2007-02-12 Kevin McCullough <kmccullough@apple.com>
- reverting fix for rdar://problem/4922454 because it caused regressions
and performance problems
* bindings/objc/DOM.mm:
(-[DOMElement image]):
(-[DOMElement _imageTIFFRepresentation]):
* dom/XMLTokenizer.cpp:
(WebCore::XMLTokenizer::notifyFinished):
* html/HTMLImageLoader.cpp:
(WebCore::HTMLImageLoader::dispatchLoadEvent):
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::reset):
(WebCore::HTMLTokenizer::notifyFinished):
* ksvg2/misc/SVGImageLoader.cpp:
(WebCore::SVGImageLoader::dispatchLoadEvent):
* loader/Cache.cpp:
(WebCore::Cache::requestResource):
(WebCore::Cache::remove):
* loader/CachedImage.h:
(WebCore::CachedImage::canRender):
(WebCore::CachedImage::isErrorImage):
* loader/CachedResource.h:
* loader/CachedScript.h:
(WebCore::CachedScript::errorOccurred):
* loader/DocLoader.cpp:
(WebCore::DocLoader::requestResource):
(WebCore::DocLoader::setLoadInProgress):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::canLoad):
* page/EventHandler.cpp:
(WebCore::selectCursor):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::image):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::setCachedImage):
(WebCore::RenderImage::imageChanged):
(WebCore::RenderImage::paint):
(WebCore::RenderImage::layout):
(WebCore::RenderImage::calcAspectRatioWidth):
(WebCore::RenderImage::calcAspectRatioHeight):
* rendering/RenderImage.h:
(WebCore::RenderImage::isErrorImage):
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::setStyle):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::isImage):
2007-02-12 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12123
REGRESSION: Incomplete repaint of floats' overflows
Tests: fast/repaint/float-overflow.html
fast/repaint/float-overflow-right.html
- fix http://bugs.webkit.org/show_bug.cgi?id=10116
REGRESSION: Menu item drawn 2 pixels short on WWDC 2006 Attendee Site
Reflected in existing test results.
Unified floats and overflow for the purposes of painting and hit-testing.
Overhanging and overflowing floats are now factored into a block's overflow
unless their painting has been propagated to an ancestor.
Changed table cells to no longer expand to enclose overflow, thus making
it purely "visual overflow", having no effect on layout in WebCore. It
still determines scrolling dimensions.
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::placeBoxesHorizontally): Include inline blocks'
horizontal overflow in the inline box's dimensions.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock): Removed the expand to enclose overflows
behavior. Added code to add this block's floats (and their overflow) to its
overflow rect if it is not in a block formatting context. Otherwise, the
inclusion of floats in the overflow is deferred until this block's parent
examines its floats and possibly adopts overhanging floats.
(WebCore::RenderBlock::layoutBlockChildren):
(WebCore::RenderBlock::paint):
(WebCore::RenderBlock::floatRect): Changed to return an empty rect if there
are no floats or the floats are clipped, instead of returning the border box.
(WebCore::RenderBlock::addOverhangingFloats): Any floats of the child that
are not to be painted by the parent are added to the child's overflow rect.
(WebCore::RenderBlock::addVisualOverflow): Added. Adjusts the overflow
bounds to include the given rect.
(WebCore::RenderBlock::nodeAtPoint):
* rendering/RenderBlock.h:
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
(WebCore::RenderFlexibleBox::layoutHorizontalBox): After placing a normal
child, add its floats to its overflow, since painting of floats does not
propagate to flexible boxes.
(WebCore::RenderFlexibleBox::layoutVerticalBox): Ditto.
* rendering/RenderForeignObject.cpp:
(WebCore::RenderForeignObject::layout):
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::layout):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::layout):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::absoluteBoundingBox):
* rendering/RenderLayer.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::repaintAfterLayoutIfNeeded):
* rendering/RenderObject.h:
(WebCore::RenderObject::expandsToEncloseOverhangingFloats):
* rendering/RenderPath.cpp:
(WebCore::RenderPath::layout):
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::layout):
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::layout):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout):
* rendering/RenderTableCell.h:
(WebCore::RenderTableCell::expandsToEncloseOverhangingFloats):
2007-02-12 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12668
<rdar://problem/4893344> REGRESSION: underline not visible for the international
input inline hole in most text fields (12668)
- fix bug where overline and line-through were 1px lower than we intended
* platform/graphics/GraphicsContext.h: Removed unneeded y offset parameter.
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawLineForText): Removed bogus y offset and +1.
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawLineForText): Ditto.
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::drawLineForText): Ditto.
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::paintTextDecorations): Added the "+1" that used to be
inside drawLineForText to the underline-drawing code. Changed the other callers
of drawLineForText to include the y offset in the y coordinate.
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintDecoration): Ditto. Also renamed _tx and _ty to
remove the gratuitious underscores.
(WebCore::InlineTextBox::paintMarkedTextUnderline): Made the default thickness
be 1px instead of 0 (which ends up being roughly 1px in the CG code path anyway).
Fixed the code computing the position to put the underline at the bottom of the
line (different from regular underlines which are put 1px under the baseline).
The old code used to put the underline 1px further down in the thick case, and
2px further down in the non-thick case. Both of those are bad, because they
could be completely clipped out in many cases.
2007-02-12 Anders Carlsson <acarlsson@apple.com>
Reviewed by Darin.
<rdar://problem/4846962>
Aperture: Aperture 1.5 - DOM exception occurs when exporting a web gallery
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::replaceChild):
Call checkReplaceChild here.
* dom/Document.cpp:
(WebCore::Document::canReplaceChild):
* dom/Document.h:
Add implementation of canReplaceChild that makes sure that doing the replacement won't cause
more than one element and document type node to end up in the document.
* dom/Node.cpp:
(WebCore::Node::canReplaceChild):
Base implementation of canReplaceChild.
(WebCore::Node::checkReplaceChild):
New function that does what checAddChild does but calls canReplaceChild.
2007-02-12 Kevin Decker <kdecker@apple.com>
Reviewed by Anders.
Fixed: <rdar://problem/4874059> REGRESSION: Painter IX:register - Crash in WebCore:: ResourceLoader::willSendRequest()
What happened here was that a WebDataSource was being dealloced *while* a load for that resource is still in progress.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopAllLoaders): Calling stopAllLoaders cancels loads and informs the frame load delegate accordingly.
The delegate however may decide to kick off a new provisional load as the result of the cancel. Therefore a local variable
for the provisional and main doucment loader is introduced, and we now only nil out the provisional loader if the local and
member provisional variables represent the exact same load.
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy): Added the same check here, too.
2007-02-12 Lars Knoll <lars@trolltech.com>
Reviewed by Mitz.
Do not create child renderers for table column groups
if the child has not a table column display type.
* dom/Node.cpp:
(WebCore::Node::createRendererIfNeeded):
* rendering/RenderObject.h:
(WebCore::RenderObject::isChildAllowed):
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::isChildAllowed):
* rendering/RenderTableCol.h:
2007-02-12 Antti Koivisto <antti@apple.com>
Reviewed by Mitz
Fix assertion failure in layout test.
* html/HTMLMapElement.cpp:
(WebCore::HTMLMapElement::parseMappedAttribute):
2007-02-12 Kevin McCulough <kmccullough@apple.com>
Reviewed by Brady.
- Fixing a performance regression caused by r19500. The heart of the matter
is that we now call canLoad on every resource request even ones in the cache,
to avoid a security issue. So I could not take out the canLoad call, but I
but I could try to make it more efficient.
* loader/DocLoader.cpp:
(WebCore::DocLoader::requestResource):
(WebCore::DocLoader::setLoadInProgress):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::canLoad):
2007-02-12 Darin Adler <darin@apple.com>
Reviewed by Oliver.
- fix http://bugs.webkit.org/show_bug.cgi?id=12677
<rdar://problem/4759563> REGRESSION: Return key is always sent when you confirm
a clause in kotoeri (12677)
- fix http://bugs.webkit.org/show_bug.cgi?id=12596
<rdar://problem/4794346> REGRESSION: Tab key shifts form field focus instead of
navigating prediction window (12596)
- fix http://bugs.webkit.org/show_bug.cgi?id=10010
<rdar://problem/4822935> REGRESSION: Pressing Return with unconfirmed text in
Hangul inserts carriage return (10010)
- fix http://bugs.webkit.org/show_bug.cgi?id=12531
<rdar://problem/4975126> REGRESSION: Inline text input types repeated keys in
latest nightly (r19336) (12531)
- fix http://bugs.webkit.org/show_bug.cgi?id=12539
<rdar://problem/4975130> REGRESSION: Pressing Backspace while in inline input
area moves to the previous page in history (12539)
This area still needs work because keypress events are being sent for all the
events before they go to the input methods, and it seems that this is not
compatible with what other browsers do and with what sites assume. That's covered
by this bug:
http://bugs.webkit.org/show_bug.cgi?id=10871
<rdar://problem/4823129> REGRESSION: IME key events different in nightly (10871)
which is still open.
* bindings/objc/ExceptionHandlers.h: Remove selectRange helper that doesn't really
belong here, and also isn't needed since the callers don't want to raise ObjC
exceptions.
* bindings/objc/ExceptionHandlers.mm: Ditto. Also removed unneeded external globals
that aren't exported anyway and unneeded includes.
* bridge/EditorClient.h: Added Mac-specific function, markedTextAbandoned. Long term
this might move into platform instead, but it's fine to have it on the client for now
as long as it doesn't cause trouble for platforms other than Mac.
* dom/EventTargetNode.cpp: (WebCore::EventTargetNode::defaultEventHandler): Since
all the event handling code in this function is intended to run on the node itself,
not parent nodes, check and do nothing if this event is bubbling up from another
node. Added code to call a function on EventHandler for default handling of text
input events.
* dom/KeyboardEvent.h:
* dom/KeyboardEvent.cpp: (WebCore::findKeyboardEvent): Added. Just like the
findUIEventWithKeyState function, but specific to keyboard events.
* dom/TextEvent.h: Added isLineBreak and isBackTab flags so that we can carry
additional information about what a text input event is trying to do, but still
go through the DOM event machinery.
* dom/TextEvent.cpp: Ditto.
* editing/Editor.h:
* editing/Editor.cpp:
(WebCore::Editor::handleKeyPress): Removed unneeded check of isCaretOrRange, since
isContentEditable already checks that.
(WebCore::Editor::canEdit): Ditto.
(WebCore::Editor::canEditRichly): Ditto.
(WebCore::Editor::canPaste): Changed to call canEdit for brevity.
(WebCore::Editor::replaceSelectionWithText): Changed to take a const String&.
(WebCore::Editor::shouldInsertText): Ditto.
(WebCore::hasEditableSelection): Removed unneeded check of isCaretOrRange, since
isContentEditable already checks that.
(WebCore::Editor::Editor): Initialize the new m_ignoreMarkedTextSelectionChange
flag. Moved here from WebHTMLView.
(WebCore::Editor::insertText): Moved most of the code from -[WebHTMLView insertText:]
here, since this needs to be done in response to a text input event and we don't want
to go back over the WebKit side for that.
(WebCore::Editor::insertLineBreak): Added. Moved here from -[WebHTMLView insertLineBreak:]
for the same reason -- needs to be done in response to text input events.
(WebCore::Editor::insertParagraphSeparator): Ditto.
(WebCore::Editor::selectMarkedText): Added. Used by insertText.
(WebCore::Editor::discardMarkedText): Added. Used by insertText.
(WebCore::Editor::unmarkText): Added. Used by insertText.
* editing/mac/EditorMac.mm:
(WebCore::Editor::unmarkText): Added. Used by insertText.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::canHaveSelection): Changed to use isTextField to avoid repeating
the switch statement.
(WebCore::HTMLInputElement::selectionStart): Ditto.
(WebCore::HTMLInputElement::selectionEnd): Ditto.
(WebCore::HTMLInputElement::setSelectionStart): Ditto.
(WebCore::HTMLInputElement::setSelectionEnd): Ditto.
(WebCore::HTMLInputElement::select): Ditto.
(WebCore::HTMLInputElement::setSelectionRange): Ditto.
(WebCore::HTMLInputElement::createRenderer): Resorted cases alphaebtically.
(WebCore::HTMLInputElement::defaultEventHandler): Added code to make hitting return cause the
form to be submitted when it comes through as a text input event. This is now the normal case
on Macintosh, because enter key presses normally turn into this. In addition, change the other
event handling to run only after trying the base defaultEventHandler. That makes the key
handling done in EventTargetNode take precedence over the event handling here for editable text
fields, which is what we want. This gets rid of the need for the hack where we check
inputManagerHasMarkedText and suppress the handling of the enter key.
* page/EventHandler.h: Removed unneeded includes. Moved EventHandlerDragState down into the
private part of the class. Changed sendContextMenuEvent to take a const&. Added new
handleTextInputEvent and defaultTextInputEventHandler functions. Made eventLoopHandleMouseUp
and eventLoopHandleMouseDragged private. Added private defaultTabEventHandler function.
* page/EventHandler.cpp:
(WebCore::EventHandler::sendContextMenuEvent): Changed parameter to be a const&.
(WebCore::EventHandler::defaultKeyboardEventHandler): Rearranged things so that the key bindings
handling in handleKeyPress comes before special tab event handling. In cases where the tab turns
into text to insert, we now handle it in the text input event handler.
(WebCore::EventHandler::handleTextInputEvent): Added. Creates and dispatches a text input event.
(WebCore::EventHandler::defaultTextInputEventHandler): Added. Inserts text, but has special cases
for the tab and newline character cases.
(WebCore::EventHandler::defaultTabEventHandler): Added. Shared by the tab-handling code in
the keyboard event and text input event handlers.
* page/mac/EventHandlerMac.mm: Tweak formatting, remove some unused functions.
* page/FocusController.h: Removed unnneded includes and forwards, and added an overload of
advanceFocus that takes a FocusDirection parameter.
* page/FocusController.cpp: (WebCore::FocusController::advanceFocus): Changed to allow a 0 for
the event pointer. Also added a version where the direction is passed explicitly, to be used
for cases where we want to tab backward even if the event doesn't have a shift modifier key set.
* platform/graphics/svg/SVGImageEmptyClients.h: Updated for change to EditorClient.
This should really probably just use 0 for the EditorClient.
* WebCore.exp: Update both for newly used and no-longer-used entry points.
* page/mac/WebCoreFrameBridge.h:
* page/mac/WebCoreFrameBridge.mm: Removed two unused methods.
2007-02-12 Antti Koivisto <antti@apple.com>
Reviewed by Darin.
- fixed Imagemap not clickable in www.toptenbooks.net/
http://bugs.webkit.org/show_bug.cgi?id=12738
Make imagemap names case insensitive in HTML mode
* dom/Document.cpp:
(WebCore::Document::getImageMap):
* html/HTMLMapElement.cpp:
(WebCore::HTMLMapElement::parseMappedAttribute):
2007-02-12 Maciej Stachowiak <mjs@apple.com>
Reviewed by Antti.
- fixed <rdar://problem/4928675> REGRESSION: Crash in CGBlt_copyBytes under WebCore::Font::drawGlyphs (12083)
http://bugs.webkit.org/show_bug.cgi?id=12083
Test: fast/text/text-shadow-extreme-value.html
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::setShadow): Clamp shadow value to 1000px, anything more seems to
make CG unhappy.
2007-02-11 Brady Eidson <beidson@apple.com>
Reviewed by Maciej.
First in what will be a series of HistoryItem enhancements to help debugging
* history/HistoryItem.cpp:
(WebCore::HistoryItem::showTree):
(WebCore::HistoryItem::showTreeWithIndent):
(showTree): Outside of WebCore namespace, and extern "C" - to make even the
DWARF debugger able to find it... *sigh*
* history/HistoryItem.h:
2007-02-11 Eric Seidel <eric@webkit.org>
Reviewed by Anders.
- fixed <rdar://problem/4975133> ASSERT failure and crash right-clicking on image in SVG use test
http://bugs.webkit.org/show_bug.cgi?id=12580
Test: svg/cust/use-events-crash.svg
* bindings/js/kjs_dom.cpp:
(KJS::toJS):
* ksvg2/svg/SVGElementInstance.cpp:
(WebCore::SVGElementInstance::toNode):
* ksvg2/svg/SVGElementInstance.h:
2007-02-11 Mitz Pettel <mitz@webkit.org>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=10144
REGRESSION: Reproducible assertion failure in DeleteSelectionCommand::fixupWhitespace()
Test: fast/text/delete-hard-break-character.html
The bug was caused by not updating a line whose line break object and offset
has been deleted. When deleting text, all lines containing the deleted text
are marked dirty. However, if the first character being deleted is a newline
which serves as a hard line break for the previous line, then that line will
not be marked, and since it will be a clean line ending with a line break,
relayout will begin at the next line. The fix is to check for this when
determining where to relayout from.
* rendering/bidi.cpp:
(WebCore::RenderBlock::determineStartPosition): Changed the condition for
including the last clean line in relayout to include the case where the
last clean line ends with a line break, but that line break is a newline that
has been deleted.
2007-02-12 Antti Koivisto <antti@apple.com>
Reviewed by Maciej.
REGRESSION: Google Calendar cell highlight misplaced
http://bugs.webkit.org/show_bug.cgi?id=12687
Make offsetLeft/offsetTop/offsetParent behavior match Firefox.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::offsetLeft):
(WebCore::RenderObject::offsetTop):
(WebCore::RenderObject::offsetParent):
2007-02-10 Antti Koivisto <antti@apple.com>
Reviewed by Maciej.
- fixed REGRESSION: No day/week scrollbar in Google Calendar
http://bugs.webkit.org/show_bug.cgi?id=11985
Make sure overflow:auto scrollbars are always enabled. If they were overflow:scroll
and dynamically changed to auto they might still be disabled.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateScrollInfoAfterLayout):
2007-02-11 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Hyatt.
http://bugs.webkit.org/show_bug.cgi?id=12581
XPath //title shouldn't match <title> in XHTML
Test: fast/xpath/ensure-null-namespace.xhtml
* xml/XPathStep.cpp:
(WebCore::XPath::Step::nodeTestMatches): Only let a null namespace match any for HTML.
2007-02-10 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Adam.
http://bugs.webkit.org/show_bug.cgi?id=12701
REGRESSION: After javascript, onChange not triggered when selecting same option
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::setSelectedIndex): Remember m_lastOnChangeIndex value,
as it can change from setSelected() now.
(WebCore::HTMLSelectElement::notifyOptionSelected): Update m_lastOnChangeIndex.
* manual-tests/select-onchange-after-js.html: Added. Also tests for bug 11402.
2007-02-10 David Carson <dacarson@gmail.com>`
Reviewed by Maciej.
Manual tests for http://bugs.webkit.org/show_bug.cgi?id=12636
Call different Java methods that take a variety of Array parameters
from Javascript, passing a Javascript array.
* manual-tests/liveconnect-applet-array-parameters.html: Added.
* manual-tests/resources/ArrayParameterTestApplet.class: Added.
* manual-tests/resources/ArrayParameterTestApplet.java: Added.
2007-02-10 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12724
Crash when enumerating XPath namespace axis
* xml/XPathStep.cpp:
(WebCore::XPath::Step::nodesInAxis): Namespace axis enumeration was broken in that it crashed, and also in that
it returned attribute nodes instead of XPath namespace ones. Removed it altogether.
2007-02-10 Mitz Pettel <mitz@webkit.org>
Reviewed by Adam.
- fix http://bugs.webkit.org/show_bug.cgi?id=12565
ASSERTION failure on some declarative animations <rdar://problem/4975132>
* ksvg2/svg/SVGAnimationElement.cpp:
(WebCore::parseValues): Changed the string length math to avoid truncating
the last character of each value.
* manual-tests/svg-animation-parseValues.svg: Added.
2007-02-10 Mitz Pettel <mitz@webkit.org>
Reviewed by Adam.
- fix http://bugs.webkit.org/show_bug.cgi?id=11621
REGRESSION (Native slider): slider thumb not updated when the mouse is dragged/released out of range
No automated test case because dumping the render tree updates layer positions anyway.
* manual-tests/slider-thumb-tracking.html: Added.
* rendering/RenderSlider.cpp:
(WebCore::RenderSlider::setCurrentPosition): Added call to updateLayerPosition()
for the thumb's layer.
2007-02-09 Brady Eidson <beidson@apple.com>
Reviewed by Maciej
<rdar://problem/4965133> WebKit sends file:// url referrers
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::create): In SubresourceLoader::create(), we make a copy of the original request
to use for the load. We then call FrameLoader::canLoad() which tells us if we should hide the referer. Before
this fix if it said to hide the referrer, we would simply not apply a new referrer to our copy of the request.
But if the original request already had a referrer, so did our copy. We simply have to clear the referrer from
the copied request.
2007-02-10 Maciej Stachowiak <mjs@apple.com>
Reviewed by me, patch from Ian Eng (cleaned up by me some).
- fixed <rdar://problem/4988091> objects attached to Window not cleared (memory leak)
Test case: fast/dom/Window/window-appendages-cleared.html
* bindings/js/kjs_window.cpp:
(KJS::Window::clearHelperObjectProperties):
(KJS::Window::clear):
* bindings/js/kjs_window.h:
2007-02-09 Brady Eidson <beidson@apple.com>
Reviewed by Tim Hatcher
<rdar://problem/4985497> - Plugs a potential null DocumentLoader deref when
transitioning out of the Bookmarks View
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::recursiveGoToItem): add a null check
2007-02-09 Beth Dakin <bdakin@apple.com>
Rubber-stamped by John . . . and Adam.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected): Missing
break.
2007-02-09 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/4975120>
REGRESSION: double-cursor after switching window away/back (11770)
<http://bugs.webkit.org/show_bug.cgi?id=11328>
Gmail Editor: Caret can simultaneously appear in both the TO: and message body fields
* page/mac/WebCoreFrameBridge.h: Removed two unused methods
left over from the old form control implementation.
2007-02-09 John Sullivan <sullivan@apple.com>
* rendering/bidi.cpp:
(WebCore::bidiNext):
At Darin's suggestion, moved the "next = 0" line from my previous patch to the start of the loop body
2007-02-09 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/4960116>
REGRESSION: Nightly Safari crashes in WebCore::SelectionController::xPosForVerticalArrowNavigation (12416)
* editing/SelectionController.cpp:
(WebCore::SelectionController::xPosForVerticalArrowNavigation):
Null check. VisiblePosition creation can fail if a node that
contains the selection was made invisible after the selection
was made and before this function is called during a selection
modification operation.
2007-02-09 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/4983858>
REGRESSION: In a new mail message, attempting to select a single word causes the selection to extend to the previous line
* editing/TextIterator.cpp:
(WebCore::SimplifiedBackwardsTextIterator::exitNode):
We recently split shouldEmitNewlineForNode into
shouldEmitNewline{Before, After}Node, so this function now
needs an implementation that is different from
SimplifiedBackwardsTextIterator::handleNonTextNode. The
difference is that we must call shouldEmit*BeforeNode
instead of shouldEmit*AfterNode since we are a) exiting
nodes and b) moving backward.
2007-02-09 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/4916541>
Some of the selection isn't preserved during an Indent opreration
* editing/IndentOutdentCommand.cpp:
(WebCore::indexForVisiblePosition): Added.
(WebCore::IndentOutdentCommand::indentRegion): Use rangeLength
and rangeFromLocationAndLength to restore the selection after
the repeated moveParagraph calls necessary to perform indent are
finished.
2007-02-09 John Sullivan <sullivan@apple.com>
Reviewed by Kevin Decker
- fixed <rdar://problem/4960095> REPRODUCIBLE HANG: WebKit freezes when printing as PDF
a certain kind of code (12449)
No test case because I don't know how to make the bug occur without printing.
* rendering/bidi.cpp:
(WebCore::bidiNext):
reset loop's "next" variable after using it; we were setting "current" to the same value
of "next" each subsequent time through the loop, which is not helpful.
2007-02-09 Darin Adler <darin@apple.com>
Reviewed by Adele.
- Add TextEvent to the DOM (based on the proposed DOM level 3)
to be used to fix some international input bugs soon.
At this point, we don't send any text events.
- Remove some obsolete files.
* CMakeLists.txt:
* WebCore.pro:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
Add new files, remove obsolete files.
* DerivedSources.make: Add TextEvent to the Objective-C and JavaScript bindings lists.
* WebCore.exp: Export DOMTextEvent Objective-C wrapper.
* bindings/js/kjs_events.cpp: (KJS::toJS): Added TextEvent to the list of Event subclasses
so we make the right kind of JS wrapper.
* bindings/objc/DOMEvents.mm: (+[DOMEvent _eventWith:]): Same thing, for Objective-C.
* bindings/objc/DOMInternal.h: Added DOMTextEventInternal.h.
* dom/DOMImplementation.cpp: (WebCore::DOMImplementation::hasFeature):
Added "TextEvents", "3.0" to the list of things we'll answer true for
(as specified in the DOM Level 3 documentation).
This isn't so great until we actually send textInput events, but that's coming soon.
* dom/Document.cpp: (WebCore::Document::createEvent): Add "TextEvent" as a way to make
a TextEvent (as specified in the DOM Level 3 documentation).
* dom/Event.h:
* dom/Event.cpp: (WebCore::Event::isTextEvent): Added virtual function to be used
for runtime type checking of Event objects (as for other event types).
* dom/TextEvent.cpp: Added.
* dom/TextEvent.h: Added.
* dom/TextEvent.idl: Added.
* platform/mac/WebCoreWidgetHolder.h: Removed.
* rendering/CounterListItem.h: Removed.
* rendering/CounterResetNode.cpp: Removed.
* rendering/CounterResetNode.h: Removed.
2007-02-09 Anders Carlsson <acarlsson@apple.com>
Reviewed by Geoff.
<rdar://problem/4816376>
REGRESSION: NetNewsWire 3.0 - Crashes in WebDocumentLoaderMac::attachToFrame() (12674)
The bug was that the NNW policy delegate never calls back on the policy listener so we'll try to do a load
while there's a policy decision underway. The extra call to setPolicyDocumentLoader would cause a detached (and deallocated)
WebDataSource to be reattached and thus causing a crash.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::load):
Remove extra call to setPolicyDocumentLoader.
2007-02-09 Beth Dakin <bdakin@apple.com>
Reviewed by Darin.
Fix for <rdar://problem/4674537> REGRESSION: Adobe Acrobat 8 - Text
blinks when mouse is moved, and is invisible otherwise
Acrobat 8 was relying on a WebKit bug that was fixed about a year
ago with r12753. The bug was that we would not reload a page if the
source of an iframe was set to the same value it already was. Now
that we have fixed the bug, Acrobat constantly reloads their EULA,
making it blinky and impossible to read.
No layout test since the fix is to add an Acrobat-specific quirk.
* WebCore.exp:
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::setLocation): If the new url is the
same as the old one and we are honoring the Acrobat quirk, don't do
anything.
* page/Settings.cpp:
(WebCore::Settings::Settings):
(WebCore::Settings::setNeedsAcrobatFrameReloadingQuirk):
* page/Settings.h:
(WebCore::Settings::needsAcrobatFrameReloadingQuirk):
2007-02-09 Brady Eidson <beidson@apple.com>
Rubberstamped by Dave Harrison
Disable the thread-check assertion in WebCore, as well as Webkit
* WebCore.xcodeproj/project.pbxproj:
2007-02-08 Anders Carlsson <acarlsson@apple.com>
Reviewed by Geoff.
No need to pause timeout checks anymore.
* bindings/js/kjs_window.cpp:
(KJS::WindowFunc::callAsFunction):
2007-02-09 John Sullivan <sullivan@apple.com>
Reviewed by Beth
- WebCore part of fix for radar 4939636, problems with context menu items and binaries linked
against WebKit 2.0.
* platform/ContextMenuItem.h:
(WebCore::):
Tweaked comment; bumped enum value for new SPI tags to avoid conflict with pre-3.0 SPI tag values.
2007-02-09 Nicholas Shanks <webkit@nickshanks.com>
Reviewed by Dave Hyatt.
Removed broken recognition of :last-* and :only-* selectors
* css/CSSGrammar.y:
* css/CSSSelector.cpp:
(WebCore::CSSSelector::extractPseudoType):
* css/CSSSelector.h:
(WebCore::CSSSelector::):
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::checkOneSelector):
2007-02-09 Maciej Stachowiak <mjs@apple.com>
Reviewed by Mark.
<rdar://problem/4980176>
* page/Frame.cpp:
(WebCore::Frame::pageDestroyed): Since this frame is getting
disconnected from its page, ensure it is not the focus node.
2007-02-09 Krzysztof <kkowalczyk@gmail.com>
Reviewed by Maciej.
gdklauncher crashes when compiled with NDEBUG defined.
* Projects/gdk/webcore-gdk.bkl:
2007-02-09 Maciej Stachowiak <mjs@apple.com>
Reviewed by Mitz.
<rdar://problem/4971224> REGRESSION: ASSERT in WebCore with Mail (12491)
http://bugs.webkit.org/show_bug.cgi?id=12491
No test case. Not testable since there is no way to do substitute
data loads from layout tests.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::continueAfterContentPolicy): Don't dispatch data load
callback when loading empty data.
2007-02-09 Mark Rowe <mrowe@apple.com>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12705
REGRESSION: Crash with user stylesheet set
Allow the Frame::canLoad check to skipped so that user stylesheets can be loaded in remote documents.
* ChangeLog:
* loader/DocLoader.cpp:
(WebCore::DocLoader::requestCSSStyleSheet): Skip canLoad check if this is a user stylesheet.
(WebCore::DocLoader::requestUserCSSStyleSheet):
(WebCore::DocLoader::requestResource): Allow canLoad check to be skipped.
* loader/DocLoader.h:
* page/Frame.cpp:
(WebCore::UserStyleSheetLoader::UserStyleSheetLoader):
2007-02-08 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Darin.
Linux/gdk build fixes.
* Projects/gdk/webcore-gdk.bkl: Account for file renaming.
* platform/gdk/KeyEventGdk.cpp: Make gdk's tab key recognized as tab so that
keyboard link walking works on gdk.
(WebCore::keyIdentifierForGdkKeyCode):
2007-02-08 Adele Peterson <adele@apple.com>
Reviewed by Brady.
Fix for http://bugs.webkit.org/show_bug.cgi?id=12599
<rdar://problem/4973507> REGRESSION: When replying in Gmail, the caret disappears when you start to type (12599)
When a frame's window was focused, the page didn't get updated about the new frame getting focus.
This was causing handleKeyPress to fail because it kept getting a selection for the wrong frame (which wasn't editable).
Test: fast/frames/iframe-window-focus.html
* page/Frame.cpp:
(WebCore::Frame::focusWindow):
(WebCore::Frame::unfocusWindow):
* page/Frame.h:
* page/mac/FrameMac.mm:
(WebCore::FrameMac::focusWindow):
(WebCore::FrameMac::unfocusWindow):
2007-02-08 Adele Peterson <adele@apple.com>
Reviewed by Brady.
Fix for http://bugs.webkit.org/show_bug.cgi?id=12480
<rdar://problem/4971222> REGRESSION (NativeListBox): Deselecting option causes list to jump to top
Test: fast/forms/listbox-deselect-scroll.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::activeSelectionStartListIndex): Added. Returns the index for the active selection. If there is no active selection,
it returns the first selected index.
(WebCore::HTMLSelectElement::activeSelectionEndListIndex): Added. If there is no active selection, it returns the last selected index.
* html/HTMLSelectElement.h:
* rendering/RenderListBox.cpp: (WebCore::RenderListBox::scrollToRevealSelection): Instead of using the first and last selected indices,
use the active selection indices to determine which item to reveal. This way, when you're selecting with the keyboard, or the mouse,
no unnecessary scrolling will occur if the end of your active selection is already visible.
2007-02-08 Adele Peterson <adele@apple.com>
Reviewed by Hyatt.
Fix for <rdar://problem/4963411> Items of SELECT element are incorrectly highlighted when display:block is set
Test: fast/forms/select-block-background.html
* rendering/RenderListBox.cpp: (WebCore::RenderListBox::paintObject):
Paint the item backgrounds during the PaintPhaseChildBlockBackground or PaintPhaseChildBlockBackgrounds phase.
2007-02-08 Mitz Pettel <mitz@webkit.org>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=11047
REGRESSION: Empty options cause the entire select to collapse
Test: fast/forms/select-empty-option-height.html
- fix http://bugs.webkit.org/show_bug.cgi?id=10783
REGRESSION (r16044): Clicking a popup changes layout around it
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::setText): If the option text is empty, use a RenderBR
as inner text, to ensure that the inner div has line height.
2007-02-08 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
Added a hard counter for SubresourceLoaders because the leaks tool now
ignores them.
* loader/SubresourceLoader.cpp:
(WebCore::):
(WebCore::SubresourceLoaderCounter::~SubresourceLoaderCounter):
(WebCore::SubresourceLoader::SubresourceLoader):
(WebCore::SubresourceLoader::~SubresourceLoader):
* page/Frame.cpp: Removed unnecessary #define
2007-02-08 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
Fixed <rdar://problem/4982374> CSSComputedStyleDeclaration::getPropertyCSSValue
leak reported by buildbot
The leak was a typo: "new" instead of "return new". I also generously
deployed RefPtr in places that were holding ref-counted objects in
bare pointers.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForShadow):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2007-02-08 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Linux/gdk build fixes.
* platform/gdk/EditorClientGdk.cpp: Added. Based on qt version.
(WebCore::EditorClientGdk::shouldDeleteRange):
(WebCore::EditorClientGdk::shouldShowDeleteInterface):
(WebCore::EditorClientGdk::isContinuousSpellCheckingEnabled):
(WebCore::EditorClientGdk::isGrammarCheckingEnabled):
(WebCore::EditorClientGdk::spellCheckerDocumentTag):
(WebCore::EditorClientGdk::shouldBeginEditing):
(WebCore::EditorClientGdk::shouldEndEditing):
(WebCore::EditorClientGdk::shouldInsertText):
(WebCore::EditorClientGdk::shouldApplyStyle):
(WebCore::EditorClientGdk::didBeginEditing):
(WebCore::EditorClientGdk::respondToChangedContents):
(WebCore::EditorClientGdk::didEndEditing):
(WebCore::EditorClientGdk::didWriteSelectionToPasteboard):
(WebCore::EditorClientGdk::didSetSelectionTypesForPasteboard):
(WebCore::EditorClientGdk::selectWordBeforeMenuEvent):
(WebCore::EditorClientGdk::isEditable):
(WebCore::EditorClientGdk::registerCommandForUndo):
(WebCore::EditorClientGdk::registerCommandForRedo):
(WebCore::EditorClientGdk::clearUndoRedoOperations):
(WebCore::EditorClientGdk::canUndo):
(WebCore::EditorClientGdk::canRedo):
(WebCore::EditorClientGdk::undo):
(WebCore::EditorClientGdk::redo):
(WebCore::EditorClientGdk::shouldInsertNode):
(WebCore::EditorClientGdk::pageDestroyed):
(WebCore::EditorClientGdk::smartInsertDeleteEnabled):
(WebCore::EditorClientGdk::toggleContinuousSpellChecking):
(WebCore::EditorClientGdk::toggleGrammarChecking):
(WebCore::EditorClientGdk::handleKeyPress):
(WebCore::EditorClientGdk::EditorClientGdk):
(WebCore::EditorClientGdk::setPage):
* platform/gdk/EditorClientGdk.h: Added. Ditto.
* platform/gdk/FrameGdk.cpp: Add exitAfterLoading and dumpRenderTreeAfterLoading
as small debugging features. Remove FrameGdkClient as no other platform has Frame*Client
anymore. Adjust for new APIs.
(WebCore::FrameGdk::FrameGdk):
(WebCore::FrameGdk::onDidFinishLoad):
(WebCore::FrameGdk::dumpRenderTree):
(WebCore::FrameGdk::keyPress):
(WebCore::FrameGdk::handleGdkEvent):
(WebCore::FrameGdk::focusWindow):
(WebCore::FrameGdk::unfocusWindow):
(WebCore::FrameGdk::getObjectInstanceForWidget):
(WebCore::FrameGdk::getEmbedInstanceForWidget):
(WebCore::FrameGdk::bindingRootObject):
(WebCore::FrameGdk::print):
(WebCore::FrameGdk::getAppletInstanceForWidget):
(WebCore::FrameGdk::issueCutCommand):
(WebCore::FrameGdk::issueCopyCommand):
(WebCore::FrameGdk::issuePasteCommand):
(WebCore::FrameGdk::issueTransposeCommand):
(WebCore::FrameGdk::issuePasteAndMatchStyleCommand):
(WebCore::FrameGdk::markedTextRange):
(WebCore::FrameGdk::shouldChangeSelection):
(WebCore::FrameGdk::respondToChangedSelection):
(WebCore::FrameGdk::mimeTypeForFileName):
* platform/gdk/FrameGdk.h: Ditto.
(WebCore::FrameGdk::setExitAfterLoading):
(WebCore::FrameGdk::exitAfterLoading):
(WebCore::FrameGdk::setDumpRenderTreeAfterLoading):
(WebCore::FrameGdk::dumpRenderTreeAfterLoading):
(WebCore::GdkFrame):
* platform/gdk/TemporaryLinkStubs.cpp: Adjust to new APIs. Small cleanups.
(FrameView::updateBorder):
(Widget::setEnabled):
(Widget::isEnabled):
(Widget::enableFlushDrawing):
(Widget::removeFromParent):
(Widget::paint):
(Widget::setIsSelected):
(Widget::invalidate):
(Widget::invalidateRect):
(PlatformMouseEvent::PlatformMouseEvent):
(WebCore::findWordBoundary):
(ChromeClientGdk::chromeDestroyed):
(ChromeClientGdk::closeWindowSoon):
(ChromeClientGdk::canTakeFocus):
(ChromeClientGdk::takeFocus):
(ChromeClientGdk::canRunBeforeUnloadConfirmPanel):
(ChromeClientGdk::addMessageToConsole):
(ChromeClientGdk::runBeforeUnloadConfirmPanel):
(ChromeClientGdk::runJavaScriptAlert):
(ChromeClientGdk::runJavaScriptConfirm):
(ChromeClientGdk::runJavaScriptPrompt):
(ChromeClientGdk::setStatusbarText):
(ChromeClientGdk::shouldInterruptJavaScript):
(WebCore::inputElementAltText):
(WebCore::resetButtonDefaultLabel):
(WebCore::searchableIndexIntroduction):
(WebCore::fileButtonChooseFileLabel):
(WebCore::fileButtonNoFileSelectedLabel):
(WebCore::contextMenuItemTagOpenLinkInNewWindow):
(WebCore::contextMenuItemTagDownloadLinkToDisk):
(WebCore::contextMenuItemTagCopyLinkToClipboard):
(WebCore::contextMenuItemTagOpenImageInNewWindow):
(WebCore::contextMenuItemTagDownloadImageToDisk):
(WebCore::contextMenuItemTagCopyImageToClipboard):
(WebCore::contextMenuItemTagOpenFrameInNewWindow):
(WebCore::contextMenuItemTagCopy):
(WebCore::contextMenuItemTagGoBack):
(WebCore::contextMenuItemTagGoForward):
(WebCore::contextMenuItemTagStop):
(WebCore::contextMenuItemTagReload):
(WebCore::contextMenuItemTagCut):
(WebCore::contextMenuItemTagPaste):
(WebCore::contextMenuItemTagNoGuessesFound):
(WebCore::contextMenuItemTagIgnoreSpelling):
(WebCore::contextMenuItemTagLearnSpelling):
(WebCore::contextMenuItemTagSearchWeb):
(WebCore::contextMenuItemTagLookUpInDictionary):
(WebCore::contextMenuItemTagOpenLink):
(WebCore::contextMenuItemTagIgnoreGrammar):
(WebCore::contextMenuItemTagSpellingMenu):
(WebCore::contextMenuItemTagShowSpellingPanel):
(WebCore::contextMenuItemTagCheckSpelling):
(WebCore::contextMenuItemTagCheckSpellingWhileTyping):
(WebCore::contextMenuItemTagCheckGrammarWithSpelling):
(WebCore::contextMenuItemTagFontMenu):
(WebCore::contextMenuItemTagBold):
(WebCore::contextMenuItemTagItalic):
(WebCore::contextMenuItemTagUnderline):
(WebCore::contextMenuItemTagOutline):
(WebCore::contextMenuItemTagWritingDirectionMenu):
(WebCore::contextMenuItemTagDefaultDirection):
(WebCore::contextMenuItemTagLeftToRight):
(WebCore::contextMenuItemTagRightToLeft):
(PlugInInfoStore::createPluginInfoForPluginAtIndex):
(PlugInInfoStore::pluginCount):
(WebCore::PlugInInfoStore::supportsMIMEType):
(WebCore::refreshPlugins):
(SearchPopupMenu::saveRecentSearches):
(SearchPopupMenu::loadRecentSearches):
(SearchPopupMenu::SearchPopupMenu):
(Path::apply):
(PlatformScrollbar::PlatformScrollbar):
(PlatformScrollbar::~PlatformScrollbar):
(PlatformScrollbar::width):
(PlatformScrollbar::height):
(PlatformScrollbar::setEnabled):
(PlatformScrollbar::paint):
(PlatformScrollbar::updateThumbPosition):
(PlatformScrollbar::updateThumbProportion):
(PlatformScrollbar::setRect):
(ResourceHandle::willLoadFromCache):
(ResourceHandle::loadsBlocked):
(ResourceHandle::loadResourceSynchronously):
(PageCache::close):
(Editor::ignoreSpelling):
(Editor::learnSpelling):
(Editor::isSelectionUngrammatical):
(Editor::isSelectionMisspelled):
(Editor::guessesForMisspelledSelection):
(Editor::guessesForUngrammaticalSelection):
(Editor::markMisspellingsAfterTypingToPosition):
(Editor::newGeneralClipboard):
(Pasteboard::generalPasteboard):
(Pasteboard::writeSelection):
(Pasteboard::writeURL):
(Pasteboard::clear):
(Pasteboard::canSmartReplace):
(Pasteboard::documentFragment):
(Pasteboard::plainText):
(Pasteboard::Pasteboard):
(Pasteboard::~Pasteboard):
(ContextMenu::ContextMenu):
(ContextMenu::~ContextMenu):
(ContextMenu::appendItem):
(ContextMenu::setPlatformDescription):
(ContextMenu::platformDescription):
(ContextMenuItem::ContextMenuItem):
(ContextMenuItem::~ContextMenuItem):
(ContextMenuItem::releasePlatformDescription):
(ContextMenuItem::type):
(ContextMenuItem::setType):
(ContextMenuItem::action):
(ContextMenuItem::setAction):
(ContextMenuItem::title):
(ContextMenuItem::setTitle):
(ContextMenuItem::platformSubMenu):
(ContextMenuItem::setSubMenu):
(ContextMenuItem::setChecked):
(ContextMenuItem::setEnabled):
(WebCore::systemBeep):
(WebCore::userIdleTime):
2007-02-08 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Linux/gdk build fixes.
* platform/GlyphPageTreeNode.h: Fix header guard name.
* platform/gdk/ChromeClientGdk.h:
* platform/gdk/CursorGdk.cpp:
(WebCore::verticalTextCursor):
(WebCore::cellCursor):
(WebCore::contextMenuCursor):
(WebCore::noDropCursor):
(WebCore::copyCursor):
(WebCore::progressCursor):
(WebCore::aliasCursor):
* platform/gdk/MouseEventGdk.cpp:
(WebCore::PlatformMouseEvent::PlatformMouseEvent):
* platform/gdk/PageGdk.cpp: Removed. No longer used.
* platform/gdk/RenderThemeGdk.cpp:
(WebCore::RenderThemeGdk::getThemeData):
(WebCore::RenderThemeGdk::setCheckboxSize):
(WebCore::RenderThemeGdk::paintCheckbox):
(WebCore::RenderThemeGdk::setRadioSize):
(WebCore::RenderThemeGdk::paintRadio):
(WebCore::RenderThemeGdk::paintButton):
(WebCore::RenderThemeGdk::adjustTextFieldStyle):
(WebCore::RenderThemeGdk::paintTextField):
(WebCore::RenderThemeGdk::paintTextArea):
(WebCore::RenderThemeGdk::systemFont):
* platform/gdk/RenderThemeGdk.h:
* platform/gdk/ScreenGdk.cpp:
(WebCore::screenDepth):
(WebCore::screenDepthPerComponent):
(WebCore::screenIsMonochrome):
(WebCore::screenRect):
(WebCore::screenAvailableRect):
2007-02-08 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Linux/gdk build fixes for cairo.
* platform/graphics/GraphicsContext.cpp:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::strokeArc):
(WebCore::GraphicsContext::drawFocusRing):
(WebCore::GraphicsContext::setFocusRingClip):
(WebCore::GraphicsContext::clearFocusRingClip):
(WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
(WebCore::GraphicsContext::origin):
(WebCore::GraphicsContext::setPlatformFillColor):
(WebCore::GraphicsContext::setPlatformStrokeColor):
(WebCore::GraphicsContext::setPlatformStrokeThickness):
(WebCore::GraphicsContext::setPlatformStrokeStyle):
(WebCore::GraphicsContext::setPlatformFont):
(WebCore::GraphicsContext::setURLForRect):
(WebCore::GraphicsContext::addRoundedRectClip):
(WebCore::GraphicsContext::addInnerRoundedRectClip):
(WebCore::GraphicsContext::setShadow):
(WebCore::GraphicsContext::clearShadow):
(WebCore::GraphicsContext::beginTransparencyLayer):
(WebCore::GraphicsContext::endTransparencyLayer):
(WebCore::GraphicsContext::clearRect):
(WebCore::GraphicsContext::strokeRect):
(WebCore::GraphicsContext::setLineCap):
(WebCore::GraphicsContext::setLineJoin):
(WebCore::GraphicsContext::setMiterLimit):
(WebCore::GraphicsContext::setAlpha):
(WebCore::toCairoOperator):
(WebCore::GraphicsContext::setCompositeOperation):
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::rotate):
(WebCore::GraphicsContext::scale):
(WebCore::GraphicsContext::clipOut):
(WebCore::GraphicsContext::clipOutEllipseInRect):
(WebCore::GraphicsContext::fillRoundedRect):
2007-02-08 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Linux/gdk build fixes.
* Projects/gdk/webcore-gdk.bkl:
* WebCoreSources.bkl:
* webcore-base.bkl:
2007-02-08 Brady Eidson <beidson@apple.com>
Reviewed by Tim Hatcher
Tweaked the thread violation behavior to be disabled by default, and to provide
an easy breakpoint to set.
The possibilities for the "WebCoreThreadCheck" user defaults key are -
- The value "None" disables thread checking
- The value "Log" causes an NSLog on a violation
- The value "Exception" causes exceptions to be raised on a violation
* platform/Logging.h:
* platform/mac/LoggingMac.mm:
(WebCore::_WebCoreThreadViolationCheck):
(WebCoreReportThreadViolation): In the global namespace, making breakpoints cake!
2007-02-08 Brady Eidson <beidson@apple.com>
Reviewed by Tim Hatcher
<rdar://problem/4983515> Need mechanism to protect against WebKit calls from secondary threads
This initial landing is a conservative move until we can be certain of performance impact.
By writing to the user defaults key @"WebCoreThreadCheck" for the WebKit app you're running -
- The value "None" disables thread checking
- The value "Exception" causes exceptions to be raised on a violation
- The default is to do the check, and NSLog each violation
* bindings/objc/ExceptionHandlers.h: Add a "Is Main Thread" assert macro
* bindings/scripts/CodeGeneratorObjC.pm: Use new mechanism in allocs and deallocs for now
* platform/Logging.h: Added WebCoreThreadViolationCheck macro
* platform/mac/LoggingMac.mm:
(WebCore::_WebCoreThreadViolationCheck): Check for main-threadedness, and do some stuff
2007-02-08 Kevin McCullough <KMcCullough@apple.com>
Reviewed by Maciej, Darin, and Mark.
rdar://problem/4922454
- Prevents remote sites from executing local scripts.
* bindings/objc/DOM.mm: - renamed a function that is now in the base class
(-[DOMElement image]):
(-[DOMElement _imageTIFFRepresentation]):
* dom/XMLTokenizer.cpp: - removed needless asserts
(WebCore::XMLTokenizer::notifyFinished):
* html/HTMLImageLoader.cpp: - renamed a function that is now in the base class
(WebCore::HTMLImageLoader::dispatchLoadEvent):
* html/HTMLTokenizer.cpp: - removed needless asserts
(WebCore::HTMLTokenizer::reset):
(WebCore::HTMLTokenizer::notifyFinished):
* ksvg2/misc/SVGImageLoader.cpp: - renamed a function that is now in the base class
(WebCore::SVGImageLoader::dispatchLoadEvent):
* loader/Cache.cpp: - return early if an error occured
(WebCore::Cache::requestResource):
(WebCore::Cache::remove):
* loader/CachedImage.h: - renamed a function that is now in the base class
(WebCore::CachedImage::canRender):
* loader/CachedResource.h: - renamed a function that is now in the base class
(WebCore::CachedResource::errorOccurred):
* loader/CachedScript.h: - renamed a function that is now in the base class
(WebCore::CachedScript::schedule):
* loader/DocLoader.cpp: - The heart of the fix, prevents resources from being created or retrieved from the cache if a remote site is requesting the local resource.
(WebCore::DocLoader::requestResource):
(WebCore::DocLoader::setLoadInProgress):
* page/EventHandler.cpp: - renamed a function that is now in the base class
(WebCore::selectCursor):
* rendering/HitTestResult.cpp: - renamed a function that is now in the base class
(WebCore::HitTestResult::image):
* rendering/RenderImage.cpp: - renamed a function that is now in the base class
(WebCore::RenderImage::setCachedImage):
(WebCore::RenderImage::imageChanged):
(WebCore::RenderImage::paint):
(WebCore::RenderImage::layout):
(WebCore::RenderImage::calcAspectRatioWidth):
(WebCore::RenderImage::calcAspectRatioHeight):
* rendering/RenderImage.h: - renamed a function that is now in the base class
(WebCore::RenderImage::errorOccurred):
* rendering/RenderListItem.cpp: - renamed a function that is now in the base class
(WebCore::RenderListItem::setStyle):
* rendering/RenderListMarker.cpp: - renamed a function that is now in the base class
(WebCore::RenderListMarker::isImage):
2007-02-07 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Maciej.
Add updateGeometry() to gdk's ScrollView. Needed to fix resizing of the window
in gdk.
* platform/ScrollView.h:
* platform/gdk/ScrollViewGdk.cpp:
(WebCore::ScrollView::updateGeometry):
(WebCore::ScrollView::setDrawable):
2007-02-07 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Maciej.
Linux/gdk build fixes.
* platform/ContextMenuItem.h:
* platform/PlatformMenuDescription.h:
* platform/gdk/PopupMenuGdk.cpp: Added. Renamed from RenderPopupMenuGdk.cpp for
consistency with other platforms.
(WebCore::PopupMenu::PopupMenu):
(WebCore::PopupMenu::~PopupMenu):
* platform/gdk/RenderPopupMenuGdk.cpp: Removed.
* platform/gdk/RenderPopupMenuGdk.h: Removed.
2007-02-07 Mitz Pettel <mitz@webkit.org>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=12608
Incorrect min. width calculation of a series of floats with clear:both and white-space:nowrap
Test: fast/block/float/nowrap-clear-min-width.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::calcInlineMinMaxWidth):
2007-02-07 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=10522
REGRESSION: Incomplete repaint after table relayout that decreases height
Test: fast/repaint/intermediate-layout-position.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock): Adjust the old bounds by the layout delta,
to get the block's absolute bounds as they were before its ancestors moved it
during layout.
(WebCore::RenderBlock::collapseMargins): Update the layout delta for the child
when moving it.
(WebCore::RenderBlock::clearFloatsIfNeeded): Ditto.
(WebCore::RenderBlock::determineHorizontalPosition): Ditto.
(WebCore::RenderBlock::layoutBlockChildren): Ditto.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock): Adjust the old bounds by the current
layout delta.
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::layout): Ditto.
* rendering/RenderImage.cpp:
(WebCore::RenderImage::layout): Ditto.
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout): Ditto.
* rendering/RenderView.h:
(WebCore::RenderView::layoutDelta): Added. Keeps track of the offset between
the position of the object currently being laid out and its position at the
end of the last layout.
(WebCore::RenderView::addLayoutDelta): Added.
2007-02-07 Christopher Brichford <chrisb@adobe.com>
Reviewed by Brady.
http://bugs.webkit.org/show_bug.cgi?id=6286
Very large (~500MB) images cause reproducible Safari crash
* loader/CachedImage.cpp:
(WebCore::CachedImage::bufferData): Detect failure to create a
large Vector<> and call error() when that happens.
2007-02-07 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=5399
no-repeat on negatively positioned background images are ignored
Test: fast/backgrounds/repeat/negative-offset-repeat.html
- fix http://bugs.webkit.org/show_bug.cgi?id=5821
Changing background of <col> doesn't repaint the column
Test: fast/repaint/table-col-background.html
- fix http://bugs.webkit.org/show_bug.cgi?id=11720
REGRESSION: large amounts of CPU consumed viewing this site
* rendering/RenderBox.cpp:
(WebCore::RenderBox::imageChanged): Added. Finds the border and/or background
layer(s) that use the image and invalidates only the rect in which the image
actually paints. There are two special cases in this function: 1) for the body
element, the background is propagated to the root; 2) inline flows do a full
repaint.
(WebCore::RenderBox::calculateBackgroundImageGeometry): Added. Factored out,
simplified and corrected the calculation of the rectangle into which the background
image paints, the tile size and the pattern phase.
(WebCore::RenderBox::paintBackgroundExtended):
* rendering/RenderBox.h:
* rendering/RenderObject.cpp:
* rendering/RenderObject.h:
(WebCore::RenderObject::imageChanged): Moved the implementation to RenderBox.
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::getAbsoluteRepaintRect): Overridden to return the
table's repaint rect.
(WebCore::RenderTableCol::imageChanged): Overridden to do a full repaint, which
currently repaints the entire table.
* rendering/RenderTableCol.h:
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::imageChanged): Overridden to do a full repaint
of the row, since the backgrounds are painted by the cells.
* rendering/RenderTableRow.h:
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::imageChanged): Overridden to do a full
repaint of the section, since the backgrounds are painted by the cells.
* rendering/RenderTableSection.h:
2007-02-07 Anders Carlsson <acarlsson@apple.com>
Reviewed by Maciej.
Move shouldInterruptJavaScript to the Chrome.
* bindings/js/kjs_binding.cpp:
(KJS::ScriptInterpreter::shouldInterruptScript):
* page/Chrome.cpp:
(WebCore::Chrome::shouldInterruptJavaScript):
* page/Chrome.h:
* page/ChromeClient.h:
* page/Frame.h:
* page/mac/FrameMac.h:
* page/mac/FrameMac.mm:
* page/mac/WebCoreFrameBridge.h:
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyChromeClient::shouldInterruptJavaScript):
2007-02-07 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- <rdar://problem/4826861> WebKit tests show memory leaks in NSHTMLReader, caused by method named "hash"
* bindings/scripts/CodeGeneratorObjC.pm: Added a list of method names we should never use, since they
are in base classes WebScriptObject and NSObject. Luckily, only "hash" is causing trouble. Added
"hash" to the existing special case for "id". Now "hash" is "hashName" just as "id" is "idName".
2007-02-07 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Linux/gdk build fixes for graphics-related stuff.
* platform/graphics/cairo/ImageCairo.cpp:
(WebCore::BitmapImage::checkForSolidColor):
* platform/graphics/cairo/ImageSourceCairo.cpp:
(WebCore::ImageSource::setData):
* platform/graphics/gdk/ImageGdk.cpp:
(WebCore::BitmapImage::initPlatformData):
(WebCore::BitmapImage::invalidatePlatformData):
(WebCore::Image::loadPlatformResource):
(WebCore::Image::drawPattern):
2007-02-07 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Maciej.
Linux/gdk build fixes related to networking.
* platform/network/ResourceHandleInternal.h: Add accessor for m_client.
(WebCore::ResourceHandleInternal::client):
* platform/network/gdk/ResourceHandleCurl.cpp: Add missing functions and
massage for changed APIs.
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::cancel):
(WebCore::ResourceHandle::bufferedData):
(WebCore::ResourceHandle::supportsBufferedData):
(WebCore::ResourceHandle::setDefersLoading):
* platform/network/gdk/ResourceHandleManager.cpp: Rename get() to
sharedInstance(). Massaged for changed APIs.
(WebCore::ResourceHandleManager::sharedInstance):
(WebCore::writeCallback):
(WebCore::ResourceHandleManager::downloadTimerCallback):
(WebCore::ResourceHandleManager::remove):
* platform/network/gdk/ResourceHandleManager.h: Ditto.
2007-02-07 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Maciej.
Mismatched type of alloc/free function crashes gdk build.
* platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::JPEGImageReader::close):
2007-02-07 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Linux/gdk build fixes - add file based on qt implementation.
* platform/DragData.h:
* platform/gdk/DragDataGdk.cpp: Added.
2007-02-07 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Linux/gdk build fixes - add new files based on qt implementation.
* page/gdk/DragControllerGdk.cpp: Added.
(WebCore::DragController::dragOperation):
* page/gdk/EventHandlerGdk.cpp: Added.
(WebCore::EventHandler::focusDocumentView):
(WebCore::EventHandler::passWidgetMouseDownEventToWidget):
(WebCore::EventHandler::handleDrag):
(WebCore::EventHandler::eventActivatedView):
2007-02-07 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Adam Roben.
Linux/gdk build fixes - add new files based on Qt implementation.
* loader/gdk/DocumentLoaderGdk.cpp: Added.
(WebCore::DocumentLoader::getResponseModifiedHeader):
* loader/gdk/FrameLoaderClientGdk.cpp: Added.
(WebCore::FrameLoaderClientGdk::FrameLoaderClientGdk):
(WebCore::FrameLoaderClientGdk::frame):
(WebCore::FrameLoaderClientGdk::userAgent):
(WebCore::FrameLoaderClientGdk::createDocumentLoader):
(WebCore::FrameLoaderClientGdk::dispatchWillSubmitForm):
(WebCore::FrameLoaderClientGdk::committedLoad):
(WebCore::FrameLoaderClientGdk::dispatchDidReceiveAuthenticationChallenge):
(WebCore::FrameLoaderClientGdk::dispatchDidCancelAuthenticationChallenge):
(WebCore::FrameLoaderClientGdk::dispatchWillSendRequest):
(WebCore::FrameLoaderClientGdk::assignIdentifierToInitialRequest):
(WebCore::FrameLoaderClientGdk::postProgressStartedNotification):
(WebCore::FrameLoaderClientGdk::postProgressEstimateChangedNotification):
(WebCore::FrameLoaderClientGdk::postProgressFinishedNotification):
(WebCore::FrameLoaderClientGdk::frameLoaderDestroyed):
(WebCore::FrameLoaderClientGdk::dispatchDidReceiveResponse):
(WebCore::FrameLoaderClientGdk::dispatchDecidePolicyForMIMEType):
(WebCore::FrameLoaderClientGdk::dispatchDecidePolicyForNewWindowAction):
(WebCore::FrameLoaderClientGdk::dispatchDecidePolicyForNavigationAction):
(WebCore::FrameLoaderClientGdk::createPlugin):
(WebCore::FrameLoaderClientGdk::createFrame):
(WebCore::FrameLoaderClientGdk::redirectDataToPlugin):
(WebCore::FrameLoaderClientGdk::createJavaAppletWidget):
(WebCore::FrameLoaderClientGdk::objectContentType):
(WebCore::FrameLoaderClientGdk::overrideMediaType):
(WebCore::FrameLoaderClientGdk::windowObjectCleared):
(WebCore::FrameLoaderClientGdk::setMainFrameDocumentReady):
(WebCore::FrameLoaderClientGdk::hasWebView):
(WebCore::FrameLoaderClientGdk::hasFrameView):
(WebCore::FrameLoaderClientGdk::dispatchDidFinishLoad):
(WebCore::FrameLoaderClientGdk::frameLoadCompleted):
(WebCore::FrameLoaderClientGdk::privateBrowsingEnabled):
(WebCore::FrameLoaderClientGdk::makeDocumentView):
(WebCore::FrameLoaderClientGdk::makeRepresentation):
(WebCore::FrameLoaderClientGdk::forceLayout):
(WebCore::FrameLoaderClientGdk::forceLayoutForNonHTML):
(WebCore::FrameLoaderClientGdk::setCopiesOnScroll):
(WebCore::FrameLoaderClientGdk::detachedFromParent1):
(WebCore::FrameLoaderClientGdk::detachedFromParent2):
(WebCore::FrameLoaderClientGdk::detachedFromParent3):
(WebCore::FrameLoaderClientGdk::detachedFromParent4):
(WebCore::FrameLoaderClientGdk::loadedFromPageCache):
(WebCore::FrameLoaderClientGdk::dispatchDidHandleOnloadEvents):
(WebCore::FrameLoaderClientGdk::dispatchDidReceiveServerRedirectForProvisionalLoad):
(WebCore::FrameLoaderClientGdk::dispatchDidCancelClientRedirect):
(WebCore::FrameLoaderClientGdk::dispatchWillPerformClientRedirect):
(WebCore::FrameLoaderClientGdk::dispatchDidChangeLocationWithinPage):
(WebCore::FrameLoaderClientGdk::dispatchWillClose):
(WebCore::FrameLoaderClientGdk::dispatchDidReceiveIcon):
(WebCore::FrameLoaderClientGdk::dispatchDidStartProvisionalLoad):
(WebCore::FrameLoaderClientGdk::dispatchDidReceiveTitle):
(WebCore::FrameLoaderClientGdk::dispatchDidCommitLoad):
(WebCore::FrameLoaderClientGdk::dispatchDidFinishDocumentLoad):
(WebCore::FrameLoaderClientGdk::dispatchDidFirstLayout):
(WebCore::FrameLoaderClientGdk::dispatchShow):
(WebCore::FrameLoaderClientGdk::cancelPolicyCheck):
(WebCore::FrameLoaderClientGdk::dispatchDidLoadMainResource):
(WebCore::FrameLoaderClientGdk::revertToProvisionalState):
(WebCore::FrameLoaderClientGdk::clearUnarchivingState):
(WebCore::FrameLoaderClientGdk::willChangeTitle):
(WebCore::FrameLoaderClientGdk::didChangeTitle):
(WebCore::FrameLoaderClientGdk::finishedLoading):
(WebCore::FrameLoaderClientGdk::finalSetupForReplace):
(WebCore::FrameLoaderClientGdk::setDefersLoading):
(WebCore::FrameLoaderClientGdk::isArchiveLoadPending):
(WebCore::FrameLoaderClientGdk::cancelPendingArchiveLoad):
(WebCore::FrameLoaderClientGdk::clearArchivedResources):
(WebCore::FrameLoaderClientGdk::canHandleRequest):
(WebCore::FrameLoaderClientGdk::canShowMIMEType):
(WebCore::FrameLoaderClientGdk::representationExistsForURLScheme):
(WebCore::FrameLoaderClientGdk::generatedMIMETypeForURLScheme):
(WebCore::FrameLoaderClientGdk::restoreScrollPositionAndViewState):
(WebCore::FrameLoaderClientGdk::provisionalLoadStarted):
(WebCore::FrameLoaderClientGdk::didFinishLoad):
(WebCore::FrameLoaderClientGdk::prepareForDataSourceReplacement):
(WebCore::FrameLoaderClientGdk::setTitle):
(WebCore::FrameLoaderClientGdk::setDocumentViewFromPageCache):
(WebCore::FrameLoaderClientGdk::dispatchDidReceiveContentLength):
(WebCore::FrameLoaderClientGdk::dispatchDidFinishLoading):
(WebCore::FrameLoaderClientGdk::dispatchDidFailLoading):
(WebCore::FrameLoaderClientGdk::dispatchDidLoadResourceFromMemoryCache):
(WebCore::FrameLoaderClientGdk::dispatchDidFailProvisionalLoad):
(WebCore::FrameLoaderClientGdk::dispatchDidFailLoad):
(WebCore::FrameLoaderClientGdk::download):
(WebCore::FrameLoaderClientGdk::cancelledError):
(WebCore::FrameLoaderClientGdk::cannotShowURLError):
(WebCore::FrameLoaderClientGdk::interruptForPolicyChangeError):
(WebCore::FrameLoaderClientGdk::cannotShowMIMETypeError):
(WebCore::FrameLoaderClientGdk::fileDoesNotExistError):
(WebCore::FrameLoaderClientGdk::shouldFallBack):
(WebCore::FrameLoaderClientGdk::willUseArchive):
(WebCore::FrameLoaderClientGdk::saveScrollPositionAndViewStateToItem):
(WebCore::FrameLoaderClientGdk::saveDocumentViewToPageCache):
(WebCore::FrameLoaderClientGdk::canCachePage):
(WebCore::FrameLoaderClientGdk::dispatchCreatePage):
(WebCore::FrameLoaderClientGdk::dispatchUnableToImplementPolicy):
(WebCore::FrameLoaderClientGdk::setMainDocumentError):
(WebCore::FrameLoaderClientGdk::startDownload):
(WebCore::FrameLoaderClientGdk::updateGlobalHistoryForStandardLoad):
(WebCore::FrameLoaderClientGdk::updateGlobalHistoryForReload):
(WebCore::FrameLoaderClientGdk::shouldGoToHistoryItem):
* loader/gdk/FrameLoaderClientGdk.h: Added.
(WebCore::FrameLoaderClientGdk::~FrameLoaderClientGdk):
(WebCore::FrameLoaderClientGdk::setFrame):
2007-02-07 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Maciej.
Linux/gdk fixes related to fonts.
* platform/gdk/FontDataGdk.cpp:
(WebCore::FontData::platformInit): remove a work-around for older cairo versions
since Ubuntu 6.10 ships with cairo that is new enough
* platform/gdk/FontGdk.cpp:
(WebCore::Font::drawGlyphs):
* platform/gdk/FontPlatformDataGdk.cpp: Remove unused variables.
(WebCore::FontPlatformData::FontPlatformData):
2007-02-07 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12582
REGRESSION: Unclosed <title> makes the window display garbage or empty title
Automatic testing is not possible, and manual testing probably doesn't make sense.
* loader/DocumentLoader.cpp:
(WebCore::canonicalizedTitle): Bail out early if the passed in string is all whitespace.
2007-02-06 Anders Carlsson <acarlsson@apple.com>
Reviewed by John Sullivan.
<rdar://problem/4977952>
REGRESSION: Yahoo Messenger IM is totally blank
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::checkContentPolicy):
Don't ask the policy delegate for content that has valid substitute data.
(WebCore::FrameLoader::checkNavigationPolicy):
If the loader has substitute data but doesn't have an unreachable URL, let the policy
delegate decide what to do.
2007-02-07 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
Restoring some of the functionality I removed in r19445. It's insufficient for
each page to cancel keepAlive only for its child frames, because a frame
can be removed from the page before we get a chance to cancel its keepAlive.
So, the page destructor has to cancel keepAlive for all frames. This is safe
because we prohibit closing a WebView while JavaScript is executing.
* page/Frame.cpp:
(WebCore::keepAliveSet):
(WebCore::Frame::keepAlive):
(WebCore::Frame::cancelAllKeepAlive):
(WebCore::Frame::lifeSupportTimerFired):
* page/Frame.h:
* page/Page.cpp:
(WebCore::Page::~Page):
2007-02-07 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12603
A crash when trying to use XPath functions normalize-space(), string-length() and number()
Test: fast/xpath/implicit-node-args.html
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunNumber::doEvaluate): Implemented zero parameter case.
(WebCore::XPath::FunctionMapping::): Corrected descriptions of these functions, as they
do allow zero parameters.
(WebCore::XPath::createFunction): Combined the two failure cases to ensure that this
function never returns 0.
2007-02-07 Zack Rusin <zrusin@trolltech.com>
Fix compilation
* page/qt/EventHandlerQt.cpp:
(WebCore::EventHandler::eventActivatedView):
2007-02-06 Alice Liu <alice.liu@apple.com>
Reviewed by Maciej.
Added editing command functions for scrolling by page and moving the caret
* editing/Editor.cpp:
(WebCore::execMoveUpByPageAndModifyCaret):
(WebCore::execMoveDownByPageAndModifyCaret):
(WebCore::CommandEntry::):
2007-02-06 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/4922367>
WebView selectLine: followed by deleteBackward: deletes TABLE element of following line
* editing/AppendNodeCommand.cpp:
(WebCore::AppendNodeCommand::doApply): Don't ASSERT when manipulating
non-editable content that is embedded in editable content. We'll do
this kind of manipulation when removing redundant style spans after
pasting content that has non-editable pieces.
* editing/InsertNodeBeforeCommand.cpp:
(WebCore::InsertNodeBeforeCommand::doApply): Ditto.
* editing/htmlediting.cpp:
(WebCore::isContentEditable): Added, wrapper for Node::isContentEditable
(WebCore::rangeCompliantEquivalent): Although legal,
[{table, select, etc.}, {0, numChildren}] don't refer to children of the element,
but positions before and after the element. So, rangeCompliantEquivalent is
really responsible for converting illegal positions *and* legal positions
that have a special meaning internally.
* editing/htmlediting.h:
2007-02-06 Anders Carlsson <acarlsson@apple.com>
Reviewed by Brady.
* platform/String.cpp:
(WebCore::String::ascii):
Fix dumping null Strings.
2007-02-06 Anders Carlsson <acarlsson@apple.com>
Reviewed by Geoff.
Fix <rdar://problem/4979484>
* css/CSSPrimitiveValue.cpp:
(WebCore::isCSSTokenizerIdentifier):
Do the range check before calling isalpha or isalnum.
2007-02-06 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
Fixed Frame/RenderObject/Node leak report seen while running SVG image tests.
(We'll need this fix if we ever re-enable SVG image.)
The extra reference belonged to the Frame keepAlive timer (so this was
not a "real" leak, in the end). The Page destructor has code to cancel all
Frame keepAlive timers upon the destruction of the last Page, but an SVG
image puts a Page within a Page, making this condition impossible to meet.
The fix here is to have each individual page cancel the keepAlive timers
belonging to its child frames.
* page/Frame.cpp: Changed the FrameCounter to use WTF logging.
(WebCore::): Nixed the lifeSupportSet, since it's no longer used.
(WebCore::Frame::cancelKeepAlive): Renamed from "endLifeSupport" to match
the name "keepAlive".
* page/Page.cpp:
(WebCore::Page::~Page): Made each page cancel its child keepAlive timers
and clear its mainFrame, since we may never reach the condition of having 0 Pages.
2007-02-06 Adam Roben <aroben@apple.com>
Rubberstamped by Brady.
Revert the log channel constants to their old values for all you pretty
people out there who were using the old ones. I also renamed
LogResources to LogPlatformLeaks to be a bit more specific.
* platform/Logging.cpp:
(WebCore::):
* platform/Logging.h:
2007-02-05 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/4959067>
Bullets get erased or moved down to another line
<rdar://problem/4912529>
Seed: Bulleted list in Note in Mail.app does not work with Japanese input mode
Do not expand the selection to include fully selected
special elements when insering text over a selection.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::deleteSelection): Pass
expandForSpecialElements through to DeleteSelectionCommand's constructor.
(WebCore::CompositeEditCommand::moveParagraphs): Use the
convenience function.
* editing/CompositeEditCommand.h:
* editing/DeleteSelectionCommand.h:
* editing/InsertTextCommand.cpp:
(WebCore::InsertTextCommand::input): Do not expand the selection
to be deleted for special elements.
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::doApply): Added a FIXME about
when we should expand the selection.
2007-02-06 Geoffrey Garen <ggaren@apple.com>
Reviewed by Anders Carlsson.
Disabled support for SVG image because it crashes all the time.
* loader/CachedImage.cpp:
(WebCore::CachedImage::createImage):
2007-02-06 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12518
Betsson.com crashes browser
Test: fast/layers/generated-layer-scrollbar-crash.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::createScrollbar): Changed element()->document() to
document() to work with anonymous objects.
(WebCore::RenderLayer::updateOverflowStatus): Ditto.
2007-02-06 Eric Seidel <eric@webkit.org>
Reviewed by mitz.
WebKit ignores floating point values for stroke-miterlimit
http://bugs.webkit.org/show_bug.cgi?id=12577
Test: svg/W3C-SVG-1.1/painting-stroke-07-t.svg
* ksvg2/css/SVGCSSParser.cpp:
(WebCore::CSSParser::parseSVGValue):
* ksvg2/css/SVGCSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applySVGProperty):
* ksvg2/css/SVGRenderStyle.h:
* ksvg2/css/SVGRenderStyleDefs.h:
(WebCore::StyleStrokeData::operator!=):
2007-02-06 Adam Roben <aroben@apple.com>
Reviewed by Ada and Oliver.
Adding a new LogResources channel for tracking platform resource usage.
* platform/Logging.cpp: Added new channel, cleaned up constants to be more readable.
* platform/Logging.h: Declare new channel.
2007-02-06 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Geoff.
http://bugs.webkit.org/show_bug.cgi?id=12619
Non-abbreviated XPaths don't work
Test: fast/xpath/ancestor-axis.html
* xml/XPathParser.cpp:
(WebCore::XPath::Parser::lex): Fix axis name parsing to actually work.
* xml/XPathStep.cpp:
(WebCore::XPath::Step::nodeTestMatches): Fix "*" node test to actually work.
2007-02-06 Mark Rowe <mrowe@apple.com>
Roll out incomplete support for font-stretch (r19350) at Dave Hyatt's request.
See http://bugs.webkit.org/show_bug.cgi?id=12530#c9 for more info.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/cssparser.cpp:
(WebCore::CSSParser::parseValue):
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::applyDeclarations):
(WebCore::CSSStyleSelector::applyProperty):
* platform/FontCache.cpp:
(WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
(WebCore::FontPlatformDataCacheKey::operator==):
(WebCore::computeHash):
(WebCore::FontPlatformDataCacheKeyTraits::deletedValue):
(WebCore::FontPlatformDataCacheKeyTraits::emptyValue):
(WebCore::FontCache::getCachedFontPlatformData):
* platform/FontDescription.h:
(WebCore::FontDescription::FontDescription):
(WebCore::FontDescription::weight):
(WebCore::FontDescription::setWeight):
(WebCore::FontDescription::operator==):
* platform/mac/FontCacheMac.mm:
(WebCore::FontCache::createFontPlatformData):
* platform/mac/WebFontCache.mm:
(acceptableChoice):
(betterChoice):
(+[WebFontCache fontWithFamily:traits:size:]):
2007-02-05 Adele Peterson <adele@apple.com>
Reviewed by Darin.
A few small updates to my bidi patch.
* rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::paintObject): Moved the declaration of the CharacterBuffer outside the if statement since we use its data outside that scope.
* rendering/RenderListBox.cpp: (WebCore::RenderListBox::paintItemForeground): ditto.
* rendering/bidi.cpp: (WebCore::RenderBlock::bidiReorderCharacters): Used a PassRefPtr for the BidiContext.
2007-02-05 Adele Peterson <adele@apple.com>
Reviewed by Adam.
Fix for assertion failure in fast/events/objc-keyboard-event-creation.html
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::selectionStart): Check that the selection offsets are not equal to -1 (which is means the selection has never been set) instead of checking for >= 0.
(WebCore::HTMLInputElement::selectionEnd): ditto.
(WebCore::HTMLInputElement::setValue): ditto.
(WebCore::HTMLInputElement::selection): Return an empty selection if the input is not a text field or if no selection has ever been set in the text field.
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::selectionStart): Check that the selection offsets are not equal to -1.
(WebCore::HTMLTextAreaElement::selectionEnd): ditto.
(WebCore::HTMLTextAreaElement::setValue): ditto.
(WebCore::HTMLTextAreaElement::selection): Return an empty selection if no selection has ever been set in the textarea.
* dom/Position.cpp: Added FIXMEs that we should catch the negative offset earlier.
(WebCore::Position::previous):
(WebCore::Position::next):
2007-02-05 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/4947387>
REGRESSION Shift Command Left should only select to the beginning of the line
* editing/Editor.cpp:
(WebCore::CommandEntry::): Never copy/paste code.
2007-02-05 Darin Adler <darin@apple.com>
Reviewed by John Sullivan.
- fix http://bugs.webkit.org/show_bug.cgi?id=11535
<rdar://problem/4946959> REGRESSION: onclick="this.select();" not working on new forms (11535)
Test: fast/forms/input-select-on-click.html
* page/EventHandler.h: Added m_mouseDownWasSingleClickInSelection boolean.
Organized other booleans a bit more logically.
* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler): Rearrange order to match EventHandler.h, add
m_mouseDownWasSingleClickInSelection initialization.
(WebCore::EventHandler::handleMousePressEventSingleClick): Set m_mouseDownWasSingleClickInSelection
to true in the appropriate special case.
(WebCore::EventHandler::handleMousePressEvent): Set m_mouseDownWasSingleClickInSelection to false.
(WebCore::EventHandler::handleMouseReleaseEvent): Change code to clear selection or set to caret to
only fire if m_mouseDownWasSingleClickInSelection was true rather than firing for any
m_mouseDownMayStartSelect case.
2007-02-05 George Staikos <staikos@kde.org>
Reviewed by Maciej.
Send HTTP cookies.
* platform/network/qt/ResourceHandleManagerQt.cpp:
(WebCore::RequestQt::RequestQt):
2007-02-05 Adele Peterson <adele@apple.com>
Reviewed by Mitz and Anders.
Fix for http://bugs.webkit.org/show_bug.cgi?id=11811
<rdar://problem/4947184> REGRESSION (r11783): Hebrew text in list boxes is reversed
http://bugs.webkit.org/show_bug.cgi?id=11812
<rdar://problem/4960269> REGRESSION (Native file upload): Hebrew filenames are reversed
Tests:
fast/text/international/bidi-listbox.html
fast/text/international/bidi-listbox-atsui.html
* rendering/RenderBlock.h: Added static bidiReorderCharacters that will run the bidi algorithm on a character buffer.
* rendering/bidi.cpp:
(WebCore::RenderBlock::bidiReorderCharacters): Added. Creates an anonymous RenderBlock and RenderText to feed into bidiReorderLines.
(WebCore::RenderBlock::constructLine): Uses the new convenience methods on BidiRun.
* rendering/bidi.h:
(WebCore::BidiRun::reversed): Added convenience method.
(WebCore::BidiRun::dirOverride): ditto.
* rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::paintObject): Creates a buffer and calls bidiReorderCharacters
to get a correctly ordered character buffer for drawText.
* rendering/RenderListBox.cpp: (WebCore::RenderListBox::paintItemForeground): ditto.
2007-02-05 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12590
REGRESSION: Text selection is weird in textareas in Trac wiki editing pages
Test: fast/repaint/selection-gap-overflow-scroll.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::selectionGapRects): Adjust for overflow scroll.
2007-02-05 Mitz Pettel <mitz@webkit.org>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=11916
REGRESSION (SearchField): RTL search fields are mixed up
Test: fast/forms/search-rtl.html
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::createInnerBlockStyle): Always make the inner
block LTR so that the results button will be on the left and the cancel
button will be on the right.
(WebCore::RenderTextControl::createInnerTextStyle): Inherit the direction
property directly from the control so that it won't be masked by the inner
block's LTR override.
(WebCore::RenderTextControl::nodeAtPoint): Removed code that swapped the
results and cancel buttons for RTL.
(WebCore::RenderTextControl::forwardEvent): Ditto.
(WebCore::RenderTextControl::clientPaddingLeft): Ditto.
(WebCore::RenderTextControl::clientPaddingRight): Ditto.
2007-02-05 Mitz Pettel <mitz@webkit.org>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=12618
REGRESSION (SearchField): Dragging across the text and releasing over the clear button clears the field
Test: fast/forms/search-cancel-button-mouseup.html
Made the cancel button capturing.
* html/HTMLTextFieldInnerElement.cpp:
(WebCore::HTMLSearchFieldCancelButtonElement::HTMLSearchFieldCancelButtonElement):
(WebCore::HTMLSearchFieldCancelButtonElement::defaultEventHandler):
* html/HTMLTextFieldInnerElement.h:
2007-02-05 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=6626
Arabic & Farsi rendered with no shaping (all glyphs separate, unreadable!)
No test possible since Mac OS X only ships with fonts that contain shaping
information.
* icu/unicode/ushape.h: Added from
http://www.opensource.apple.com/darwinsource/10.4.8.ppc/ICU-6.2.9/icuSources/common/unicode/
* platform/FontData.h:
(WebCore::FontData::shapesArabic): Added. Returns whether the font contains
shaping information for Arabic or not.
* platform/mac/FontDataMac.mm:
(WebCore::FontData::platformInit):
(WebCore::FontData::checkShapesArabic): Added. Checks whether the font contains
a glyph metamorphosis table. The heuristic is that if a font contains Arabic glyphs
and a metamorphosis table, then it includes shaping information for Arabic.
* platform/mac/FontMac.mm:
(WebCore::overrideLayoutOperation): Changed to use the same character buffer passed
to ATSUI instead of the original character buffer and to give zero-width spaces zero
width.
(WebCore::isArabicLamWithAlefLigature): Added. Checks if the character is one
of the Arabic presentation forms of Lam with Alef.
(WebCore::shapeArabic): Added. This is a wrapper around the ICU Arabic shaping routine
that replaces each space following a Lam with Alef ligature resulting from shaping
with a zero-width space.
(WebCore::ATSULayoutParameters::initialize): Changed to allocate the auxiliary buffer
lazily for mirroring and Arabic shaping. Added a call to shapeArabic() when required.
2007-02-05 Eric Seidel <eric@webkit.org>
No review, build fix only.
* ksvg2/svg/SVGStyleElement.cpp: add forgotten header.
2007-02-05 Eric Seidel <eric@webkit.org>
Reviewed by bdash.
Fix style name testcase which I broke in my last commit.
* ksvg2/svg/SVGStyleElement.cpp:
(WebCore::SVGStyleElement::xmlspace):
(WebCore::SVGStyleElement::title): override Element::title()
(WebCore::SVGStyleElement::parseMappedAttribute):
* ksvg2/svg/SVGStyleElement.h:
2007-02-04 Eric Seidel <eric@webkit.org>
Reviewed by darin.
Fix hand cursor on link hover for SVG
Fix status text on link hover for SVG
Fix tooltips on link hover for SVG
Fix link dragging for SVG
http://bugs.webkit.org/show_bug.cgi?id=12575
Test: added manual-tests/svg-links.svg
* dom/Document.cpp:
(WebCore::Document::prepareMouseEvent):
* dom/Element.cpp:
(WebCore::Element::title):
* dom/Element.h:
* html/HTMLElement.cpp:
(WebCore::HTMLElement::setId):
(WebCore::HTMLElement::title):
(WebCore::HTMLElement::setTitle):
(WebCore::HTMLElement::setLang):
* html/HTMLElement.h:
* ksvg2/svg/SVGAElement.cpp:
(WebCore::SVGAElement::title):
(WebCore::SVGAElement::parseMappedAttribute):
(WebCore::SVGAElement::defaultEventHandler):
* ksvg2/svg/SVGAElement.h:
* ksvg2/svg/SVGTitleElement.cpp:
* ksvg2/svg/SVGTitleElement.h:
* manual-tests/svg-links.svg: Added.
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::title):
(WebCore::HitTestResult::absoluteImageURL):
(WebCore::HitTestResult::absoluteLinkURL):
(WebCore::HitTestResult::isLiveLink):
(WebCore::HitTestResult::titleDisplayString):
2007-02-04 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12602
XPath functions string(), normalize-space() and string-length() don't work
without arguments
Test: fast/xpath/implicit-node-args.html
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunString::doEvaluate):
(WebCore::XPath::FunStringLength::doEvaluate):
(WebCore::XPath::FunNormalizeSpace::doEvaluate):
Don't try to pass RefPtr<Node> to the Value ctor.
2007-02-04 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=8791
XPath should support custom node resolvers
* bindings/js/JSCustomXPathNSResolver.cpp: Added.
(WebCore::JSCustomXPathNSResolver::create):
(WebCore::JSCustomXPathNSResolver::JSCustomXPathNSResolver):
(WebCore::JSCustomXPathNSResolver::~JSCustomXPathNSResolver):
(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
* bindings/js/JSCustomXPathNSResolver.h: Added.
* bindings/objc/DOMCustomXPathNSResolver.h: Added.
* bindings/objc/DOMCustomXPathNSResolver.mm: Added.
(WebCore::DOMCustomXPathNSResolver::DOMCustomXPathNSResolver):
(WebCore::DOMCustomXPathNSResolver::~DOMCustomXPathNSResolver):
(WebCore::DOMCustomXPathNSResolver::lookupNamespaceURI):
Wrappers for JS/ObjC objects that can be used as resolvers.
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/CodeGeneratorObjC.pm:
Use the above wrappers to support custom resolvers.
* xml/XPathNSResolver.cpp:
* xml/XPathNSResolver.h:
Turned this class into an abstract one.
* xml/NativeXPathNSResolver.cpp: Added.
(WebCore::NativeXPathNSResolver::NativeXPathNSResolver):
(WebCore::NativeXPathNSResolver::~NativeXPathNSResolver):
(WebCore::NativeXPathNSResolver::lookupNamespaceURI):
* xml/NativeXPathNSResolver.h: Added.
A XPathNSResolver subclass, doing what XPathNSResolver used to do.
* xml/XPathEvaluator.cpp:
(WebCore::XPathEvaluator::createNSResolver): Create a NativeXPathNSResolver.
* WebCore.xcodeproj/project.pbxproj: Added new files.
2007-02-04 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
Tidying up EventHandler, and moving more of
EventHandlerMac.mm to EventHandler.cpp
Also added EventHandler::eventLoopHandleMouse[Dragged,Up]
these are basically helper functions to allow correct event
handling on MacOS.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseUp):
(WebCore::EventHandler::dragSourceMovedTo):
(WebCore::EventHandler::dragSourceEndedAt):
(WebCore::EventHandler::dispatchDragSrcEvent):
Moved from EventHandlerMac to EventHandler
* page/EventHandler.h:
(WebCore::EventHandler::eventLoopHandleMouseUp):
(WebCore::EventHandler::eventLoopHandleMouseDragged):
Null implementations of two Mac helper functions
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::eventLoopHandleMouseDragged):
(WebCore::EventHandler::handleDrag):
Much tidying, reduced nesting, made less dependent on NS types
(WebCore::EventHandler::eventLoopHandleMouseDragged):
(WebCore::EventHandler::eventLoopHandleMouseUp):
Helper functions to let us process events properly on MacOS
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge dragSourceEndedAt:operation:]):
2007-02-04 George Staikos <staikos@kde.org>
Reviewed by Zack.
Some Qt hacks and cleanups - makes rendering of forms much better on
OS X
* platform/qt/PlatformKeyboardEventQt.cpp: Add Key_Return/Enter
(WebCore::keyIdentifierForQtKeyCode):
(WebCore::windowsKeyCodeForKeyEvent):
* platform/qt/RenderThemeQt.cpp: Hacks and fix buttons
(WebCore::RenderThemeQt::addIntrinsicMargins):
(WebCore::RenderThemeQt::setCheckboxSize):
(WebCore::RenderThemeQt::supportsFocus):
(WebCore::RenderThemeQt::applyTheme):
2007-02-03 Maciej Stachowiak <mjs@apple.com>
Rubber stamped by Adam.
- remove obsolete code that has an annoying space in the directory name
* WebCore.vcproj/Image Viewer/Image Viewer.cpp: Removed.
* WebCore.vcproj/Image Viewer/Image Viewer.h: Removed.
* WebCore.vcproj/Image Viewer/Image Viewer.rc: Removed.
* WebCore.vcproj/Image Viewer/Image Viewer.reg: Removed.
* WebCore.vcproj/Image Viewer/Image Viewer.vcproj: Removed.
* WebCore.vcproj/Image Viewer/ImageDocument.cpp: Removed.
* WebCore.vcproj/Image Viewer/ImageDocument.h: Removed.
* WebCore.vcproj/Image Viewer/ImageMainFrame.cpp: Removed.
* WebCore.vcproj/Image Viewer/ImageMainFrame.h: Removed.
* WebCore.vcproj/Image Viewer/ImageView.cpp: Removed.
* WebCore.vcproj/Image Viewer/ImageView.h: Removed.
* WebCore.vcproj/Image Viewer/Resource.h: Removed.
* WebCore.vcproj/Image Viewer/res/Image Viewer.ico: Removed.
* WebCore.vcproj/Image Viewer/res/Image ViewerDoc.ico: Removed.
* WebCore.vcproj/Image Viewer/res/ImageViewer.rc2: Removed.
* WebCore.vcproj/Image Viewer/res/Toolbar.bmp: Removed.
* WebCore.vcproj/Image Viewer/stdafx.cpp: Removed.
* WebCore.vcproj/Image Viewer/stdafx.h: Removed.
2007-02-04 Mitz Pettel <mitz@webkit.org>
Reviewed by Oliver.
- fix http://bugs.webkit.org/show_bug.cgi?id=12564
REGRESSION: Uncaught AppKit exception when using the scrollwheel while Gmail is loading
* platform/mac/PlatformMouseEventMac.mm:
(WebCore::eventNumberForEvent): Scroll wheel events don't have an event number.
2007-02-04 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Sam.
Add support for xml:space="preserve" for SVG text.
It can be modeled by using white-space="pre" and replace \n by spaces.
Handle xml:space="default" correctly.
Always remove tabs from SVG text - as demanded by spec.
Added test: svg/custom/text-whitespace-handling.svg
* css/svg.css:
* ksvg2/svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::parseMappedAttribute):
* rendering/RenderText.cpp:
(WebCore::RenderText::setStyle):
(WebCore::RenderText::setTextInternal):
* rendering/bidi.cpp:
(WebCore::shouldPreserveNewline):
(WebCore::RenderBlock::skipWhitespace):
(WebCore::RenderBlock::findNextLineBreak):
2007-02-03 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12560
W3C XPath test Text_Nodes.svg fails
Covered by dom/svg/level3/xpath/Text_Nodes.svg
* xml/XPathStep.cpp:
(WebCore::XPath::Step::nodeTestMatches): Only include the first text sibling in text() matches.
2007-02-03 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12485
XPath id() function doesn't work as root in paths
Test: fast/xpath/id-path.html
* xml/XPathPath.cpp:
(WebCore::XPath::Path::doEvaluate): Implemented.
(WebCore::XPath::LocationPath::evaluate): A new overload that takes an initial NodeVector.
(WebCore::XPath::LocationPath::doEvaluate): Moved most of the logic to the new evaluate().
* xml/XPathPath.h: Added a new evaluate() overload and a using declaration to keep the
generic one visible.
2007-02-03 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12559
REGRESSION: Crash in checkForHeadCharset() under GuardMalloc
No tests possible.
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::checkForHeadCharset): Fix end of buffer checks; sprinkle a number
of new ones over the function.
2007-02-03 David Kilzer <ddkilzer@webkit.org>
Reviewed by NOBODY (no-svg build fix).
* page/EventHandler.cpp: Include FloatPoint.h.
2007-02-03 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Mitz.
http://bugs.webkit.org/show_bug.cgi?id=12549
Wrong character encoding at www.ravmilim.co.il
Test: fast/encoding/meta-charset.html
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::checkForHeadCharset): Fix an off by one error.
2007-02-02 Maciej Stachowiak <mjs@apple.com>
Reviewed by Hyatt & Adele.
- <rdar://problem/4896972> TV guide listings page doesn't finish loading (11674)
Test case: fast/forms/disabled-select-change-index.html
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::setSelected): Allow changing selected state of a disabled
option.
2007-02-03 Nikolas Zimmermann <zimmermann@kde.org>
Build fix, not reviewed.
Blind attempt to fix Qt build.
* WebCore.pro: Add RenderSVGGradientStop.cpp / RenderSVGHiddenContainer.cpp
2007-02-03 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Eric & Maciej.
Fix serveral <use> issues:
- When events are dispatch to a referenced element, the actual event.target
has to be set to the corresponding SVGElementInstance object
- Node::shadowAncestorNode() should _not_ return the shadowParentNode for SVG elements
This is only needed for the HTML forms concept and breaks event dispatching for SVG shadow tree elements.
- Add SVGElementInstance as possible EventTarget in bindings/js/kjs_dom.cpp
(Now event.target returns the actual SVGElementInstance object for a shadow tree element)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12502 (Reproducible crash when browsing SVG map.)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12511 (<use> has event dispatching issues)
Added test: svg/custom/use-event-handler-on-use-element.svg
Added test: svg/custom/use-event-handler-on-referenced-element.svg
Added test: svg/custom/use-elementInstance-event-target.svg
Added test: svg/custom/use-elementInstance-methods.svg
* bindings/js/kjs_dom.cpp:
(KJS::toJS):
* dom/EventTarget.cpp:
(WebCore::EventTarget::toSVGElementInstance):
* dom/EventTarget.h:
* dom/EventTargetNode.cpp:
(WebCore::EventTargetNode::handleLocalEvents):
(WebCore::EventTargetNode::dispatchGenericEvent):
(WebCore::EventTargetNode::dispatchEvent):
* dom/EventTargetNode.h:
* dom/Node.cpp:
(WebCore::Node::shadowAncestorNode):
* ksvg2/svg/SVGElement.cpp:
(WebCore::shadowTreeParentElementForShadowTreeElement):
(WebCore::SVGElement::dispatchEvent):
* ksvg2/svg/SVGElement.h:
* ksvg2/svg/SVGElementInstance.cpp:
(WebCore::SVGElementInstance::toSVGElementInstance):
* ksvg2/svg/SVGElementInstance.h:
* ksvg2/svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::notifyAttributeChange):
(WebCore::SVGUseElement::instanceForShadowTreeElement):
* ksvg2/svg/SVGUseElement.h:
2007-02-02 Oliver Hunt <oliver@apple.com>
Reviewed by Geoff.
Add guard around accessing [NSEvent eventNumber] to ensure
we don't attempt to access it on on non-mouse related NSEvent.
* platform/mac/PlatformMouseEventMac.mm:
(WebCore::eventNumberForEvent):
(WebCore::PlatformMouseEvent::PlatformMouseEvent):
2007-02-02 Adam Roben <aroben@apple.com>
Reviewed by Anders.
Try to be a little less selfish about DocumentLoader.
Spotted while working on <rdar://problem/4957747>.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected):
Everyone can open frames in new windows.
2007-02-02 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Eric.
Move xml:space/xml:lang from svgattrs.in to xmlattrs.in where they actually belong.
Now they are actually recognized by SVGLangSpace::parseMappedAttribute.
Patch implementing xml:space="preserve" coming soon, which acts as test for this stuff.
Always build XMLNames.cpp (not only for SVG) and replace all occourences of
"http://www.w3.org/XML/1998/namespace" by "XMLNames::xmlNamespaceURI".
* DerivedSources.make:
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument):
* ksvg2/svg/SVGLangSpace.cpp:
(WebCore::SVGLangSpace::SVGLangSpace):
(WebCore::SVGLangSpace::parseMappedAttribute):
* ksvg2/svg/SVGLangSpace.h:
* ksvg2/svg/svgattrs.in:
* page/Frame.cpp:
(WebCore::Frame::Frame):
* xml/XPathNSResolver.cpp:
(WebCore::XPathNSResolver::lookupNamespaceURI):
* xml/xmlattrs.in:
2007-02-02 Beth Dakin <bdakin@apple.com>
Reviewed by Maciej.
Working on a layout test.
Fix for <rdar://problem/4966100> REGRESSION: Reproducible ASSERT
hit at Walgreens.com
* page/Frame.cpp:
(WebCore::Frame::setView): If we are setting the view to 0 and
detaching the document, call unscheduleRealyout() on the old view
before setting it to 0.
2007-02-01 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
Added support for selectively ignoring WebCore::Node leaks during layout
tests, so that we can ignore known leaks in other components.
* WebCore.exp:
* dom/Node.cpp:
(WebCore::Node::isSupported): Moved isSupported up with the rest of the static functions.
(WebCore::): Added an ignoreSet, which collects WebCore::Nodes whose lifetime
we want to ignore. We need to track which nodes to ignore rather than, say,
just suspending the count, because node destruction depends on lots of
different variables, so it would be nearly impossible to know when exactly
to suspend the count and when exactly to resume it.
(WebCore::NodeCounter::~NodeCounter): Changed to use WTFLog instead of fprintf.
(WebCore::Node::startIgnoringLeaks): Do the ignoring.
(WebCore::Node::stopIgnoringLeaks): ditto
(WebCore::Node::Node): ditto
(WebCore::Node::~Node): ditto
* dom/Node.h: Moved isSupported up with the rest of the static functions.
* platform/mac/LoggingMac.mm:
(WebCore::initializeWithUserDefault): Renamed from "initializeLoggingChannel"
because the real goal here is to honor a user default -- WTFLoggingChannels
need no run-time initialization. Also replaced "off by default, on if a
user default says so" behavior with "only override existing setting if a
user default says so" behavior. It seemed like a bug that you would specify
a channel's on/off state in its definition, but this function would unconditionally
blow that state away.
(WebCore::InitializeLoggingChannelsIfNecessary):
2007-02-02 Eric Seidel <eric@webkit.org>
Reviewed by mitz.
Fix gradient stop style resolution to be less of a hack, fixing style invalidation:
http://bugs.webkit.org/show_bug.cgi?id=12193
and fix stop-color and stop-opacity not to inherit:
http://bugs.webkit.org/show_bug.cgi?id=12193
Tests:
* svg/custom/gradient-stops-style-change.svg: added
* svg/W3C-SVG-1.1/pservers-grad-18-b.svg: updated
* WebCore.xcodeproj/project.pbxproj:
* ksvg2/css/SVGCSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applySVGProperty):
* ksvg2/css/SVGRenderStyle.cpp:
(WebCore::SVGRenderStyle::inheritedNotEqual):
(WebCore::SVGRenderStyle::inheritFrom):
* ksvg2/css/SVGRenderStyle.h:
* ksvg2/svg/SVGDefsElement.cpp:
(WebCore::SVGDefsElement::createRenderer):
* ksvg2/svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::createRenderer):
(WebCore::SVGGradientElement::buildStops):
* ksvg2/svg/SVGGradientElement.h:
(WebCore::SVGGradientElement::rendererIsNeeded):
* ksvg2/svg/SVGStopElement.cpp:
(WebCore::SVGStopElement::createRenderer):
* ksvg2/svg/SVGStopElement.h:
(WebCore::SVGStopElement::rendererIsNeeded):
* rendering/RenderSVGGradientStop.cpp: Added.
* rendering/RenderSVGGradientStop.h: Added.
* rendering/RenderSVGHiddenContainer.cpp: Added.
* rendering/RenderSVGHiddenContainer.h: Added.
* rendering/RenderSVGContainer.cpp:
* rendering/RenderSVGContainer.h:
2007-02-02 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Fix scrolling-on-selection bug by correctly
scrolling to the offset instead of trying to
ensure visibility with margins.
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::scrollPointRecursively):
2007-02-02 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Fix drawing of dashed and colored lines. Pen
has to be inherited for stroke to stay consistent.
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::setAlpha):
(WebCore::GraphicsContext::setPlatformStrokeColor):
(WebCore::GraphicsContext::setPlatformStrokeStyle):
2007-02-01 Nicholas Shanks <webkit@nickshanks.com>
Reviewed by Mark.
Add support for CSS2 font-stretch property.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/cssparser.cpp:
(WebCore::CSSParser::parseValue):
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::applyDeclarations):
(WebCore::CSSStyleSelector::applyProperty):
* platform/FontCache.cpp:
(WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
(WebCore::FontPlatformDataCacheKey::operator==):
(WebCore::computeHash):
(WebCore::FontPlatformDataCacheKeyTraits::deletedValue):
(WebCore::FontPlatformDataCacheKeyTraits::emptyValue):
(WebCore::FontCache::getCachedFontPlatformData):
* platform/FontDescription.h:
(WebCore::):
(WebCore::FontDescription::FontDescription):
(WebCore::FontDescription::stretch):
(WebCore::FontDescription::narrowerStretch):
(WebCore::FontDescription::widerStretch):
(WebCore::FontDescription::setStretch):
(WebCore::FontDescription::operator==):
* platform/mac/FontCacheMac.mm:
(WebCore::FontCache::createFontPlatformData):
* platform/mac/WebFontCache.mm:
(acceptableChoice):
(betterChoice):
(+[WebFontCache fontWithFamily:traits:size:]):
2007-02-01 Timothy Hatcher <timothy@apple.com>
Reviewed by Mark Rowe.
<rdar://problem/4969201> REGRESSION: Safari applies the wrong font to BODY element at http://www.apple.com/downloads/dashboard/
* platform/mac/WebFontCache.mm:
(+[WebFontCache fontWithFamily:traits:size:]): Don't call [NSFont fontWithName:] with the desiredFamily on Tiger.
2007-02-01 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12506
REGRESSION: Safari doesn't display hebrew text on a web page,
displayed correctly on Tiger
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::checkForHeadCharset): Advance the pointer when necessary.
2007-02-01 George Staikos <staikos@kde.org>
Reviewed by Zack and Lars.
Add a cookie interface for the Qt build.
* WebCore.pro:
* platform/qt/CookieJarQt.cpp:
(WebCore::setCookies):
(WebCore::cookies):
(WebCore::cookiesEnabled):
2007-02-01 Maciej Stachowiak <mjs@apple.com>
Reviewed by Adele.
- fixed <rdar://problem/4922764> ASSERTION: (!m_contentFunction) in PolicyCheck::call trying to visit feed URL (CNN, Apple, etc.)
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopPolicyCheck): Call new cancel method instead of call(false) on old check.
(WebCore::PolicyCheck::cancel): call any callback function that is set with false or PolicyIgnore as
appropriate.
* loader/FrameLoader.h:
2007-02-01 Beth Dakin <bdakin@apple.com>
Reviewed by Hyatt.
Fix for http://bugs.webkit.org/show_bug.cgi?id=10517 REGRESSION
(r12065-r12082): Navigation graphic wraps to the next line on
duart.com and <rdar://problem/4960505> REGRESSION: The Awesome
Windows Vista page has a layout error in the header table (10517)
The problem is that we never supported a quirk that other browsers
support where, under very specific circumstances, a table cell will
grow to fit an image inside of it. This is only a regression
because a bug was fixed were we were 1 pixel off in the calculation
of overflow in some cases.
* rendering/RenderBlock.cpp:
(WebCore::shouldGrowTableCellForImage):
(WebCore::RenderBlock::calcInlineMinMaxWidth):
2007-02-01 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Implement native look for comboboxes
and fix/implement popup menus.
* platform/PopupMenu.h:
* platform/qt/PopupMenuQt.cpp:
(WebCore::PopupMenu::PopupMenu):
(WebCore::PopupMenu::~PopupMenu):
(WebCore::PopupMenu::clear):
(WebCore::PopupMenu::populate):
(WebCore::PopupMenu::show):
(WebCore::PopupMenu::hide):
(WebCore::PopupMenu::updateFromElement):
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::adjustMenuListStyle):
(WebCore::RenderThemeQt::paintButton):
(WebCore::RenderThemeQt::paintTextField):
(WebCore::RenderThemeQt::paintMenuList):
2007-02-01 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fix <rdar://problem/4887428> REGRESSION: Implement slight delay for firing incremental onSearch event
* rendering/RenderTextControl.h:
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::RenderTextControl): Set up timer.
(WebCore::RenderTextControl::subtreeHasChanged): Start timer here instead of immediately sending event.
(WebCore::RenderTextControl::searchEventTimerFired): Added. Sends search event.
(WebCore::RenderTextControl::stopSearchEventTimer): Added.
(WebCore::RenderTextControl::startSearchEventTimer): Added. Sends search event right away if there is
no text. If there is some text, sets the timer using the same delay rule as NSSearchField. If you keep
typing, then the timer keeps getting reset 0.2 seconds into the future until you pause.
* html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::onSearch): Tell the renderer to
stop the timer, since we're sending a search event. This helps when a caller other than
the timer decides to send an explicit search event.
2007-02-01 Maciej Stachowiak <mjs@apple.com>
Fix by Darin, reviewed by Maciej.
- fix ~10% performance regression from encoding fix
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::checkForHeadCharset): Fix a logic
error which made huge strings accidentally.
2007-02-01 Lars Knoll <lars@trolltech.com>
Fix the Qt build
* page/qt/EventHandlerQt.cpp:
2007-01-31 Darin Adler <darin@apple.com>
Reviewed by Adam and Geoff.
- fix <rdar://problem/4786767> REGRESSION: <select> controls are not resized when zooming text
Test: fast/forms/select-width-font-change.html
* rendering/RenderMenuList.h: Cleaned up formatting a bit. Removed unneeded include of PopupMenu.h.
Made a lot more things private, including the PopupMenuClient base class, all of the virtual
functions from PopupMenuClient, and the setTextFromOption function. Added updateOptionsWidth.
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::setStyle): Added code to call updateOptionsWidth when the font changes.
(WebCore::RenderMenuList::updateOptionsWidth): Added. Factored code out of updateFromElement.
Changed to do nothing when m_optionsWidth is already correct.
(WebCore::RenderMenuList::updateFromElement): Moved code to recomputed options width to the new
updateOptionsWidth function.
(WebCore::RenderMenuList::text): Made const.
2007-01-31 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
Migrate more drag and drop logic to WebCore, start preparing
to move EventHandler::handleDrag from EventHandlerMac to EventHandler
* WebCore.exp:
updating methods
* dom/Clipboard.cpp:
* dom/Clipboard.h:
(WebCore::Clipboard::Clipboard):
(WebCore::Clipboard::setDragHasStarted):
(WebCore::Clipboard::dragStarted):
Moving from ClipboardMac to Clipboard
* dom/EventTargetNode.cpp:
(WebCore::EventTargetNode::dispatchMouseEvent):
PlatformMouseEvent no longer lies about button state, however
DOM Events don't allow NoButton, so we need to convert NoButton
to LeftButton when we create a DOM Event from PlatformMouseEvent
* page/DragClient.h:
Tidying comment
* page/DragController.cpp:
(WebCore::createMouseEvent):
Updated for new PlatformMouseEvent constructors
(WebCore::DragController::mayStartDragAtEventLocation):
Migrated from WebKit
* page/DragController.h:
Added above function declarations
* page/EventHandler.cpp:
(WebCore::EventHandler::dragState):
(WebCore::EventHandler::dragHysteresisExceeded):
(WebCore::EventHandler::freeClipboard):
(WebCore::EventHandler::shouldDragAutoNode):
Moved from EventHandlerMac
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::eventMayStartDrag):
(WebCore::EventHandler::handleMousePressEvent):
Use DragController
* page/EventHandler.h:
Added DragState struct definition to EventHandler
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::eventActivatedView):
(WebCore::EventHandler::handleDrag):
(WebCore::EventHandler::handleMouseUp):
(WebCore::EventHandler::mouseDown):
Update to use DragController and PlatformMouseEvent
* page/mac/WebCoreFrameBridge.h:
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge dragSourceMovedTo:]):
(-[WebCoreFrameBridge dragSourceEndedAt:operation:]):
Use DragController for state
* platform/PlatformMouseEvent.h:
(WebCore::):
(WebCore::PlatformMouseEvent::PlatformMouseEvent):
(WebCore::PlatformMouseEvent::eventType):
(WebCore::PlatformMouseEvent::timestamp):
(WebCore::PlatformMouseEvent::eventNumber):
(WebCore::PlatformMouseEvent::setClickCount):
Exposing necessary data for Drag logic
* platform/mac/ClipboardMac.h:
* platform/mac/ClipboardMac.mm:
(WebCore::ClipboardMac::ClipboardMac):
(WebCore::ClipboardMac::setDragImage):
Have moved a number of fields from ClipboardMac to Clipboard
so need to use accessors in a few places now
* platform/mac/PlatformMouseEventMac.mm:
(WebCore::mouseButtonForEvent):
(WebCore::mouseEventForNSEvent):
(WebCore::PlatformMouseEvent::PlatformMouseEvent):
Determine MouseEventType, and provide event time info
2007-01-31 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12506
REGRESSION: Safari doesn't display hebrew text on a web page,
displayed correctly on Tiger
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::checkForHeadCharset): Skip over
quoted attributes.
2007-01-31 David Carson <dacarson@gmail.com>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12510
Initialize the variable m_totalLoops
Is tested by LayoutTests/fast/css/MarqueeLayoutTest.html
* rendering/RenderLayer.cpp:
(WebCore::Marquee::Marquee):
2007-01-31 Anders Carlsson <acarlsson@apple.com>
Reviewed by Maciej.
<rdar://problem/4886776>
REGRESSION: After opening a web archive, location shows the actual URL, not the webarchive file
* WebCore.exp:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::continueLoadWithData):
* loader/FrameLoader.h:
New function which continues a load but using a given buffer instead.
2007-01-31 Adele Peterson <adele@apple.com>
Reviewed by Adam.
Fix for http://bugs.webkit.org/show_bug.cgi?id=12516
REGRESSION (r19313): All keyboard navigation has stopped working
For non-editable selections, handleKeyPress doesn't need to call _interceptEditingKeyEvent.
* editing/Editor.cpp:
(WebCore::selectionForEvent): Moved this to the top of the file.
(WebCore::Editor::handleKeyPress): Do the equivalent of the _canEdit check that used to be in WebKit WebEditorClient::handleKeyPress.
2007-01-31 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
Added a Range counter to detect leaks. Tweaked the Node counter.
Also fixed a TextIterator destructive modification bug that I noticed along the
way. No test case for this bug because no clients have been bitten by it
yet.
* dom/Node.cpp: Renamed NodeImplCounter to NodeCounter, changed counter
to unsigned, fixed formatting to match style guidelines.
(WebCore::NodeCounter::~NodeCounter):
(WebCore::Node::Node):
(WebCore::Node::~Node):
* dom/Range.cpp:
(WebCore::RangeCounter::~RangeCounter): Added.
(WebCore::Range::Range):
(WebCore::Range::~Range):
(WebCore::Range::ownerDocument): New accessor, used by TextIterator to avoid
annoying NULL checks.
* dom/Range.h:
* editing/TextIterator.cpp:
(WebCore::TextIterator::subrange):
(1) Don't initialize result with entireRange -- doing so would create a
PassRefPtr that pointed to entireRange, so this function would destructively
modify the Range you passed it. Initialize it with a new Range instead.
(2) Don't use a PassRefPtr as a local variable, because they have sneaky
semantics. Use a RefPtr instead.
(3) Don't call CharacterIterator::range() willy-nilly, since it does
non-trivial work. Use a local variable instead.
2007-01-31 Adele Peterson <adele@apple.com>
Reviewed by Darin.
WebCore part of fix for <rdar://problem/4521461> REGRESSION: when keyPress event changes form focus, inserted key goes to wrong control
Test: fast/events/keypress-focus-change.html
* editing/Editor.cpp:
(WebCore::selectionForEvent): Added. This computes a selection that considers the case where an event handler
has moved the selection outside of a text control. In that case, we use the target control's selection.
(WebCore::Editor::insertText): This gets the selectionForEvent, checks that the selection is editable,
and calls TypingCommand::insertText with the correct selection.
* editing/TypingCommand.h: Added a version of insertText that takes a selection. The old version of insertText will call this, and pass
in the frame's selection.
* editing/TypingCommand.cpp: (WebCore::TypingCommand::insertText): Added. Uses the passed in selection to
set the starting and ending selections correctly so that the editing machinery will insert the text in the correct place.
* page/Page.h: Added convenience method to get selection from focused or main frame.
* page/Page.cpp: (WebCore::Page::selection):
* html/HTMLInputElement.h: Added selection methods to get selection for text controls.
* html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::selection):
* html/HTMLTextAreaElement.h:
* html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::selection):
* rendering/RenderTextControl.h:
* rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::selection):
2007-01-31 Darin Adler <darin@apple.com>
- fix build
* ForwardingHeaders/wtf/ListHashSet.h: Added.
2007-01-31 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Return the correct selection color.
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::supportsFocusRing):
(WebCore::RenderThemeQt::platformActiveSelectionBackgroundColor):
(WebCore::RenderThemeQt::platformInactiveSelectionBackgroundColor):
(WebCore::RenderThemeQt::platformActiveSelectionForegroundColor):
(WebCore::RenderThemeQt::platformInactiveSelectionForegroundColor):
2007-01-31 Maciej Stachowiak <mjs@apple.com>
Reviewed by Mark.
- fixed <rdar://problem/4751164> REGRESSION: Safari places text on incorrect button when returning to a page via back [10541]
http://bugs.webkit.org/show_bug.cgi?id=10541
* dom/Document.cpp:
(WebCore::Document::formElementsState):
* dom/Document.h:
I couldn't figure out the back/forward support in the tests enough
to make an automated test, but this maual test reproduces the
problem 100% without this patch:
* manual-tests/back.html: Added.
* manual-tests/form-control-madness.html: Added.
2007-01-31 David Kilzer <ddkilzer@kilzer.net>
Reviewed by Mitz.
- fix http://bugs.webkit.org/show_bug.cgi?id=12490
Clean up canPlaceOnLine logic in bidi.cpp
No test cases since there is no change in functionality.
* rendering/bidi.cpp:
(WebCore::RenderBlock::findNextLineBreak): Simplify canFitOnLine expression.
2007-01-31 Zack Rusin <zack@kde.org>
Adding comments explaining how the focus ring implementation
works on the Qt platform and just move focus ring rendering
related code to the same spot.
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::setFocusRingColorChangeFunction):
(WebCore::focusRingColor):
(WebCore::GraphicsContext::drawFocusRing):
* platform/qt/TemporaryLinkStubs.cpp:
2007-01-31 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Properly propagate key events.
* page/qt/FrameQt.cpp:
* page/qt/FrameQt.h: Remove redundant method.
* platform/qt/ScrollViewCanvasQt.cpp:
(WebCore::ScrollViewCanvasQt::handleKeyEvent):
2007-01-31 George Staikos <staikos@kde.org>
Reviewed by Zack and Lars.
Fix double delete on cancel as well as assertion with proxy.
* platform/network/qt/ResourceHandleManagerQt.cpp:
(WebCore::WebCoreHttp::getConnection):
(WebCore::WebCoreHttp::onRequestFinished):
(WebCore::WebCoreHttp::cancel):
2007-01-31 Mark Rowe <mrowe@apple.com>
Reviewed by Oliver.
* dom/Document.h: Change #if XSLT_SUPPORT to #ifdef XSLT_SUPPORT.
2007-01-31 Lars Knoll <lars@trolltech.com>
Fix the Qt build.
* platform/network/qt/ResourceHandleQt.cpp:
(WebCore::ResourceHandle::setDefersLoading):
2007-01-31 Zack Rusin <zack@kde.org>
Reviewed by Eric.
Implement SVGImage on the Qt platform.
* WebCore.pro:
* loader/CachedImage.cpp:
(WebCore::CachedImage::createImage):
* platform/graphics/ImageBuffer.h:
* platform/graphics/qt/ImageBufferQt.cpp:
(WebCore::ImageBuffer::create):
(WebCore::ImageBuffer::ImageBuffer):
(WebCore::ImageBuffer::~ImageBuffer):
(WebCore::ImageBuffer::context):
(WebCore::ImageBuffer::pixmap):
* platform/graphics/svg/SVGImage.cpp:
(WebCore::SVGImage::nativeImageForCurrentFrame):
(WebCore::SVGImage::setData):
2007-01-30 Maciej Stachowiak <mjs@apple.com>
Reviewed by Brady.
- fixed <rdar://problem/4939366> REGRESSION: Assertion failure and crash when going back in history (12314)
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::createWindow): special case a frame name of "_blank"
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy): ditto
2007-01-30 Maciej Stachowiak <mjs@apple.com>
Reviewed by Anders.
- fixed <rdar://problem/4963871> REGRESSION: Crash occurs at WebCore::Frame::loader() when attempting to open a saved archive file
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::request): Removed obsolete FIXME.
(WebCore::DocumentLoader::initialRequest): Ditto.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::MainResourceLoader): Handle data loads from a timer, otherwise bad things happen.
(WebCore::MainResourceLoader::handleDataLoadNow):
(WebCore::MainResourceLoader::handleDataLoadSoon):
(WebCore::MainResourceLoader::loadNow):
(WebCore::MainResourceLoader::didCancel): cancel data load timer
* loader/MainResourceLoader.h:
2007-01-30 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin.
<rdar://problem/4961953> Stop using NSString deprecated methods like initWithCString:
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/svg/filters/cg/WKArithmeticFilter.m:
(-[WKArithmeticFilter init]):
* platform/graphics/svg/filters/cg/WKComponentMergeFilter.m:
(-[WKComponentMergeFilter init]):
* platform/graphics/svg/filters/cg/WKDiffuseLightingFilter.m:
(-[WKDiffuseLightingFilter init]):
* platform/graphics/svg/filters/cg/WKDiscreteTransferFilter.m:
(-[WKDiscreteTransferFilter init]):
* platform/graphics/svg/filters/cg/WKDisplacementMapFilter.m:
(-[WKDisplacementMapFilter init]):
* platform/graphics/svg/filters/cg/WKDistantLightFilter.m:
(-[WKDistantLightFilter init]):
* platform/graphics/svg/filters/cg/WKGammaTransferFilter.m:
(-[WKGammaTransferFilter init]):
* platform/graphics/svg/filters/cg/WKLinearTransferFilter.m:
(-[WKLinearTransferFilter init]):
* platform/graphics/svg/filters/cg/WKNormalMapFilter.m:
(-[WKNormalMapFilter init]):
* platform/graphics/svg/filters/cg/WKPointLightFilter.m:
(-[WKPointLightFilter init]):
* platform/graphics/svg/filters/cg/WKSpecularLightingFilter.m:
(-[WKSpecularLightingFilter init]):
* platform/graphics/svg/filters/cg/WKSpotLightFilter.m:
(-[WKSpotLightFilter init]):
* platform/graphics/svg/filters/cg/WKTableTransferFilter.m:
(-[WKTableTransferFilter init]):
2007-01-30 David Hyatt <hyatt@apple.com>
Fix for Radar bug #4679426, golden gate bridge Web site layout broken.
This is a regression caused by the addition of :lang support. This
feature caused us to accept any pseudo-class/element with function
arguments, even ones we couldn't handle. The site used such a construct
in conjunction with :not, which turned :not(something-crazy) into not(false).
This ended up being "true", and so we started matching a rule we used to
reject.
The fix is to now aggressively parse pseudo-elements and classes and to
cause the rejection of an entire rule if any pseudoclass or element within
any simple selector of that rule is unrecognized.
Reviewed by darin
fast/css/invalid-pseudo-classes.html
* css/CSSGrammar.y:
* css/CSSSelector.cpp:
(WebCore::CSSSelector::extractPseudoType):
* css/CSSSelector.h:
(WebCore::CSSSelector::):
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::checkOneSelector):
2007-01-30 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12487
REGRESSION: Repro crash when a second background image is animated
Test: fast/images/animated-background-image-crash.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::arenaDelete): Deref() all background images and the
border image.
2007-01-30 Darin Adler <darin@apple.com>
Reviewed by Maciej.
* dom/EventTarget.h:
* dom/EventTarget.cpp: (WebCore::EventTarget::toNode):
Use EventTargetNode instead of Node. Removed unneeded includes.
Make EventTarget's destructor protected to make it clear that you
should never delete one.
* dom/EventTargetNode.h:
(WebCore::EventTargetNode::toNode):
Tweaked formatting. Updated for change to return value.
* platform/graphics/BitmapImage.h: Updated comment for clarity.
Marked FrameData Noncopyable.
* platform/graphics/Image.h: Tweaked formatting.
* platform/graphics/ImageAnimationObserver.h:
Make ImageAnimationObserver's destructor protected to make it clear that you
should never delete one.
2007-01-30 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin (by way of Hyatt).
- fix http://bugs.webkit.org/show_bug.cgi?id=12373
ASSERTION FAILURE: !child->needsLayout() on paypal.com
Test: fast/table/inline-form-assert.html
* rendering/RenderContainer.cpp:
(WebCore::RenderContainer::layout): Changed the assertion to ignore inlines.
2007-01-30 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12486
XPathNSResolver.lookupNamespaceURI should return null if no URI is found
* xml/XPathNSResolver.idl: added [ConvertNullStringTo=Null].
2007-01-30 Anders Carlsson <acarlsson@apple.com>
Reviewed by Maciej.
Revert the parts of 19244 that removed deferring NSURLConnections, that was not a correct change.
Remove ASSERTS from loader.cpp that aren't true anymore since the callbacks are invoked without a handle
when loading a subresource from an archive.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::loadNow):
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::releaseResources):
(WebCore::ResourceLoader::load):
(WebCore::ResourceLoader::setDefersLoading):
* loader/loader.cpp:
(WebCore::Loader::didFail):
(WebCore::Loader::didReceiveResponse):
(WebCore::Loader::didReceiveData):
* platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::ResourceHandle):
(WebCore::ResourceHandle::create):
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::setDefersLoading):
2007-01-30 Darin Adler <darin@apple.com>
Reviewed by John.
- fix for <rdar://problem/4911504> REGRESSION: With a image selected, ctrl-clicking
on page displays the wrong contextual menu items "Search in Google", "Search in Spotlight"
and "Look up in Dictionary"
* platform/ContextMenu.cpp:
(WebCore::selectionContainsPossibleWord): Added. Returns true if there are some
non-whitespace characters in the selection.
(WebCore::ContextMenu::populate): Don't add SearchSpotlightItem, SearchWebItem,
or LookInDictionaryItem if selectionContainsPossibleWord returns false.
2007-01-30 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Oliver.
Respect stroke-width in absolute repaint rect calculations for SVG text.
Added test: svg/custom/text-repaint-including-stroke.svg
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::relativeBBox):
2007-01-30 Steve Falkenburg <sfalken@apple.com>
Reviewed by Oliver.
Add missing includes.
* ksvg2/svg/SVGElementInstance.cpp:
2007-01-30 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12452
XPath id() function is not supported
* xml/XPathFunctions.cpp:
(WebCore::XPath::isWhitespace): A helper to detect XML whitespace.
(WebCore::XPath::FunId::isConstant):
(WebCore::XPath::FunId::doEvaluate):
(WebCore::XPath::FunctionMapping::):
Implemented id().
2007-01-30 Zack Rusin <zrusin@trolltech.com>
Reviewed by Sam.
Make the gradients work on the Qt platform.
* platform/graphics/svg/SVGPaintServerGradient.h:
* platform/graphics/svg/SVGPaintServerLinearGradient.h:
* platform/graphics/svg/SVGPaintServerRadialGradient.h:
* platform/graphics/svg/qt/SVGPaintServerGradientQt.cpp:
(WebCore::SVGPaintServerGradient::fillColorArray):
(WebCore::SVGPaintServerGradient::setup):
* platform/graphics/svg/qt/SVGPaintServerLinearGradientQt.cpp:
(WebCore::SVGPaintServerLinearGradient::setupGradient):
* platform/graphics/svg/qt/SVGPaintServerRadialGradientQt.cpp:
(WebCore::SVGPaintServerRadialGradient::setupGradient):
2007-01-30 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Eric & Oliver. Leak related fixes reviewed by Mark.
Finally make the SVG <use> implementation use the proper "shadow tree" concept,
which is also used by the HTML forms implementation. It's the first time in ksvg
history that <use> is not implement as a crude hack, but proper & sane.
Implement deep expansion of use trees both for the instance & shadow tree.
(<use> on a <symbol> containing a <g> containg a <use> element referencing a <rect>)
The shadow tree is free of any symbol/use tags, but is properly expanded to the
actual referenced content. The instance tree (SVGElementInstance objects) now exactly
exposes the "expanded" shadow tree, as required by the specification. Previously
we cloned referenced <use> elements, so our faked use shadow tree itself contained
<use> elements. That lead to very nasty bugs - finally these dirty pieces are gone.
Checked twice that the updating logic works for all weird "deep expansions" cases. Example:
<rect id="someRect"/> <g id="g"> <symbol> <use xlink:href="#someRect"/> </g> <use xlink:href="#g" id="use"/>
If you walk through the instanceRoot using JavasScript, and explicitely modify some propertties of "someRect"
-> all instances get updated correctly. For such simple cases it doesn't even involve recloning the shadow tree!
SVGElementInstance is now an EventTarget, as demanded by the specification - sending events to <use> instances
will be implemented in a follow-up patch - as well as the "share event listeners with referenced target" logic.
Fixes all updating/stability issues with svg/carto.net/window.svg.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=6000 (<use> does not handle recursion safely)
Added test: svg/custom/use-on-use.svg (deep use referencing)
Added test: svg/custom/use-on-g-containing-use.svg (nested deep use referencing)
Added test: svg/custom/use-modify-target-container.svg (instanceRoot scripting, modifying <g> target)
Added test: svg/custom/use-modify-target-symbol.svg (instanceRoot scripting, modfiying <symbol> target)
Added test: svg/custom/use-modify-container-in-target.svg (modify <g> within referenced use target -> needs to update instances)
Added test: svg/custom/use-recursion-1.svg (referencing container, whose children reference itself)
Added test: svg/custom/use-recursion-2.svg (<use> self referencing)
Added test: svg/custom/use-recursion-3.svg (<use> self rerencing, within <use> target)
Added test: svg/custom/use-recursion-4.svg (cyclic referencing, within <use> target)
* bindings/scripts/CodeGeneratorJS.pm:
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::initForStyleResolve):
(WebCore::CSSStyleSelector::adjustRenderStyle):
* ksvg2/misc/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::removeTimeContainer):
* ksvg2/svg/SVGElement.cpp:
(WebCore::SVGElement::SVGElement):
(WebCore::SVGElement::viewportElement):
* ksvg2/svg/SVGElement.h:
(WebCore::SVGElement::isShadowNode):
(WebCore::SVGElement::shadowParentNode):
(WebCore::SVGElement::setShadowParentNode):
* ksvg2/svg/SVGElementInstance.cpp:
(WebCore::SVGElementInstance::SVGElementInstance):
(WebCore::SVGElementInstance::correspondingUseElement):
(WebCore::SVGElementInstance::shadowTreeElement):
(WebCore::SVGElementInstance::setShadowTreeElement):
(WebCore::containsUseChildNode):
(WebCore::SVGElementInstance::updateInstance):
(WebCore::SVGElementInstance::addEventListener):
(WebCore::SVGElementInstance::removeEventListener):
(WebCore::SVGElementInstance::dispatchEvent):
* ksvg2/svg/SVGElementInstance.h:
(WebCore::SVGElementInstance::refEventTarget):
(WebCore::SVGElementInstance::derefEventTarget):
(WebCore::SVGElementInstance::hasOneRef):
(WebCore::SVGElementInstance::refCount):
(WebCore::SVGElementInstance::setParent):
(WebCore::SVGElementInstance::parent):
* ksvg2/svg/SVGElementInstance.idl:
* ksvg2/svg/SVGGElement.cpp:
(WebCore::SVGGElement::localMatrix):
* ksvg2/svg/SVGGElement.h:
* ksvg2/svg/SVGHiddenElement.h: Removed.
* ksvg2/svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::~SVGSVGElement):
* ksvg2/svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::updateElementInstance):
* ksvg2/svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::removedFromDocument):
(WebCore::SVGUseElement::notifyAttributeChange):
(WebCore::dumpInstanceTree):
(WebCore::SVGUseElement::buildPendingResource):
(WebCore::SVGUseElement::attach):
(WebCore::SVGUseElement::buildInstanceTree):
(WebCore::SVGUseElement::handleDeepUseReferencing):
(WebCore::SVGUseElement::buildShadowTree):
(WebCore::SVGUseElement::expandUseElementsInShadowTree):
(WebCore::SVGUseElement::attachShadowTree):
(WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
(WebCore::SVGUseElement::transferUseAttributesToReplacedElement):
* ksvg2/svg/SVGUseElement.h:
2007-01-30 Maciej Stachowiak <mjs@apple.com>
Reviewed by Eric.
<rdar://problem/4928646> REGRESSION: manual-tests/remove-input-file-onchange.html crashes
* platform/FileChooser.h:
(WebCore::FileChooser::disconnected): New method, so the RenderFileControl can tell when it's
gotten disconected.
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::valueChanged): Avoid calling repainted() when onChange()
handler destroyed us.
2007-01-30 Simon Hausmann <hausmann@kde.org>
Reviewed by Zack.
Combine libJavaScriptCore into libWebKitQt.
Build with ELF visibility if possible.
* WebCore.pro:
2007-01-30 Zack Rusin <zack@kde.org>
The method has been removed from the header
(make it compile)
* platform/network/qt/ResourceHandleQt.cpp:
2007-01-30 Zack Rusin <zrusin@trolltech.com>
Reviewed by aroben
Compile fix.
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::releaseResources):
(WebCore::ResourceLoader::setDefersLoading):
2007-01-29 Zack Rusin <zack@kde.org>
Reviewed by Lars
Propagate the allows-scrolling property on the frames
correctly. If the frame has been constructed as non-
scrolling, respect that and don't show scrollbars.
* platform/ScrollView.h:
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::ScrollView):
(WebCore::ScrollView::setHScrollbarMode):
(WebCore::ScrollView::setVScrollbarMode):
(WebCore::ScrollView::setAllowsScrolling):
2007-01-29 Geoffrey Garen <ggaren@apple.com>
I am the chosen one! I have seen the faces of the final five! I will
save the WebKit build!
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::load):
2007-01-30 Graham Dennis <graham.dennis@gmail.com>
Reviewed by Maciej.
Part of fix for http://bugs.webkit.org/show_bug.cgi?id=10725
Image data in from RTFD clipboard data thrown away
ResourceHandles no longer need to be able to defer loading as that is
now handled by the ResourceLoader.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::loadNow): updated to remove defersLoading argument.
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::releaseResources): release the deferred request.
(WebCore::ResourceLoader::load): defer creating the ResourceHandle instead of
asking the ResourceHandle to defer loading.
(WebCore::ResourceLoader::setDefersLoading): create the ResourceHandle if we have deferred creating it.
* loader/ResourceLoader.h:
* platform/network/ResourceHandle.cpp: ResourceHandle's don't need to know about deferLoading.
(WebCore::ResourceHandle::ResourceHandle):
(WebCore::ResourceHandle::create):
* platform/network/ResourceHandle.h: ditto.
* platform/network/ResourceHandleInternal.h: ditto.
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
* platform/network/mac/ResourceHandleMac.mm: ditto.
(WebCore::ResourceHandle::start):
2007-01-29 Brady Eidson <beidson@apple.com>
Reviewed by Alice
Lets use smart pointers, shall we?
* platform/network/ResourceHandleInternal.h:
2007-01-29 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/4960137>
ASSERTION FAILURE calling SelectionController::setBaseAndExtent (11833)
* editing/SelectionController.cpp:
(WebCore::SelectionController::setSelection): Hand off the selection
to the selectionController responsible for it, instead of asserting.
A selection object can't be constructed with endpoints in different
documents, so this code is only necessary for one endpoint.
2007-01-29 Ada Chan <adachan@apple.com>
Reviewed by Brady.
Moved the update of the title of the current entry in the backforward list to WebCore.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didChangeTitle):
2007-01-29 Adele Peterson <adele@apple.com>
Reviewed by Darin.
More preparation for event handling fixes.
* bridge/EditorClient.h: Removed EventTargetNode parameter from handleKeyPress since we can just get that from the event.
* dom/EventTargetNode.cpp: (WebCore::EventTargetNode::defaultEventHandler): ditto.
* page/EventHandler.cpp: (WebCore::EventHandler::defaultKeyboardEventHandler): ditto.
* page/EventHandler.h: ditto.
* platform/graphics/svg/SVGImageEmptyClients.h: (WebCore::SVGEmptyEditorClient::handleKeyPress): ditto.
* editing/Editor.h:
* editing/Editor.cpp:
(WebCore::Editor::handleKeyPress): Removed EventTargetNode parameter.
(WebCore::Editor::execCommand): Made commandMap use AtomicStringImpls instead of Strings.
(WebCore::Editor::insertText): Moved from the bridge.
* page/mac/WebCoreFrameBridge.h: Moved insertText method to Editor.
* page/mac/WebCoreFrameBridge.mm:
* WebCore.exp: Updated exports.
2007-01-29 Anders Carlsson <acarlsson@apple.com>
Reviewed by Geoff.
<rdar://problem/4960097>
http://bugs.webkit.org/show_bug.cgi?id=12444
Assertion failure in -[WebCoreFrameBridge installInFrame:]
The problem was that the XML tokenizer didn't create elements with
createdByParser set to true.
* dom/Document.cpp:
(WebCore::Document::createElement):
New method which takes a QName. This is used by both the XML tokenizer and createElementNS.
(WebCore::Document::createElementNS):
Call new createElement method.
* dom/XMLTokenizer.h:
* dom/XMLTokenizer.cpp:
(WebCore::XMLTokenizer::XMLTokenizer):
(WebCore::XMLTokenizer::~XMLTokenizer):
Use an OwnPtr for the pending callbacks object. Also, use String instead of StringImpl in the hash map.
(WebCore::toString):
(WebCore::XMLTokenizer::startElementNs):
Call createElement.
2007-01-29 Brady Eidson <beidson@apple.com>
Reviewed by Oliver
http://bugs.webkit.org/show_bug.cgi?id=12465
Only set the iconURL port for non-zero ports
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::iconURL):
2007-01-29 John Sullivan <sullivan@apple.com>
* platform/network/mac/ResourceRequestMac.mm:
Build fix -- removed #import of no-longer-extant WebDataProtocol.h (and also one of the
two #imports for WebCoreSystemInterface.h, while I was at it)
2007-01-29 Anders Carlsson <acarlsson@apple.com>
Reviewed by Oliver.
* page/DragController.cpp:
(WebCore::DragController::dragEnteredOrUpdated):
Only try a drag operation if the drag client explicitly specified that it is OK
2007-01-29 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
Migrated more drag logic and state to WebCore
* page/DragClient.h:
* page/DragController.cpp:
(WebCore::DragController::delegateDragSourceAction):
New forwarding method for the UI delegate
* page/DragController.h:
(WebCore::DragController::dragOffset):
Now store the drag offset -- the offset of the cursor relative to the drag image)
in DragController
* page/EventHandler.cpp:
(WebCore::EventHandler::allowDHTMLDrag):
Moved from WebFrameBridge
* page/EventHandler.h:
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::eventMayStartDrag):
(WebCore::EventHandler::handleDrag):
EventHandlerMac now uses EventHandler::allowDHTMLDrag rather than the
implementation in WebFrameBridge
* page/mac/WebCoreFrameBridge.h:
removed definition of allowDHTMLDrag from WebFrameBridge
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyDragClient::dragSourceActionMaskForPoint):
Updated empty DragClient
2007-01-29 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12359
XPathEvaluator may return some nodes more than once in a result set
Test: fast/xpath/nodeset-duplicates.html
* xml/XPathPath.cpp:
(WebCore::XPath::LocationPath::doEvaluate): Ensure uniqueness of elements
in the node-set.
* xml/XPathPredicate.cpp:
(WebCore::XPath::Union::doEvaluate): Fixed a uniqueness algorithm that was
already present here. Added a FIXME about incorrect result ordering.
2007-01-29 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12340
XPathEvaluator behavior does not match Firefox - name() and attribute nodes
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunName::doEvaluate): Do not try to append a prefix if it doesn't exist.
2007-01-29 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=11815
XPathEvaluator behavior does not match Firefox - substring() and empty element
Test: fast/xpath/empty-string-substring.html
* xml/XPathValue.cpp:
(WebCore::XPath::Value::Value):
* xml/XPathValue.h:
Added a constructor taking const char*, so that string literals and arrays don't
get converted to boolean values.
2007-01-29 Zack Rusin <zrusin@trolltech.com>
Cosmetic fixes - don't resize the widget in the constructor
(it was a hack from the initial port) and fix the paint
signature.
* platform/qt/ScrollViewCanvasQt.cpp:
(WebCore::ScrollViewCanvasQt::ScrollViewCanvasQt):
* platform/qt/WidgetQt.cpp:
(WebCore::Widget::paint):
2007-01-29 Maciej Stachowiak <mjs@apple.com>
- change from struct to class to make picky compilers happy
* loader/SubstituteData.h:
2007-01-30 Mark Rowe <mrowe@apple.com>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12458
Bug 12458: Crash in W3C-SVG-1.1/animate-elem-09-t.svg running layout tests under guard malloc
* ksvg2/svg/SVGAnimationElement.cpp:
(WebCore::parseValues): ptr either points to a ';' or off the end of the buffer. We're
interested in what comes before the ';', so start there instead.
2007-01-29 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars.
Take the scrollbars into considation when computing
the contents size of the main frame.
* platform/qt/PlatformScrollBarQt.cpp:
(WebCore::PlatformScrollbar::paint):
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::visibleWidth):
(WebCore::ScrollView::visibleHeight):
(WebCore::ScrollView::visibleContentRect):
* platform/qt/WidgetQt.cpp:
(WebCore::Widget::invalidate):
(WebCore::Widget::invalidateRect):
2007-01-29 Maciej Stachowiak <mjs@apple.com>
- fix includes
* loader/SubstituteData.h:
2007-01-29 Maciej Stachowiak <mjs@apple.com>
- added new file that I forgot in the last commit
* loader/SubstituteData.h: Added.
(WebCore::SubstituteData::SubstituteData):
(WebCore::SubstituteData::isValid):
(WebCore::SubstituteData::content):
(WebCore::SubstituteData::mimeType):
(WebCore::SubstituteData::textEncoding):
(WebCore::SubstituteData::failingURL):
2007-01-29 Maciej Stachowiak <mjs@apple.com>
Reviewed by Mark.
- made data loading cross-platform
- fixed <rdar://problem/4910106>
* WebCore.exp:
* WebCore.xcodeproj/project.pbxproj:
* loader/CachedResource.cpp:
* loader/CachedResource.h:
* loader/DocLoader.cpp:
(WebCore::DocLoader::requestResource):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::setRequest):
(WebCore::DocumentLoader::urlForHistory):
(WebCore::DocumentLoader::unreachableURL):
* loader/DocumentLoader.h:
(WebCore::DocumentLoader::substituteData):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::shouldReloadToHandleUnreachableURL):
(WebCore::FrameLoader::reloadAllowingStaleData):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::startLoadingMainResource):
(WebCore::FrameLoader::startLoading):
(WebCore::FrameLoader::checkNavigationPolicy):
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::willSendRequest):
(WebCore::MainResourceLoader::continueAfterContentPolicy):
(WebCore::MainResourceLoader::handleEmptyLoad):
(WebCore::MainResourceLoader::handleDataLoad):
(WebCore::MainResourceLoader::loadNow):
(WebCore::MainResourceLoader::load):
* loader/MainResourceLoader.h:
* loader/mac/DocumentLoaderMac.mm:
* loader/mac/WebDataProtocol.h: Removed.
* loader/mac/WebDataProtocol.mm: Removed.
* loader/qt/DocumentLoaderQt.cpp:
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::createDocumentLoader):
2007-01-29 Zack Rusin <zrusin@trolltech.com>
Order the build files alphabetically instead of
the random mess we had before.
* WebCore.pro:
2007-01-29 Zack Rusin <zack@kde.org>
Reviewed by Lars
Use the platform independent scrollbar code.
Remove the redundant empty stubs and forward
few missing platform scrollbar calls.
* WebCore.pro:
* platform/qt/PlatformScrollBarQt.cpp:
(WebCore::PlatformScrollbar::paint):
(WebCore::PlatformScrollbar::setRect):
2007-01-29 Lars Knoll <lars@trolltech.com>
Reviewed by Zack
Fix the way we handle native widgets (QWidget) inside
WebCore. Now WebCore::Widget owns the QWidget in all
cases. This is the only way to get well defined semantics
for all teh native widgets we have (currently ScrollView
and ScrollBar, but plugins will follow).
This has the side effect that one cannot rely on a defined
lifetime of a QWebFrame when using the API.
* platform/Widget.h:
* platform/qt/PlatformScrollBarQt.cpp:
(WebCore::PlatformScrollbar::PlatformScrollbar):
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::addChild):
(WebCore::ScrollView::removeChild):
* platform/qt/WidgetQt.cpp:
(WebCore::WidgetPrivate::WidgetPrivate):
(WebCore::WidgetPrivate::~WidgetPrivate):
(WebCore::Widget::qwidget):
2007-01-28 George Staikos <staikos@kde.org>
Reviewed by Maciej.
Don't send data during a redirect -> causes assert failure.
* platform/network/qt/ResourceHandleManagerQt.cpp:
(WebCore::ResourceHandleManager::receivedData):
2007-01-29 Mark Rowe <mrowe@apple.com>
Reviewed by Brady.
http://bugs.webkit.org/show_bug.cgi?id=11085
Bug 11085: REGRESSION: favicon.ico always looked for on port 80
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::iconURL): Copy the port over to the favicon URL.
2007-01-28 Adam Roben <aroben@apple.com>
Reviewed by Adele.
Fix http://bugs.webkit.org/show_bug.cgi?id=12453
REGRESSION(r19197): Tabbing into web page requires two key presses
All layout tests pass.
* page/FocusController.cpp:
(WebCore::FocusController::advanceFocus): If there's no focused frame,
actually go ahead and find a focusable node instead of just focusing
the main frame and quitting. This behavior was a holdover from a
previous desired tabbing behavior with respect to frames.
2007-01-28 David Kilzer <ddkilzer@webkit.org>
Reviewed by Darin and David Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12423
Mixing white-space:pre text with non white-space:pre text does not wrap properly
Test: fast/block/basic/white-space-pre-wraps.html
* rendering/bidi.cpp:
(WebCore::RenderBlock::findNextLineBreak): Wrap a non-wrapping text run if it
appears on a line with previous text runs that do wrap.
2007-01-28 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=8360
Repro crash when onscroll handler deletes the scrolled object
Test: fast/layers/removed-by-scroll-handler.html
* page/FrameView.cpp:
(WebCore::FrameViewPrivate::FrameViewPrivate): Added a m_enqueueEvents count.
(WebCore::FrameView::layout): Raise the enqueue count before starting layout and
until after enqueued events are dispatched.
(WebCore::FrameView::scheduleEvent): Made this function dispatch the event
immediately unless the enqueue count is positive.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollToOffset): Schedule the scroll event through the
FrameView.
(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::RenderLayer::updateScrollInfoAfterLayout):
(WebCore::Marquee::start):
2007-01-28 Charles Ying <charles_ying@yahoo.com>
Reviewed by eseidel. Landed by eseidel.
Fix http://bugs.webkit.org/show_bug.cgi?id=12429
animateTransform rotate, with cx/cy is broken
SVGTransform now contains a float point to store the rotation center, needed
to track rotation center for interpolation by animateTransform.
SVGTransform now has an additional constructor:
SVGTransform(type) to make empty base value transforms that match their
distanced values.
Removed m_colorDistance and m_transformDistance from their respective classes
as they are now computed at update time.
Fix a case where animateTransform did not parse transform values correctly
according to BNF in W3C spec:
Test case in:
* manual-tests/animation/animateTransform-toanimation.svg: Added.
Fix a case where animateTransform only specified a to animation only.
Test case in:
* manual-tests/animation/animateTransform-parser.svg: Added.
* ksvg2/svg/SVGAnimateColorElement.cpp:
(WebCore::SVGAnimateColorElement::updateAnimationBaseValueFromElement):
(WebCore::SVGAnimateColorElement::updateAnimatedValue):
(WebCore::SVGAnimateColorElement::calculateFromAndToValues):
* ksvg2/svg/SVGAnimateColorElement.h:
* ksvg2/svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::updateAnimatedValue):
(WebCore::SVGAnimateTransformElement::updateAnimationBaseValueFromElement):
(WebCore::SVGAnimateTransformElement::calculateFromAndToValues):
(WebCore::SVGAnimateTransformElement::parseTransformValue):
* ksvg2/svg/SVGAnimateTransformElement.h:
* ksvg2/svg/SVGTransform.cpp:
(SVGTransform::SVGTransform):
(SVGTransform::angle):
(SVGTransform::rotationCenter):
(SVGTransform::setTranslate):
(SVGTransform::setScale):
(SVGTransform::setRotate):
(SVGTransform::setSkewX):
(SVGTransform::setSkewY):
* ksvg2/svg/SVGTransform.h:
* ksvg2/svg/SVGTransformDistance.cpp:
(WebCore::SVGTransformDistance::SVGTransformDistance):
(WebCore::SVGTransformDistance::scaledDistance):
(WebCore::SVGTransformDistance::addSVGTransforms):
(WebCore::SVGTransformDistance::addSVGTransform):
(WebCore::SVGTransformDistance::addToSVGTransform):
(WebCore::SVGTransformDistance::distance):
* ksvg2/svg/SVGTransformDistance.h:
* manual-tests/animation/animateTransform-parser.svg: Added.
* manual-tests/animation/animateTransform-toanimation.svg: Added.
2007-01-27 Adam Roben <aroben@apple.com>
Reviewed by Ada.
Fix <rdar://problem/4957184> REGRESSION: After creating a new mail
message, the caret is automatically in message body
-[WebHTMLView _updateActiveState] was calling
FocusController::focusedOrMainFrame, which had the surprising
side-effect of setting the focused frame if there was none. The fix
was to remove this side-effect.
No tests possible, as this bug involves focus outside the WebView,
which we have no support for in DRT.
Change inspired by Dave Harrison.
* page/FocusController.cpp:
(WebCore::FocusController::focusedOrMainFrame): Removed this method's
non-obvious side-effect of setting the focused frame.
* WebCore.xcodeproj/project.pbxproj: Version wars.
2007-01-27 Don Gibson <dgibson77@gmail.com>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=11880: Improve some egregious
Windows form control drawing issues:
Provide Classic mode fallbacks for the button/textfield drawing
routines.
Provide some basic drawing of menulists (still relatively broken).
Some cleanup.
* platform/win/TemporaryLinkStubs.cpp:
(WebCore::RenderThemeWin::systemFont):
* rendering/RenderThemeWin.cpp:
(WebCore::m_menuListTheme):
(WebCore::RenderThemeWin::close):
(WebCore::RenderThemeWin::determineClassicState):
(WebCore::RenderThemeWin::getThemeData):
(WebCore::RenderThemeWin::paintButton):
(WebCore::RenderThemeWin::paintTextField):
(WebCore::RenderThemeWin::paintMenuList):
(WebCore::RenderThemeWin::paintMenuListButton):
* rendering/RenderThemeWin.h:
(WebCore::ThemeData::m_classicState):
(WebCore::RenderThemeWin::setRadioSize):
(WebCore::RenderThemeWin::paintTextArea):
2007-01-27 David Kilzer <ddkilzer@webkit.org>
Reviewed by Adam.
- fix http://bugs.webkit.org/show_bug.cgi?id=12260
Windows platform build is not maintained
* loader/win/FrameLoaderWin.cpp:
* platform/network/win/ResourceHandleWin.cpp:
* platform/win/TemporaryLinkStubs.cpp:
(WebCore::contextMenuItemTagOpenLinkInNewWindow):
(WebCore::contextMenuItemTagDownloadLinkToDisk):
(WebCore::contextMenuItemTagCopyLinkToClipboard):
(WebCore::contextMenuItemTagOpenImageInNewWindow):
(WebCore::contextMenuItemTagDownloadImageToDisk):
(WebCore::contextMenuItemTagCopyImageToClipboard):
(WebCore::contextMenuItemTagOpenFrameInNewWindow):
(WebCore::contextMenuItemTagCopy):
(WebCore::contextMenuItemTagGoBack):
(WebCore::contextMenuItemTagGoForward):
(WebCore::contextMenuItemTagStop):
(WebCore::contextMenuItemTagReload):
(WebCore::contextMenuItemTagCut):
(WebCore::contextMenuItemTagPaste):
(WebCore::contextMenuItemTagNoGuessesFound):
(WebCore::contextMenuItemTagIgnoreSpelling):
(WebCore::contextMenuItemTagLearnSpelling):
(WebCore::contextMenuItemTagSearchWeb):
(WebCore::contextMenuItemTagLookUpInDictionary):
(WebCore::contextMenuItemTagOpenLink):
(WebCore::contextMenuItemTagIgnoreGrammar):
(WebCore::contextMenuItemTagSpellingMenu):
(WebCore::contextMenuItemTagShowSpellingPanel):
(WebCore::contextMenuItemTagCheckSpelling):
(WebCore::contextMenuItemTagCheckSpellingWhileTyping):
(WebCore::contextMenuItemTagCheckGrammarWithSpelling):
(WebCore::contextMenuItemTagFontMenu):
(WebCore::contextMenuItemTagBold):
(WebCore::contextMenuItemTagItalic):
(WebCore::contextMenuItemTagUnderline):
(WebCore::contextMenuItemTagOutline):
(WebCore::contextMenuItemTagWritingDirectionMenu):
(WebCore::contextMenuItemTagDefaultDirection):
(WebCore::contextMenuItemTagLeftToRight):
(WebCore::contextMenuItemTagRightToLeft):
(WebCore::DocumentLoader::unreachableURL):
(WebCore::FrameLoader::redirectDataToPlugin):
(WebCore::FrameLoader::partClearedInBegin):
(WebCore::FrameLoader::createPlugin):
2007-01-27 Sam Weinig <sam@webkit.org>
Reviewed by Mitz.
- Patch for http://bugs.webkit.org/show_bug.cgi?id=11957
REGRESSION: Unordered List Bullets too big and changing from size
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::paint): Explicitly set the stroke size to 1.0f.
2007-01-27 Lars Knoll <lars@trolltech.com>
Fix the Qt build and disable the usage
of QScrollbars for PlatformScrollBar for
now as it causes crashes in the layout tests.
* WebCore.pro:
* ksvg2/svg/SVGTransformDistance.cpp:
* page/qt/FrameQt.cpp:
(WebCore::FrameQt::FrameQt):
(WebCore::FrameQt::bindingRootObject):
(WebCore::FrameQt::createRootObject):
* page/qt/FrameQt.h:
* platform/qt/PlatformScrollBarQt.cpp:
(WebCore::PlatformScrollbar::PlatformScrollbar):
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::addChild):
2007-01-27 David Kilzer <ddkilzer@kilzer.net>
Reviewed by NOBODY (buildbot build fix).
* ksvg2/svg/ColorDistance.cpp:
(WebCore::ColorDistance::scaledDistance): Added static cast of arguments to int.
2007-01-27 Rob Buis <buis@kde.org>
Reviewed by NOBODY (typo in method name fix).
* ksvg2/svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::addSVGWindowEventListener):
(WebCore::SVGSVGElement::parseMappedAttribute):
* ksvg2/svg/SVGSVGElement.h:
2007-01-27 Eric Seidel <eric@webkit.org>
Reviewed by olliej.
Fix support for SVG's <set> element.
Manual test added.
* ksvg2/svg/SVGSetElement.cpp:
(WebCore::SVGSetElement::updateAnimatedValue):
(WebCore::SVGSetElement::calculateFromAndToValues):
* ksvg2/svg/SVGSetElement.h:
* manual-tests/animation/set-to.svg: Added.
2007-01-27 Alexey Proskuryakov <ap@webkit.org>
Release build fix.
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::checkForHeadCharset):
2007-01-27 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12389
Chinese decoding error at hk.antispam.yahoo.com
Test: fast/encoding/noscript-in-head.html
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::checkForHeadCharset): We were already allowing
NOSCRIPT tags in head, let's actually skip over their content.
2007-01-26 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
Fixed <rdar://problem/4608404> WebScriptObject's _executionContext lack
of ownership policy causes crashes (e.g., in Dashcode)
Added RootObject ref-counting goodness.
* page/mac/FrameMac.h:
* page/mac/FrameMac.mm:
(WebCore::FrameMac::cleanupPluginObjects): Invalidate our RootObjects
instead of detroying them. Track _bindingRootObject separately from the
rest of our RootObjects, since it has its own variable.
* page/mac/WebCoreFrameBridge.mm:
(createRootObject): Use the Frame's new, more encapsulated function to
create a RootObject.
* bindings/objc/WebScriptObject.mm: Nixed rootObject setters, since they
were unused and they complicated reference-counting.
2007-01-26 David Kilzer <ddkilzer@webkit.org>
Reviewed by Eric.
Release build fix.
* ksvg2/svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::calculateValueIndexAndPercentagePast): Added static cast
to unsigned when calculating flooredValueIndex.
2007-01-26 Darin Adler <darin@apple.com>
- checked in slightly newer revision of the patch below
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
Grouped all the unimplemented values at the bottom. Fixed the ifdef for
CSS_PROP__WEBKIT_DASHBOARD_REGION so that it compiles on all platforms.
* css/cssparser.cpp: (WebCore::CSSParser::parseValue): Removed default
case and added type so that the compiler warns about missing properties.
* css/cssstyleselector.cpp: (WebCore::CSSStyleSelector::applyProperty): Ditto.
2007-01-26 Darin Adler <darin@apple.com>
Reviewed by Beth.
- fix http://bugs.webkit.org/show_bug.cgi?id=12412
"unimplemented propertyID: 46" seen at dojotoolkit.org
Covered by fast/css/computed-style.html
* css/CSSPropertyNames.in: Sorted the file into two separate sections, one
for properties without the -webkit- prefix and another for properties with.
* css/makeprop: Generate a CSSPropertyID enum instead of a set of #defines.
Removed unused CSS_PROP_MIN and CSS_PROP_MAX. Renamed CSS_PROP_TOTAL to
numCSSProperties and changed it to a const int instead of #define.
Added a declaration of getPropertyName in the header. Changed the return
type of getPropertyName to const char* and the parameter type to CSSPropertyID.
* css/CSSComputedStyleDeclaration.cpp: Sort the lists of properties in
an easier to maintain order -- properties without a WebKit prefix first.
(WebCore::valueForLength): Changed return value to PassRefPtr.
(WebCore::valueForMaxLength): Ditto.
(WebCore::valueForBorderStyle): Ditto.
(WebCore::valueForTextAlign): Ditto.
(WebCore::valueForAppearance): Added.
(WebCore::valueForMarginCollapse): Added.
(WebCore::valueForShadow): Changed return value to PassRefPtr.
(WebCore::getPositionOffsetValue): Ditto.
(WebCore::currentColorOrValidColor): Ditto.
(WebCore::CSSComputedStyleDeclaration::cssText): Added cast since
getPropertyName now takes an enum value.
(WebCore::primitiveValueFromLength): Changed return value to PassRefPtr.
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
Added cast to CSSPropertyID so that gcc will detect missing enums in the
switch statement. Simplified the background-size and border-spacing
implementations so they don't have local variables. Added lots of cases
to the switch statement for unimplemented properties. Implemented the
outline-width, box-sizing, -webkit-appearance, -webkit-rtl-ordering,
-webkit-user-drag, and -webkit-user-select properties.
(WebCore::CSSComputedStyleDeclaration::item): Added cast since
getPropertyName now takes an enum value.
* css/CSSMutableStyleDeclaration.cpp: Removed declaration of getPropertyName.
(WebCore::CSSMutableStyleDeclaration::item): Added cast since
getPropertyName now takes an enum value.
* css/CSSProperty.cpp: Removed declaration of getPropertyName.
(WebCore::CSSProperty::cssText): Added cast since
getPropertyName now takes an enum value and returns a const char*.
* css/CSSStyleDeclaration.cpp: Removed declaration of getPropertyName.
(WebCore::CSSStyleDeclaration::getPropertyShorthand): Added cast since
getPropertyName now takes an enum value and returns a const char*.
2007-01-26 Alice Liu <alice.liu@apple.com>
Reviewed by Brady.
Fixed <rdar://problem/4838076> CrashTracer: 10 crashes in Mail at com.apple.WebCore: WTF::HashMap<WebCore::String
* loader/DocLoader.cpp:
(WebCore::DocLoader::requestResource):
Added nil check around resource from cache.
2007-01-26 Adam Roben <aroben@apple.com>
Reviewed by Oliver.
Build fix.
* ksvg2/svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::calculateValueIndexAndPercentagePast):
Keep index variables as unsigned until we need to convert to float.
2007-01-26 Alice Liu <alice.liu@apple.com>
Reviewed by Ada.
Fixed <rdar://problem/4919097> REGRESSION: Ctrl-Y fails to yank (11076)
* editing/Editor.cpp:
(WebCore::Editor::deleteWithDirection):
If there's no selection, locally create a range that is to the end of the granularity unit and pass that to deleteRange().
2007-01-26 Sam Weinig <sam@webkit.org>
Reviewed by Maciej.
Qt build fix.
* page/qt/EventHandlerQt.cpp:
2007-01-26 Dex Deacon <occupant4@gmail.com>
Reviewed by Hyatt.
Fix so that we only relayout frameset children on calls to layout.
* page/FrameView.cpp:
(WebCore::FrameView::layout):
2007-01-26 Oliver Hunt <oliver@apple.com>
Build Fix
* ksvg2/svg/ColorDistance.cpp:
* ksvg2/svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::handleTimerEvent):
2007-01-26 Eric Seidel <eric@webkit.org>
Reviewed by olliej.
Add support for calcMode, keyTimes and (nearly) keySplines.
http://bugs.webkit.org/show_bug.cgi?id=12350
Re-architect much of the animation system to remove huge sections of code.
Added new ColorDistance, SVGTransformDistance to simplify animateColor, animateTransform calculations.
I also added basic <animateMotion> support since it was so easy w/ the new architecture.
Adding manual animation tests until bug 12074 is fixed.
* WebCore.xcodeproj/project.pbxproj:
* ksvg2/misc/SVGTimer.cpp:
(WebCore::SVGTimer::applyAnimations):
* ksvg2/svg/ColorDistance.cpp: Added.
(WebCore::ColorDistance::ColorDistance):
(WebCore::clampColorValue):
(WebCore::ColorDistance::scaledDistance):
(WebCore::ColorDistance::addColorsAndClamp):
(WebCore::ColorDistance::addToColorAndClamp):
(WebCore::ColorDistance::isZero):
(WebCore::ColorDistance::distance):
* ksvg2/svg/ColorDistance.h: Added.
* ksvg2/svg/SVGAnimateColorElement.cpp:
(WebCore::SVGAnimateColorElement::SVGAnimateColorElement):
(WebCore::SVGAnimateColorElement::updateAnimationBaseValueFromElement):
(WebCore::SVGAnimateColorElement::applyAnimatedValueToElement):
(WebCore::SVGAnimateColorElement::updateAnimatedValue):
(WebCore::SVGAnimateColorElement::calculateFromAndToValues):
* ksvg2/svg/SVGAnimateColorElement.h:
(WebCore::SVGAnimateColorElement::contextElement):
* ksvg2/svg/SVGAnimateElement.h:
(WebCore::SVGAnimateElement::updateAnimatedValue):
(WebCore::SVGAnimateElement::calculateFromAndToValues):
* ksvg2/svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::hasValidTarget):
(WebCore::SVGAnimateMotionElement::updateAnimatedValue):
(WebCore::parsePoint):
(WebCore::SVGAnimateMotionElement::calculateFromAndToValues):
(WebCore::SVGAnimateMotionElement::updateAnimationBaseValueFromElement):
(WebCore::SVGAnimateMotionElement::applyAnimatedValueToElement):
* ksvg2/svg/SVGAnimateMotionElement.h:
* ksvg2/svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::SVGAnimateTransformElement):
(WebCore::SVGAnimateTransformElement::updateAnimatedValue):
(WebCore::SVGAnimateTransformElement::updateAnimationBaseValueFromElement):
(WebCore::SVGAnimateTransformElement::applyAnimatedValueToElement):
(WebCore::SVGAnimateTransformElement::calculateFromAndToValues):
(WebCore::SVGAnimateTransformElement::parseTransformValue):
* ksvg2/svg/SVGAnimateTransformElement.h:
(WebCore::SVGAnimateTransformElement::contextElement):
* ksvg2/svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::parseKeyNumbers):
(WebCore::parseValues):
(WebCore::parseKeySplines):
(WebCore::SVGAnimationElement::parseMappedAttribute):
(WebCore::SVGAnimationElement::targetAttributeAnimatedValue):
(WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
(WebCore::SVGAnimationElement::detectAnimationMode):
(WebCore::adjustPercentagePastForKeySplines):
(WebCore::SVGAnimationElement::valueIndexAndPercentagePastForDistance):
(WebCore::SVGAnimationElement::calculateTotalDistance):
(WebCore::caculateValueIndexForKeyTimes):
(WebCore::SVGAnimationElement::isValidAnimation):
(WebCore::SVGAnimationElement::calculateValueIndexAndPercentagePast):
(WebCore::SVGAnimationElement::updateAnimationBaseValueFromElement):
(WebCore::SVGAnimationElement::applyAnimatedValueToElement):
(WebCore::SVGAnimationElement::handleTimerEvent):
(WebCore::SVGAnimationElement::updateAnimatedValueForElapsedSeconds):
* ksvg2/svg/SVGAnimationElement.h:
* ksvg2/svg/SVGParserUtilities.cpp:
(WebCore::SVGPolyParser::parsePoints):
* ksvg2/svg/SVGParserUtilities.h:
* ksvg2/svg/SVGSetElement.cpp:
* ksvg2/svg/SVGSetElement.h:
(WebCore::SVGSetElement::updateAnimatedValue):
(WebCore::SVGSetElement::calculateFromAndToValues):
* ksvg2/svg/SVGTransform.cpp:
(SVGTransform::type):
(SVGTransform::translate):
(SVGTransform::scale):
(SVGTransform::setSkewX):
(SVGTransform::setSkewY):
* ksvg2/svg/SVGTransform.h:
(WebCore::operator==):
(WebCore::operator!=):
* ksvg2/svg/SVGTransformDistance.cpp: Added.
(WebCore::SVGTransformDistance::SVGTransformDistance):
(WebCore::SVGTransformDistance::scaledDistance):
(WebCore::SVGTransformDistance::addSVGTransforms):
(WebCore::SVGTransformDistance::addSVGTransform):
(WebCore::SVGTransformDistance::addToSVGTransform):
(WebCore::SVGTransformDistance::isZero):
(WebCore::SVGTransformDistance::distance):
* ksvg2/svg/SVGTransformDistance.h: Added.
* ksvg2/svg/SVGTransformList.cpp:
(SVGTransformList::concatenateForType):
* ksvg2/svg/SVGTransformList.h:
* manual-tests/animation/animateColor-by.svg: Added.
* manual-tests/animation/animateColor-from-by.svg: Added.
* manual-tests/animation/animateColor-repeat-indefinite.svg: Added.
* manual-tests/animation/animateColor-to-from.svg: Added.
* manual-tests/animation/animateColor-to.svg: Added.
* manual-tests/animation/animateColor-values-simple.svg: Added.
* manual-tests/animation/animateMotion-to.svg: Added.
* manual-tests/animation/animateTransform-keyTimes.svg: Added.
* manual-tests/animation/animateTransform-repeat-once.svg: Added.
2007-01-26 Beth Dakin <bdakin@apple.com>
Reviewed by Darin.
Fix for <rdar://problem/4956565> REGRESSION: After scrolling frame,
hovering over link in this frame doesn't change cursor to pointing
hand
The mouseMove event was not being propagated correctly after using
the mouse to scroll the frame because m_mousePressed was never
getting set to false.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent): This code does not
belong here.
* page/EventHandler.h: lastEventIsMouseUp() is only ever relevant
in EventHandlerMac, so it can just be a static function there.
* page/mac/EventHandlerMac.mm:
(WebCore::lastEventIsMouseUp): Make this static.
(WebCore::EventHandler::passMouseDownEventToWidget): Here is where
we need to set m_mousePressed to false if lastEventIsMouseUp() is
true.
2007-01-26 David Hyatt <hyatt@apple.com>
Fix for style regression caused by strictness checking of the number of properties. This caused code like:
"width: 20 px" to fail, because we interpreted it as two values and rejected it. Our old code allowed 20 to be
used like a pixel value and then ignored the orphaned unit.
This patch actually scans the list of values looking for orphaned units and reattaches them to the numeric
values that they should correspond to. This means rules like "width: 5 em" will now work in quirks mdoe and
the "em" unit type will be honored.
Reviewed by beth
* WebCore.xcodeproj/project.pbxproj:
* css/cssparser.cpp:
(WebCore::unitFromString):
(WebCore::CSSParser::checkForOrphanedUnits):
(WebCore::CSSParser::parseValue):
* css/cssparser.h:
(WebCore::ValueList::valueAt):
(WebCore::ValueList::deleteValueAt):
2007-01-26 George Staikos <staikos@kde.org>
Reviewed by Zack.
Qt implementation.
* WebCore.pro:
* platform/qt/FontPlatformDataQt.cpp:
(WebCore::FontPlatformData::FontPlatformData):
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::scrollbarUnderMouse):
2007-01-26 Brady Eidson <beidson@apple.com>
Reviewed by Anders' rubberstamp
Warning about unreferenced formal parameter caused compile to fail
* platform/cf/RetainPtr.h:
(WebCore::adoptCFReference):
2007-01-26 Darin Adler <darin@apple.com>
Reviewed by Brady.
- fix <rdar://problem/4956688> move Mac-specific part of icon code into IconMac
- fix a GC-compatibility problem in the icon code I noticed by code inspection
* platform/FileChooser.cpp: (WebCore::FileChooser::chooseIcon): Removed Mac-specific
path check -- that's in newIconForFile now.
* platform/graphics/Icon.h: Changed the image to be a RetainPtr. The old code was
using -[NSObject retain] which is not good enough for a pointer in a C++ object.
* platform/graphics/mac/IconMac.mm:
(WebCore::Icon::Icon): Got rid of unneeded code to do what RetainPtr does for us.
(WebCore::Icon::~Icon): Ditto.
(WebCore::Icon::newIconForFile): Added check for non-absolute file names. Updated
for use of RetainPtr. Use constructor that takes NSImage.
(WebCore::Icon::paint): Add get() calls needed now that we are using a RetainPtr.
* WebCore.xcodeproj/project.pbxproj: Let Xcode do its thing.
2007-01-26 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12385
Assertion failure when loading subresources from "data:" frames
Test: fast/loader/opaque-base-url.html
* platform/KURL.cpp:
(WebCore::KURL::init): Make the URL invalid if it's relative, but has an opaque or empty base.
2007-01-26 Dex Deacon <occupant4@gmail.com>
Reviewed by Darin.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseMoveEvent):
Removed a call to invalidateClick(), since we don't want to cancel a
click if the mouse moves.
2007-01-26 Darin Adler <darin@apple.com>
* css/MediaQueryEvaluator.cpp:
(WebCore::MediaQueryEvaluator::mediaTypeMatchSpecific):
Oops, forgot a !.
2007-01-26 Darin Adler <darin@apple.com>
Patch by Nate Begeman.
Reviewed by Darin and Maciej.
- <rdar://problem/4946877> Avoid unnecessary allocations in CSS, patch attached (12401)
http://bugs.webkit.org/show_bug.cgi?id=12401
* css/MediaQueryEvaluator.h: Add mediaTypeMatchSpecific, a function that
takes a char* to avoid creating and destroying a String for simple media
type queries.
* css/MediaQueryEvaluator.cpp:
(WebCore::MediaQueryEvaluator::mediaTypeMatchSpecific): Added. Besides
avoiding the conversion to String, this also doesn't have the special
case code to handle "" and "all".
* css/cssstyleselector.cpp: (WebCore::CSSStyleSelector::matchUARules):
Call mediaTypeMatchSpecific here when deciding whether to use the
print version of the user agent style sheet.
* loader/Cache.cpp: (WebCore::Cache::requestResource): Don't convert to
a string and back to a KURL when calling createResource. Avoids reparsing
the URL string.
2007-01-26 Zack Rusin <zrusin@trolltech.com>
Reviewed by Lars
Add history related classes to the project file.
* WebCore.pro:
2007-01-26 Zack Rusin <zack@kde.org>
Reviewed by Lars
Introduce PlatformScrollBar and try to make
the scrollbar behavior a little more sane.
* WebCore.pro:
* platform/qt/PlatformScrollBarQt.cpp: Added.
(WebCore::Scrollbar::Scrollbar):
(WebCore::Scrollbar::setSteps):
(WebCore::Scrollbar::scroll):
(WebCore::Scrollbar::setValue):
(WebCore::Scrollbar::setProportion):
(WebCore::PlatformScrollbar::PlatformScrollbar):
(WebCore::PlatformScrollbar::~PlatformScrollbar):
(WebCore::PlatformScrollbar::width):
(WebCore::PlatformScrollbar::height):
(WebCore::PlatformScrollbar::setEnabled):
(WebCore::PlatformScrollbar::paint):
(WebCore::PlatformScrollbar::updateThumbPosition):
(WebCore::PlatformScrollbar::updateThumbProportion):
(WebCore::PlatformScrollbar::setRect):
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::addChild):
* platform/qt/TemporaryLinkStubs.cpp:
(WebCore::PlatformMouseEvent::PlatformMouseEvent):
2007-01-26 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=11109
REGRESSION (r15471): menus are offset on eink.com
<rdar://problem/4824760>
Changed offset{Left,Top} to match Firefox. If the body element is statically
positioned, it is still returned as the offsetParent of elements whose containing
block is the initial containing block (the root), but their offset{Left,Top} are
relative to the root. If the body element is positioned, then offsets are relative
to it. The body's own offset{Left,Top} are always 0.
Test: fast/dom/Element/offsetLeft-offsetTop-body-quirk.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::offsetLeft):
(WebCore::RenderObject::offsetTop):
2007-01-26 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin and Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=10983
REGRESSION (r12290): Drop shadow of flickr photo note is positioned incorrectly the second time it's shown
Test: fast/dynamic/staticY.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutPositionedObjects): Avoid marking the object's
parents, since they have already been laid out.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::setStaticY): Added a call to setChildNeedsLayout() to
ensure relayout by this box's container (third and fourth cases in the
layout test).
* rendering/RenderBox.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::markContainingBlocksForLayout): For positioned objects
with static y, also mark the object's parent to ensure that it recomputes
the static y value (first case in the layout test).
2007-01-26 Lars Knoll <lars@trolltech.com>
Reviewed by Zack
Get rid of FrameQtClient. It's unused since we moved over
to the loader.
* WebCore.pro:
* page/qt/FrameQt.cpp:
(WebCore::FrameQt::FrameQt):
* page/qt/FrameQt.h:
* page/qt/FrameQtClient.cpp: Removed.
* page/qt/FrameQtClient.h: Removed.
* platform/network/ResourceHandleInternal.h:
* platform/network/qt/ResourceHandleManagerQt.cpp:
(WebCore::RequestQt::RequestQt):
(WebCore::ResourceHandleManager::add):
* platform/network/qt/ResourceHandleManagerQt.h:
* platform/network/qt/ResourceHandleQt.cpp:
(WebCore::ResourceHandle::start):
2007-01-26 Zack Rusin <zack@kde.org>
Fix the compile
* WebCore.pro:
2007-01-26 Adam Roben <aroben@apple.com>
Reviewed by Maciej.
Fixed <rdar://problem/4946499>, which made it impossible to tab
forward into the left frame of tivofaq.com after tabbing out of the
document.
* page/FocusController.cpp:
(WebCore::FocusController::advanceFocus): Clear the focused frame
before passing off focus to Chrome so that when we re-enter the
document we start at the main frame instead of the last focused frame.
2007-01-25 Rob Buis <buis@kde.org>
Reviewed by olliej.
http://bugs.webkit.org/show_bug.cgi?id=11911
SVG exhibits double-text-selection behavior
Fix selection height of the inline text boxes for svg.
* WebCore.xcodeproj/project.pbxproj:
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::selectionTop):
(WebCore::InlineTextBox::selectionHeight):
(WebCore::InlineTextBox::selectionRect):
(WebCore::InlineTextBox::paintSelection):
(WebCore::InlineTextBox::paintMarkedTextBackground):
(WebCore::InlineTextBox::paintCustomHighlight):
(WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
(WebCore::InlineTextBox::paintTextMatchMarker):
* rendering/InlineTextBox.h:
* rendering/RenderSVGInlineText.cpp:
(WebCore::RenderSVGInlineText::createInlineTextBox):
* rendering/RenderSVGInlineText.h:
* rendering/RenderText.cpp:
(WebCore::RenderText::createInlineTextBox):
(WebCore::RenderText::createInlineBox):
* rendering/RenderText.h:
* rendering/SVGInlineTextBox.cpp: Added.
(WebCore::SVGInlineTextBox::selectionTop):
(WebCore::SVGInlineTextBox::selectionHeight):
* rendering/SVGInlineTextBox.h: Added.
(WebCore::SVGInlineTextBox::SVGInlineTextBox):
2007-01-26 Zack Rusin <zack@kde.org>
Reviewed by Lars
Fix drawing of tiled images.
* WebCore.pro:
* platform/graphics/qt/ImageQt.cpp:
(WebCore::BitmapImage::drawPattern):
2007-01-26 Zack Rusin <zack@kde.org>
Reviewed by Lars
Fixing image loading - we decode QImages
but render QPixmaps now. Implement Icon
class
* platform/graphics/BitmapImage.h:
* platform/graphics/Icon.h:
* platform/graphics/Image.h:
(WebCore::Image::getPixmap):
* platform/graphics/qt/IconQt.cpp:
(WebCore::Icon::Icon):
(WebCore::Icon::~Icon):
(WebCore::Icon::newIconForFile):
(WebCore::Icon::paint):
* platform/graphics/qt/ImageDecoderQt.cpp:
(WebCore::ImageDecoderQt::ImageData::ImageData):
(WebCore::ImageDecoderQt::ReadContext::read):
(WebCore::ImageDecoderQt::ReadContext::readImageLines):
(WebCore::ImageDecoderQt::reset):
(WebCore::ImageDecoderQt::imageAtIndex):
* platform/graphics/qt/ImageDecoderQt.h:
* platform/graphics/qt/ImageQt.cpp:
(WebCore::BitmapImage::drawPattern):
(WebCore::BitmapImage::getPixmap):
* platform/graphics/qt/ImageSourceQt.cpp:
(WebCore::ImageSource::createFrameAtIndex):
2007-01-25 Justin Garcia <justin.garcia@apple.com>
Reviewed by oliver
<http://bugs.webkit.org/show_bug.cgi?id=12409>
REGRESSION (r19039): Drag caret isn't cleared after a drop
No new layout tests because the regression was
caught by current layout tests.
* page/DragController.cpp:
(WebCore::DragController::concludeDrag): Clear the drag caret.
2007-01-25 Darin Adler <darin@apple.com>
Reviewed and landed by Geoffrey Garen.
- fix http://bugs.webkit.org/show_bug.cgi?id=12342
REGRESSION: destroying a frame from its own script causes various crashes
* bindings/js/kjs_window.cpp: (KJS::ScheduledAction::execute):
Use RefPtr for the frame and the interpreter object so they don't get deleted
out from underneath us.
* bindings/js/kjs_proxy.cpp: (WebCore::KJSProxy::evaluate):
Add a check for a page of 0. This was the only call site for the
addMessageToConsole function that did not have a check for a page of 0.
2007-01-25 Dirk Mueller <mueller@kde.org>
Reviewed and merged by Beth.
Fix for <rdar://problem/4921692> not processing comments inside a
title element leads to XSS (for at least BlogSpot)
This is equivalent to commit 626791 in the KDE tree. Basically, the
patch allows comment parsing in titles to avoid capturing a
<script> tag by accident.
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::parseSpecial):
(WebCore::HTMLTokenizer::parseComment):
2007-01-25 Darin Adler <darin@apple.com>
* ksvg2/svg/SVGPreserveAspectRatio.cpp: Add a couple of comments.
2007-01-25 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=12365
Reproducible crash in WebCore::SVGPreserveAspectRatio::parsePreserveAspectRatio
in svg/W3C-SVG-1.1/animate-elem-40-t.svg under guard malloc
- fix bug where the parser accepts "meet" or "slice" as an entire string
- fix bug where "slice" is ignored if the old alignment was "none"
even if the newly-parsed alignment is something other than "none", and
"slice" is not ignored if the old alignment was not "none", but the
newly-parsed alignment is "none"
- optimize to only call notifyAttributeChange if the attribute actually changed
Test: svg/dom/preserve-aspect-ratio-parser-test.html
* ksvg2/svg/SVGPreserveAspectRatio.cpp:
(WebCore::checkString): Added an overload for using char* constants which is
much simpler than the old one, and almost as fast.
(WebCore::SVGPreserveAspectRatio::parsePreserveAspectRatio): Fail if there's no
more text after "defer". Fail if there's neither "none" nor an x/y specified.
Check that there's more text before looking at the "m" and "s" for "meet" and
"slice". Merged the failure and success cases. Only call notifyAttributeChange
if something changed.
I think all the "optimized" code where we check the first character before
calling checkString isn't really helpful, but I decided to leave it as-is
for now.
2007-01-25 Lars Knoll <lars@trolltech.com>
Reviewed by Zack
Trivial implementation of getMIMETypeForExtension.
Use the above method in the ResourceHandleManager to set
a mimetype on Resources that don't have one set (which
includes everything loaded from local disk).
Should fix quite a few test cases :)
* platform/network/qt/ResourceHandleManagerQt.cpp:
(WebCore::ResourceHandleManager::receivedResponse):
* platform/qt/MimeTypeRegistryQt.cpp:
(WebCore::):
(WebCore::MimeTypeRegistry::getMIMETypeForExtension):
2007-01-25 Harald Fernengel <harald@trolltech.com>
Reviewed by zack
Compile on platforms where qreal is not a double.
* platform/graphics/qt/AffineTransformQt.cpp:
(WebCore::AffineTransform::map):
2007-01-25 Zack Rusin <zack@kde.org>
Reviewed by Lars.
Add wheel event handling and make explicit usage
of the EventHandler.
* WebCore.pro:
* page/qt/EventHandlerQt.cpp:
(WebCore::EventHandler::focusDocumentView):
(WebCore::EventHandler::passWidgetMouseDownEventToWidget):
(WebCore::EventHandler::passMouseDownEventToWidget):
(WebCore::EventHandler::lastEventIsMouseUp):
(WebCore::EventHandler::handleMouseUp):
* platform/PlatformWheelEvent.h:
* platform/qt/ScrollViewCanvasQt.cpp:
(WebCore::ScrollViewCanvasQt::ScrollViewCanvasQt):
(WebCore::ScrollViewCanvasQt::mousePressEvent):
(WebCore::ScrollViewCanvasQt::wheelEvent):
(WebCore::ScrollViewCanvasQt::dragEnterEvent):
(WebCore::ScrollViewCanvasQt::dragLeaveEvent):
(WebCore::ScrollViewCanvasQt::dragMoveEvent):
* platform/qt/ScrollViewCanvasQt.h:
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::wheelEvent):
* platform/qt/WheelEventQt.cpp: Added.
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
2007-01-25 Rob Buis <buis@kde.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12391
SVG containers with viewports should respect overflow when hit testing
Take into account the overflow property when hit testing <svg>.
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::nodeAtPoint):
2007-01-23 Alice Liu <alice.liu@apple.com>
Reviewed by Maciej.
fixed <rdar://problem/4808039> REGRESSION: eBay ID check never completes
Also known as http://bugs.webkit.org/show_bug.cgi?id=11230
* bindings/js/kjs_window.cpp:
It's not necessary to check safeScript when doing a location.replace, .reload, or .assign
(KJS::Location::getOwnPropertySlot):
(KJS::LocationFunc::callAsFunction):
2007-01-25 Alice Liu <alice.liu@apple.com>
Reviewed by Geoff and Adele.
fixed <rdar://problem/4866655> REGRESSION: Copying out of Calculator & CIFIlterWidget is broken on 9A320
* editing/Editor.cpp:
(WebCore::Editor::canDHTMLCut):
(WebCore::Editor::canDHTMLCopy):
(WebCore::Editor::tryDHTMLCopy):
(WebCore::Editor::tryDHTMLCut):
Reverting some mistakes made in r17504:
Anything in r17503 that used to call mayDHTML* still calls canDHTML* as it was changed in r17504, where canDHTML* now calls !selectionController::isInPasswordField instead of editor::canCopy
Anything else in r17503 that used to call mayCopy now calls (!)selectionController::isInPasswordField.
* editing/JSEditor.cpp:
copy via JS should be enabled as long as selection is not in a password field. a range selection shouldn't be required.
2007-01-24 Adele Peterson <adele@apple.com>
Reviewed by Brady and Oliver.
Fix for <rdar://problem/4953504> When the keydown event changes focus, the keypress event should go to the new focused node
Test: fast/events/keydown-keypress-focus-change.html
* page/EventHandler.cpp:
(WebCore::eventTargetNodeForDocument): Added for convenience.
(WebCore::EventHandler::keyEvent): Moved from EventHandlerMac.mm. After dispatching the keyDown event,
recheck the target node for the keyPress event in case its changed.
* page/EventHandler.h:
* page/mac/EventHandlerMac.mm: (WebCore::EventHandler::keyEvent):
Moved the bulk of this code to EventHandler.cpp.
2007-01-24 Geoffrey Garen <ggaren@apple.com>
New forwarding header. No review necessary.
* ForwardingHeaders/kjs/ustring.h: Added.
2007-01-24 Oliver Hunt <oliver@apple.com>
Reviewed by Maciej.
Migrating more drag state information to WebCore
* page/DragController.cpp:
* page/DragController.h:
(WebCore::DragController::dragOperation):
(WebCore::DragController::setDraggingImageURL):
(WebCore::DragController::draggingImageURL):
(WebCore::DragController::setDragOffset):
(WebCore::DragController::dragOffset):
2007-01-24 Darin Adler <darin@apple.com>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=12331
REGRESSION(r18951): Selecting text in a textarea makes the page scroll
Test: fast/events/autoscroll.html
* rendering/RenderLayer.cpp: (WebCore::RenderLayer::autoscroll):
Adjust position to be relative to the object's corner for the hit test, but not for the
scrollRectToVisible call. The previous version accidentally re-used the version that was
adjusted for the hit test.
2007-01-24 Beth Dakin <bdakin@apple.com>
Reviewed by Geoff.
Fix for <rdar://problem/4948128> REGRESSION: A crash occurs at
WebCore::Frame::view() after completing a query at mapquest.com
then switching to Bookmarks view
This is just a null-check. If you are in strict mode and ask for
the clientWidth or clientHeight after the document was removed from
it's parent, we no longer have a frameView, so we have to null-
check it. I added null checks for the FrameView in some other
places where it seems like we could potentially run into this
issue.
* bindings/objc/DOMHTML.mm:
(-[DOMHTMLInputElement _rectOnScreen]):
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject accessibilityAttributeValue:]):
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::getUpperLeftCorner):
* dom/Element.cpp:
(WebCore::Element::clientWidth): Actual bug fix here!
(WebCore::Element::clientHeight): And here!
* ksvg2/svg/SVGLength.cpp:
(WebCore::SVGLength::PercentageOfViewport):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::createJavaAppletWidget):
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge computePageRectsWithPrintWidthScaleFactor:printHeight:]):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::windowClipRect):
(WebCore::RenderLayer::updateOverflowStatus):
(WebCore::frameVisibleRect):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::windowClipRect):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout):
2007-01-24 Maciej Stachowiak <mjs@apple.com>
Not reviewed, just removing accidentally committed file.
- removed file that shouldn't be there
* Image Viewer/Image Viewer.aps: Removed.
2007-01-24 Anders Carlsson <acarlsson@apple.com>
Reviewed by Geoff and Adam.
<rdar://problem/4922655>
http://galeri.milliyet.com.tr/ reproducibly crashes Safari
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::requestFrame):
If the frame already exists, defer the navigation so that we won't end up replacing the document
while we're parsing it. This is similar to what setting window.location ends up doing.
2007-01-25 Mark Rowe <mrowe@apple.com>
Reviewed by Darin.
* Info.plist: Update copyright string.
2007-01-24 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/4916235>
eBay Editor: Crash occurs at WebCore::Range::startPosition() after applying ordered list styling to selected text
<rdar://problem/4857269>
REGRESSION: editing/execCommand/create-list-from-range-selection.html no longer works as intended
<rdar://problem/4916583>
eBay Editor: Removing a indent from a list item actually deletes the list item instead
<rdar://problem/4928635>
designMode outdent causes crash (11750)
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs): Fixed br insertion
after the pruning of empty containers left over after the paragraph
to move is removed.
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::DeleteSelectionCommand): There are
bugs that leave the wrong number of line breaks after a deletion
that expands to include special elements (lists/tables). Added
a workaround so that moveParagraphs can avoid these until they
are fixed.
(WebCore::DeleteSelectionCommand::initializeStartEnd): Ditto.
(WebCore::DeleteSelectionCommand::initializePositionData): Ditto.
* editing/DeleteSelectionCommand.h:
* editing/TextIterator.cpp:
(WebCore::TextIterator::advance): We used to not call exitNode for
ancestors of a node where the next node in a pre-order traversal is
the ranges's pastEndNode(). This is only correct for ancestors that
contain the end of the range.
(WebCore::shouldEmitNewlineAfterNode): Added, we should only emit newlines
after blocks that have VisiblePositions after them. VisiblePosition creation
though is too expensive to do here, what I added here is an OK substitute.
(WebCore::shouldEmitNewlineBeforeNode): Added. No special logic yet.
(WebCore::TextIterator::handleNonTextNode): Call shouldEmitNewlineBeforeNode.
(WebCore::TextIterator::exitNode): Call shouldEmitNewlineAfterNode.
(WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode): Call
shouldEmitNewlineAfterNode.
2007-01-24 Darin Adler <darin@apple.com>
Reviewed by Mark Rowe.
* WebCore.xcodeproj/project.pbxproj: Changed to /usr/sbin/sysctl
so we don't rely on people's paths.
2007-01-24 Darin Adler <darin@apple.com>
Reviewed by Adele.
- a couple minor tweaks to recently-changed things
* dom/Document.h: Use HTMLHeadElement as type for the head function.
* dom/Document.cpp: (WebCore::Document::head):
* ksvg2/svg/SVGElementInstance.cpp:
(WebCore::SVGElementInstance::~SVGElementInstance): Change loop to
a for loop and use a local variable for document.
2007-01-24 Oliver Hunt <oliver@apple.com>
Reviewed by Adele.
Fixes DragController to allow a null target Document.
This is encountered in new tabs/windows that have not
loaded any page
* page/DragController.cpp:
(WebCore::documentAtPoint):
(WebCore::DragController::tryDocumentDrag):
(WebCore::DragController::operationForLoad):
(WebCore::DragController::concludeDrag):
* page/mac/DragControllerMac.mm:
(WebCore::DragController::dragOperation):
2007-01-24 Sam Weinig <sam@webkit.org>
Reviewed by Mitz.
Patch for http://bugs.webkit.org/show_bug.cgi?id=12394
Cleanup RenderBox
No functionality changes, just a good old fashion cleanup,
thus no tests.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::RenderBox):
(WebCore::RenderBox::setStyle):
(WebCore::RenderBox::destroy):
(WebCore::RenderBox::setPos):
(WebCore::RenderBox::calcBorderBoxWidth):
(WebCore::RenderBox::calcBorderBoxHeight):
(WebCore::RenderBox::calcContentBoxWidth):
(WebCore::RenderBox::calcContentBoxHeight):
(WebCore::RenderBox::nodeAtPoint):
(WebCore::RenderBox::paintRootBoxDecorations):
(WebCore::RenderBox::paintBoxDecorations):
(WebCore::RenderBox::paintBackgrounds):
(WebCore::RenderBox::paintBackground):
(WebCore::cacluateBackgroundSize):
(WebCore::RenderBox::paintBackgroundExtended):
(WebCore::RenderBox::getOverflowClipRect):
(WebCore::RenderBox::getClipRect):
(WebCore::RenderBox::containingBlockWidth):
(WebCore::RenderBox::absolutePosition):
(WebCore::RenderBox::dirtyLineBoxes):
(WebCore::RenderBox::position):
(WebCore::RenderBox::getAbsoluteRepaintRect):
(WebCore::RenderBox::computeAbsoluteRepaintRect):
(WebCore::RenderBox::repaintDuringLayoutIfMoved):
(WebCore::RenderBox::relativePositionOffsetX):
(WebCore::RenderBox::relativePositionOffsetY):
(WebCore::RenderBox::calcWidth):
(WebCore::RenderBox::calcWidthUsing):
(WebCore::RenderBox::sizesToIntrinsicWidth):
(WebCore::RenderBox::calcHorizontalMargins):
(WebCore::RenderBox::calcHeight):
(WebCore::RenderBox::calcPercentageHeight):
(WebCore::RenderBox::calcReplacedWidthUsing):
(WebCore::RenderBox::calcReplacedHeightUsing):
(WebCore::RenderBox::availableHeightUsing):
(WebCore::RenderBox::calcVerticalMargins):
(WebCore::RenderBox::containingBlockWidthForPositioned):
(WebCore::RenderBox::calcAbsoluteHorizontal):
(WebCore::RenderBox::calcAbsoluteHorizontalValues):
(WebCore::RenderBox::calcAbsoluteVertical):
(WebCore::RenderBox::calcAbsoluteVerticalValues):
(WebCore::RenderBox::calcAbsoluteHorizontalReplaced):
(WebCore::RenderBox::caretRect):
* rendering/RenderBox.h:
(WebCore::RenderBox::setOverrideSize):
(WebCore::RenderBox::width):
(WebCore::RenderBox::height):
(WebCore::RenderBox::setWidth):
(WebCore::RenderBox::setHeight):
(WebCore::RenderBox::inlineBoxWrapper):
(WebCore::RenderBox::setInlineBoxWrapper):
(WebCore::RenderBox::stretchesToViewHeight):
(WebCore::RenderBox::setStaticX):
(WebCore::RenderBox::setStaticY):
2007-01-24 Eric Seidel <eric@webkit.org>
Reviewed by ap.
Converted SVGTransform from being Shared<T> to a POD type.
No functional changes, thus no tests.
* bindings/scripts/CodeGenerator.pm:
* bindings/scripts/CodeGeneratorJS.pm:
* ksvg2/misc/SVGTimer.cpp:
(WebCore::baseValueTransformList):
* ksvg2/svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::storeInitialValue):
(WebCore::SVGAnimateTransformElement::resetValues):
(WebCore::SVGAnimateTransformElement::updateCurrentValue):
(WebCore::SVGAnimateTransformElement::handleStartCondition):
(WebCore::SVGAnimateTransformElement::applyAnimationToValue):
(WebCore::SVGAnimateTransformElement::parseTransformValue):
* ksvg2/svg/SVGAnimateTransformElement.h:
* ksvg2/svg/SVGLinearGradientElement.cpp:
(WebCore::SVGLinearGradientElement::collectGradientProperties):
* ksvg2/svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::collectPatternProperties):
* ksvg2/svg/SVGRadialGradientElement.cpp:
(WebCore::SVGRadialGradientElement::collectGradientProperties):
* ksvg2/svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::createSVGTransform):
(WebCore::SVGSVGElement::createSVGTransformFromMatrix):
* ksvg2/svg/SVGSVGElement.h:
* ksvg2/svg/SVGStyledTransformableElement.cpp:
(WebCore::SVGStyledTransformableElement::updateLocalTransform):
* ksvg2/svg/SVGTextElement.cpp:
(WebCore::SVGTextElement::updateLocalTransform):
* ksvg2/svg/SVGTransform.cpp:
(SVGTransform::SVGTransform):
(SVGTransform::isValid):
* ksvg2/svg/SVGTransform.h:
* ksvg2/svg/SVGTransform.idl:
* ksvg2/svg/SVGTransformList.cpp:
(SVGTransformList::SVGTransformList):
(SVGTransformList::createSVGTransformFromMatrix):
(SVGTransformList::consolidate):
(SVGTransformList::concatenate):
* ksvg2/svg/SVGTransformList.h:
* ksvg2/svg/SVGTransformable.cpp:
(WebCore::SVGTransformable::parseTransformAttribute):
2007-01-24 Mark Rowe <mrowe@apple.com>
Reviewed by Eric.
Plug another bunch of SVG memory leaks.
* ksvg2/misc/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::~SVGDocumentExtensions): Delete memory we have allocated.
(WebCore::SVGDocumentExtensions::removePendingResource): Return an auto_ptr to show that we are transferring ownership.
* ksvg2/misc/SVGDocumentExtensions.h:
* ksvg2/svg/SVGElement.cpp:
(WebCore::SVGElement::insertedIntoDocument): Update for use of auto_ptr.
2007-01-23 Mark Rowe <mrowe@apple.com>
Reviewed by Brady.
Plug thousands of node leaks seen running layout tests.
* ksvg2/svg/SVGElementInstance.cpp:
(WebCore::SVGElementInstance::~SVGElementInstance): Disassociate ourselves from our children so they will
be destroyed if we were the only thing referencing them.
* ksvg2/svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::removedFromDocument):
* ksvg2/svg/SVGUseElement.h:
2007-01-23 Alice Liu <alice.liu@apple.com>
Reviewed by Brady.
* editing/Editor.cpp:
(WebCore::Editor::appliedEditing):
minor change. removing unnecessary call to frame to fetch editor
2007-01-23 Mark Rowe <mrowe@apple.com>
Reviewed by Adele.
http://bugs.webkit.org/show_bug.cgi?id=12375
Bug 12375: REGRESSION(r19038): fast/dom/title-text-property-2.html failing
Fix regression by making setTitle/updateTitle/removeTitle logic match document.title
specification at http://whatwg.org/specs/web-apps/current-work/#the-title1.
* dom/Document.cpp:
(WebCore::Document::setTitle): Materialize a title element into the head if one doesn't exist when setting
document.title. Also update the contents of the title element when the title is set via document.title.
(WebCore::Document::removeTitle): Update the title based on first title element in the head, if one exists.
(WebCore::Document::head): Convenience method to retrieve the head element in an HTML document.
* dom/Document.h:
2007-01-23 Beth Dakin <bdakin@apple.com>
Reviewed by Hyatt.
Follow-up to the fix below for 4843226.
* rendering/RenderLayer.cpp:
(WebCore::transparencyClipBox): Has to be recursive or we will miss
out on grandchildren!
2007-01-23 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
Fixes dropping of files into safari
* page/DragController.cpp:
(WebCore::DragController::performDrag):
2007-01-23 Brady Eidson <beidson@apple.com>
Reviewed by Darin
Added a couple of CF things previously missed
* platform/network/ResourceError.h:
* platform/network/ResourceHandle.h:
2007-01-23 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Maciej.
Fix evil genericContext() assertion, which occours sometimes when running DRT.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12379
* bindings/scripts/CodeGeneratorJS.pm:
* ksvg2/misc/SVGDocumentExtensions.h:
(WebCore::SVGDocumentExtensions::genericContextMap):
(WebCore::SVGDocumentExtensions::forgetGenericContext):
2007-01-23 Beth Dakin <bdakin@apple.com>
Reviewed by Hyatt.
Fix for <rdar://problem/4843226> REGRESSION: Pull down menu appears
clipped at http://istweb.apple.com/
* rendering/RenderLayer.cpp:
(WebCore::transparencyClipBox): Always unite with sibling rects.
2007-01-22 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/4920742>
REGRESSION: GMail Editor: Attempting to remove formatting from selection results in a crash at WebCore::Range::checkDeleteExtract()
* dom/Range.cpp:
(WebCore::Range::checkDeleteExtract): Return if there is no
commonAncestor container or if commonAncestorContainer() throws
an exception.
* editing/Editor.cpp:
(WebCore::Editor::removeFormattingAndStyle): Fixed a bug that reversed
the order of the selected paragraphs.
2007-01-23 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Sam.
Fix dynamic creation/updates of markers, masks, clipPaths, and several tiny pattern issues.
Added 16 (!) new layout tests covering quite some weird scenerios - Batik & Opera do have problems, we don't.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12380
Fixes: svg/custom/image-with-transform-clip-filter.svg (filter shows up again)
Added: svg/custom/clip-path-child-changes.svg
Added: svg/custom/clip-path-href-changes.svg
Added: svg/custom/clip-path-units-changes.svg
Added: svg/custom/deep-dynamic-updates.svg
Added: svg/custom/js-late-clipPath-and-object-creation.svg
Added: svg/custom/js-late-clipPath-creation.svg
Added: svg/custom/js-late-marker-and-object-creation.svg
Added: svg/custom/js-late-marker-creation.svg
Added: svg/custom/js-late-mask-and-object-creation.svg
Added: svg/custom/js-late-mask-creation.svg
Added: svg/custom/js-update-pattern-child.svg
Added: svg/custom/marker-changes.svg
Added: svg/custom/marker-child-changes.svg
Added: svg/custom/marker-viewBox-changes.svg
Added: svg/custom/mask-changes.svg
Added: svg/custom/mask-child-changes.svg
* ksvg2/misc/KCanvasRenderingStyle.cpp:
(WebCore::KSVGPainterFactory::fillPaintServer):
(WebCore::KSVGPainterFactory::strokePaintServer):
* ksvg2/svg/SVGClipPathElement.cpp:
(WebCore::SVGClipPathElement::notifyAttributeChange):
* ksvg2/svg/SVGClipPathElement.h:
* ksvg2/svg/SVGGradientElement.cpp:
* ksvg2/svg/SVGGradientElement.h:
* ksvg2/svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::canvasResource):
(WebCore::SVGMarkerElement::notifyAttributeChange):
* ksvg2/svg/SVGMarkerElement.h:
* ksvg2/svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::notifyAttributeChange):
* ksvg2/svg/SVGMaskElement.h:
* ksvg2/svg/SVGStopElement.cpp:
(WebCore::SVGStopElement::notifyAttributeChange):
* ksvg2/svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::notifyAttributeChange):
(WebCore::SVGStyledElement::notifyResourceParentIfExistant):
(WebCore::SVGStyledElement::rebuildRenderer):
* ksvg2/svg/SVGStyledElement.h:
* ksvg2/svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::notifyAttributeChange):
* platform/graphics/svg/SVGResource.cpp:
(WebCore::SVGResource::invalidate):
(WebCore::SVGResource::addClient):
(WebCore::SVGResource::repaintClients):
* platform/graphics/svg/SVGResource.h:
* platform/graphics/svg/SVGResourceMarker.cpp:
(WebCore::SVGResourceMarker::draw):
(WebCore::SVGResourceMarker::cachedBounds):
* platform/graphics/svg/SVGResourceMarker.h:
* rendering/RenderPath.cpp:
(WebCore::RenderPath::layout):
(WebCore::RenderPath::getAbsoluteRepaintRect):
(WebCore::RenderPath::paint):
(WebCore::drawMarkerWithData):
(WebCore::RenderPath::drawMarkersIfNeeded):
* rendering/RenderPath.h:
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::paint):
(WebCore::RenderSVGContainer::getAbsoluteRepaintRect):
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::paint):
(WebCore::RenderSVGImage::getAbsoluteRepaintRect):
* rendering/SVGInlineFlowBox.cpp:
(WebCore::paintSVGInlineFlow):
2007-01-23 Adele Peterson <adele@apple.com>
Reviewed by Darin.
WebCore part of fix for <rdar://problem/4946753>REGRESSION: Inserting tabs is broken in Mail
In addition to this fix, I also reorganized some event handling code for keyPress events to
prepare for another fix. There's also just a little bit of unrelated cleanup.
* dom/EventTargetNode.cpp: (WebCore::EventTargetNode::defaultEventHandler):
Move tab focus behavior into new defaultKeyboardEventHandler method.
* bridge/EditorClient.h: Added handleKeyPress.
* editing/Editor.cpp:
(WebCore::Editor::handleKeyPress): Added. Calls over to the client method.
(WebCore::Editor::deleteRange): Removed unnecessary propogateDOMException.
* editing/Editor.h: Added handleKeyPress.
(WebCore::Editor::addToKillRing): Formatting cleanup.
* editing/mac/EditorMac.mm: Removed unnecessary propogateDOMException.
* page/EventHandler.cpp: (WebCore::EventHandler::defaultKeyboardEventHandler): Added. Checks
the tabKeyCyclesThroughElements setting before advancing focus for tab key events. Calls handleKeyPress.
* page/EventHandler.h: Added defaultKeyboardEventHandler.
* page/Page.cpp: (WebCore::Page::Page): Initialize m_tabKeyCyclesThroughElements to true.
* page/Page.h: Added m_tabKeyCyclesThroughElements.
(WebCore::Page::setTabKeyCyclesThroughElements): Added.
(WebCore::Page::tabKeyCyclesThroughElements): Added.
* platform/PlatformKeyboardEvent.h: Added ability to get NSEvent from PlatformKeyboardEvent.
* platform/mac/KeyEventMac.mm: (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
Initialize m_macEvent to the NSEvent.
* platform/graphics/svg/SVGImageEmptyClients.h: (WebCore::SVGEmptyEditorClient::handleKeyPress): Added.
2007-01-23 George Staikos <staikos@kde.org>
Compile with a released Qt.
* platform/graphics/qt/ImageQt.cpp:
2007-01-23 Lars Knoll <lars@trolltech.com>
Reviewed by Zack
Widget and ScrollView do not own the Qt widgets
anymore. Make sure they can handle the case of
a null QWidget and never delete them.
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::setScrollArea):
(WebCore::ScrollView::updateContents):
(WebCore::ScrollView::visibleWidth):
(WebCore::ScrollView::visibleHeight):
(WebCore::ScrollView::visibleContentRect):
(WebCore::ScrollView::setContentsPos):
(WebCore::ScrollView::resizeContents):
(WebCore::ScrollView::contentsX):
(WebCore::ScrollView::contentsY):
(WebCore::ScrollView::contentsWidth):
(WebCore::ScrollView::contentsHeight):
(WebCore::ScrollView::scrollOffset):
(WebCore::ScrollView::scrollBy):
(WebCore::ScrollView::hScrollbarMode):
(WebCore::ScrollView::vScrollbarMode):
(WebCore::ScrollView::setHScrollbarMode):
(WebCore::ScrollView::setVScrollbarMode):
* platform/qt/WidgetQt.cpp:
(WebCore::WidgetPrivate::~WidgetPrivate):
(WebCore::Widget::setQWidget):
2007-01-23 Zack Rusin <zack@kde.org>
Forgot to add one new file to the build.
* WebCore.pro: Add dom/clipboard.cpp
2007-01-23 Zack Rusin <zack@kde.org>
Fix the Qt build
* page/DragActions.h:
* page/DragController.cpp:
* platform/qt/DragDataQt.cpp:
(WebCore::DragData::canSmartReplace):
(WebCore::DragData::containsColor):
(WebCore::DragData::containsPlainText):
(WebCore::DragData::asPlainText):
(WebCore::DragData::asColor):
(WebCore::DragData::createClipboard):
(WebCore::DragData::containsCompatibleContent):
(WebCore::DragData::containsURL):
(WebCore::DragData::asURL):
(WebCore::DragData::asFragment):
* platform/qt/FileChooserQt.cpp:
2007-01-23 Lars Knoll <lars@trolltech.com>
Reviewed by Maciej
Make the last remaining pieces of the FrameLoader platform
independent. Move most of the code over to WebFrameLoaderClient.
Some smaller cleanups in the WebFrameBridge, and moved some
platform independent functionality over to the shared code
in WebCore.
* WebCore.exp:
* WebCore.pro:
* WebCore.xcodeproj/project.pbxproj:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadSubframe):
(WebCore::FrameLoader::shouldUsePlugin):
(WebCore::FrameLoader::loadPlugin):
(WebCore::FrameLoader::detachFromParent):
(WebCore::FrameLoader::partClearedInBegin):
(WebCore::FrameLoader::createJavaAppletWidget):
(WebCore::FrameLoader::didChangeTitle):
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* loader/FrameLoaderTypes.h:
(WebCore::):
* loader/PluginDocument.cpp:
(WebCore::PluginTokenizer::writeRawData):
* loader/mac/FrameLoaderMac.mm: Removed.
* loader/qt/FrameLoaderQt.cpp: Removed.
* page/Frame.cpp:
(WebCore::Frame::Frame):
* page/FrameView.cpp:
(WebCore::FrameView::mediaType):
* page/qt/FrameQt.cpp:
(WebCore::FrameQt::FrameQt):
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::makeRepresentation):
(WebCore::SVGEmptyFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache):
(WebCore::SVGEmptyFrameLoaderClient::dispatchDidCommitLoad):
(WebCore::SVGEmptyFrameLoaderClient::dispatchDidFailLoad):
(WebCore::SVGEmptyFrameLoaderClient::dispatchCreatePage):
(WebCore::SVGEmptyFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
(WebCore::SVGEmptyFrameLoaderClient::dispatchUnableToImplementPolicy):
(WebCore::SVGEmptyFrameLoaderClient::revertToProvisionalState):
(WebCore::SVGEmptyFrameLoaderClient::setMainDocumentError):
(WebCore::SVGEmptyFrameLoaderClient::startDownload):
(WebCore::SVGEmptyFrameLoaderClient::committedLoad):
(WebCore::SVGEmptyFrameLoaderClient::shouldFallBack):
(WebCore::SVGEmptyFrameLoaderClient::willUseArchive):
(WebCore::SVGEmptyFrameLoaderClient::createDocumentLoader):
(WebCore::SVGEmptyFrameLoaderClient::createFrame):
(WebCore::SVGEmptyFrameLoaderClient::createPlugin):
(WebCore::SVGEmptyFrameLoaderClient::createJavaAppletWidget):
(WebCore::SVGEmptyFrameLoaderClient::objectContentType):
(WebCore::SVGEmptyFrameLoaderClient::overrideMediaType):
(WebCore::SVGEmptyFrameLoaderClient::redirectDataToPlugin):
(WebCore::SVGEmptyFrameLoaderClient::windowObjectCleared):
2007-01-23 Oliver Hunt <oliver@apple.com>
Reviewed by Adam.
Added DragController to handled drag and drop state and control logic.
Currently this only handles logic for Dragging and Dropping, and is
unable to initialise a drag itself.
platform/DragData encapsulate the paltform Drag data (NSDraggingInfo on Mac,
QMimeType in Qt). This provides methods to pull data out the drag data as a String,
a URL, a DocumentFragment (for rich content), or a Colour.
* WebCore.exp:
* WebCore.pro:
* WebCore.xcodeproj/project.pbxproj:
* dom/Clipboard.cpp: Added.
(WebCore::Clipboard::setAccessPolicy):
(WebCore::dragOpFromIEOp):
(WebCore::IEOpFromDragOp):
(WebCore::Clipboard::sourceOperation):
(WebCore::Clipboard::destinationOperation):
(WebCore::Clipboard::setSourceOperation):
(WebCore::Clipboard::setDestinationOperation):
(WebCore::Clipboard::setDropEffect):
(WebCore::Clipboard::setEffectAllowed):
move platform independent functions from ClipboardMac to Clipboard
* dom/Clipboard.h:
(WebCore::Clipboard::Clipboard):
(WebCore::Clipboard::dropEffect):
(WebCore::Clipboard::effectAllowed):
(WebCore::Clipboard::policy):
as above -- also removed virtual modifier from now
platform independent methods
* editing/Editor.cpp:
(WebCore::Editor::smartInsertDeleteEnabled):
(WebCore::Editor::shouldApplyStyle):
* editing/Editor.h:
adding calls through to EditorClient
* page/DragActions.h: Added.
(WebCore::):
Replicates a number of NS* enums in the WebCore namespace
* page/DragClient.h: Added.
(WebCore::DragClient::~DragClient):
Standard client interface for dragging UIDelegate
* page/DragController.cpp: Added.
(WebCore::createMouseEvent):
(WebCore::DragController::DragController):
(WebCore::DragController::~DragController):
(WebCore::documentFragmentFromDragData):
(WebCore::DragController::isMoveDrag):
(WebCore::visiblePositionForPoint):
(WebCore::DragController::cancelDrag):
(WebCore::documentAtPoint):
(WebCore::DragController::dragEntered):
(WebCore::DragController::dragExited):
(WebCore::DragController::dragUpdated):
(WebCore::DragController::performDrag):
(WebCore::DragController::dragEnteredOrUpdated):
(WebCore::DragController::tryDocumentDrag):
(WebCore::DragController::operationForLoad):
(WebCore::DragController::concludeDrag):
(WebCore::DragController::canProcessDrag):
(WebCore::DragController::tryDHTMLDrag):
Class to handle state and logic for dragging and dropping
* page/DragController.h: Added.
(WebCore::DragController::client):
(WebCore::DragController::didInitiateDrag):
(WebCore::DragController::isHandlingDrag):
(WebCore::DragController::dragOperation):
(WebCore::DragController::document):
(WebCore::DragController::dragInitiator):
(WebCore::DragController::dragDestinationAction):
(WebCore::DragController::dragSourceAction):
(WebCore::DragController::dragEnded):
(WebCore::DragController::setIsHandlingDrag):
(WebCore::DragController::setDidInitiateDrag):
(WebCore::DragController::setDragOperation):
(WebCore::DragController::setDragSourceAction):
(WebCore::DragController::setDragInitiator):
See above
* page/Page.cpp:
(WebCore::Page::Page):
Update Page to have DragController
* page/Page.h:
(WebCore::Page::dragController):
ditto
* page/mac/DragControllerMac.mm: Added.
(WebCore::DragController::isCopyKeyDown):
(WebCore::DragController::dragOperation):
Platform specific portions of the DragController
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::handleDrag):
(WebCore::EventHandler::dragSourceEndedAt):
Convert from NSDragOperation to WebCore::DragOperation
* page/mac/WebCoreFrameBridge.h:
* page/mac/WebCoreFrameBridge.mm:
Remove obsolete Drag functions
* page/qt/DragControllerQt.cpp: Added.
(WebCore::DragController::isCopyKeyDown):
(WebCore::DragController::dragOperation):
Basic stubs to maintain Qt build
* platform/DragData.cpp: Added.
(WebCore::DragData::DragData):
* platform/DragData.h: Added.
(WebCore::DragData::clientPosition):
(WebCore::DragData::globalPosition):
(WebCore::DragData::platformData):
(WebCore::DragData::draggingSourceOperationMask):
DragData class to encapsulate platform drag data/event
* platform/graphics/svg/SVGImage.cpp:
(WebCore::SVGImage::setData):
Addition of dummy DragClient
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyDragClient::~SVGEmptyDragClient):
(WebCore::SVGEmptyDragClient::willPerformDragDestinationAction):
(WebCore::SVGEmptyDragClient::actionMaskForDrag):
(WebCore::SVGEmptyDragClient::dragControllerDestroyed):
ditto
* platform/mac/ClipboardMac.h:
* platform/mac/ClipboardMac.mm:
(WebCore::ClipboardMac::ClipboardMac):
(WebCore::ClipboardMac::clearData):
(WebCore::ClipboardMac::clearAllData):
(WebCore::ClipboardMac::getData):
(WebCore::ClipboardMac::setData):
(WebCore::ClipboardMac::types):
(WebCore::ClipboardMac::setDragImage):
Moving platform independent logic to Clipboard, and updating
platform specific methods to use appropriate accessors rather than
directly manipulating data they no longer own
* platform/mac/DragDataMac.mm: Added.
(WebCore::DragData::DragData):
(WebCore::DragData::canSmartReplace):
(WebCore::DragData::containsColor):
(WebCore::DragData::containsPlainText):
(WebCore::DragData::asPlainText):
(WebCore::DragData::asColor):
(WebCore::DragData::createClipboard):
(WebCore::imageExistsAtPaths):
(WebCore::DragData::containsCompatibleContent):
(WebCore::DragData::containsURL):
(WebCore::DragData::asURL):
(WebCore::DragData::asFragment):
Mac implementations of DragData methods. A number of these use
a Helper class that accesses WebKit functionality. That functionality
should be migrated to WebCore in the future.
* platform/mac/PasteboardHelper.h: Added.
(WebCore::PasteboardHelper::~PasteboardHelper):
Temporary, and Mac only, helper class to access WebKit functionality
from WebCore
* platform/qt/DragDataQt.cpp: Added.
(WebCore::DragData::canSmartReplace):
(WebCore::DragData::containsColor):
(WebCore::DragData::containsPlainText):
(WebCore::DragData::asPlainText):
(WebCore::DragData::asColor):
(WebCore::DragData::createClipboard):
(WebCore::DragData::containsCompatibleContent):
(WebCore::DragData::containsURL):
(WebCore::DragData::asURL):
(WebCore::DragData::asFragment):
Basic stubs to maintain Qt build
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::HitTestResult):
Correct HitTestResult copy contructor to copy localPoint
2007-01-22 Mark Rowe <mrowe@apple.com>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=11692
Bug 11692: REGRESSION(r17352): Disappearing page title
* dom/Document.cpp:
(WebCore::Document::setTitle): If the title has already been set explicitly via JavaScript,
ignore any changes to it due to encountering <title> tags.
2007-01-22 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12344
NativeListBox: item hit testing does not account for top padding and border
Test: fast/forms/listbox-selection-2.html
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::numVisibleItems): Changed height() to contentHeight()
since items are visible only in the content box.
(WebCore::RenderListBox::listIndexAtOffset): Adjusted for vertical padding and
borders. Changed to return -1 instead of the last item's index if the given offset
is below the last item.
(WebCore::RenderListBox::autoscroll): Adjusted for vertical padding and borders.
(WebCore::RenderListBox::controlClipRect): Changed to return the content box since
items should not spill into the padding box. This change is the reason the test
generates pixel results.
2007-01-22 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/4944770>
editing/pasteboard/4641033 layout test is broken (12328)
This layout test failure demonstrates three bugs:
Smart replace shouldn't be turned on, but is because a word
selection granularity from the previous test isn't cleared.
Smart replace shouldn't add any spaces because the paste is performed
in an empty paragraph.
Smart replace spaces are added to the text of options inside
the select element instead of before/after the select element.
This patch fixes the second two problems. During a
ReplaceSelectionCommand, the VisiblePosition for the end of
the inserted content is the last position in the last leaf
inserted. This is a problem when the last leaf is inside a
select element, since VP creation is inconsistent there.
Second, smart spaces were inserted inside the last leaf, not
at the endOfInsertedContent.
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::shouldMergeStart): Renamed
m_lastNodeInserted to m_lastLeafInserted. Use the
start/endOfInsertedContent getters.
(WebCore::ReplaceSelectionCommand::shouldMergeEnd): Ditto.
(WebCore::ReplaceSelectionCommand::removeNodePreservingChildren): Ditto.
(WebCore::ReplaceSelectionCommand::removeRedundantStyles): Ditto.
(WebCore::ReplaceSelectionCommand::positionAtEndOfInsertedContent): Added.
Special case for when the last leaf inserted is inside a select
element: return the VisiblePosition after the select element.
(WebCore::ReplaceSelectionCommand::positionAtStartOfInsertedContent): Added.
(WebCore::ReplaceSelectionCommand::doApply): Did renaming. Used
the start/endOfInsertedContent getters. Insert smart replace spaces
into the right nodes.
(WebCore::ReplaceSelectionCommand::shouldRemoveEndBR): Renaming.
(WebCore::ReplaceSelectionCommand::completeHTMLReplacement): Ditto.
(WebCore::ReplaceSelectionCommand::updateNodesInserted): Ditto.
* editing/ReplaceSelectionCommand.h:
2007-01-22 Darin Adler <darin@apple.com>
Reviewed by Adam.
- fix http://bugs.webkit.org/show_bug.cgi?id=12273
REGRESSION: File input value invisible after removing and re-appending
- made more of the file chooser code cross-platform
- fixed an Objective-C garbage collection problem in FileChooser
- tried to remove layering violations where FileChooser in the platform
directory knows about the rendering and DOM trees (but wasn't able to
do it entirely)
* platform/FileChooser.cpp: Added.
(WebCore::FileChooser::create): Changed parameters.
(WebCore::FileChooser::chooseFile): Changed to call chooseIcon function.
(WebCore::FileChooser::chooseIcon): Added.
* platform/FileChooser.h: Added FileChooserClient so this file doesn't have
to know about RenderFileUploadControl. Used RetainPtr instead of retain/release
so this works properly with Objective-C GC. Replaced disconnectUploadControl
with disconnectClient, which has a simple inline implementation. Moved the
Document parameter from the constructor to openFileChooser, along with a comment
about why it should not be there. Added a filename parameter to the constructor
for the initial filename. Added a font parameter to basenameForWidth so we don't
depend on having a pointer to the renderer. Removed the uploadControl() and
document() functions since no one calls either of them.
* platform/mac/FileChooserMac.mm: Removed code that is now cross-platform.
(-[OpenPanelController beginSheetWithFrame:]): Added frame parameter, instead
of storing a document pointer in the FileChooser.
(WebCore::FileChooser::FileChooser): Updated for changed parameters. Also added
code to choose the icon based on the initial filename. Pass the adopt parameter
to the constructor of the RetainPtr.
(WebCore::FileChooser::~FileChooser): Removed the release call, since the
RetainPtr will take care of it. Added a call to disconnectFileChooser here.
There's no need to disconnect at disconnectClient time, and that lets us have
one more cross-platform function.
(WebCore::FileChooser::openFileChooser): Added document parameter. Added code
to get the frame from the document. And added a nil check since there's no
ironclad guarantee the document won't have outlived its frame.
(WebCore::FileChooser::basenameForWidth): Added font parameter. Use that instead
of going at the upload control's style. The caller can handle that now.
* rendering/RenderFileUploadControl.h: Removed unnecessary includes.
Made class inherit privately from FileChooserClient. Changed constructor
parameter to HTMLInputElement rather than Node. Made protected members be
private instead, and made a couple function members const.
* rendering/RenderFileUploadControl.cpp: Moved constants to the top of the file,
but after the "using namespace"
(WebCore::RenderFileUploadControl::RenderFileUploadControl): Updated for changes
to the FileChooser::create function and the parameter types.
(WebCore::RenderFileUploadControl::~RenderFileUploadControl): Removed unneeded
null check -- there's no case where the FileChooser fails to be created.
(WebCore::RenderFileUploadControl::click): Pass document to openFileChooser.
(WebCore::RenderFileUploadControl::updateFromElement): Tweaked code a bit by
using updateFromElement and setValue instead of casting the renderer to a
RenderButton and calling setText directly. Put setInputType call here.
(WebCore::RenderFileUploadControl::maxFilenameWidth): Made const. Broke long line.
(WebCore::RenderFileUploadControl::createButtonStyle): Made const.
(WebCore::RenderFileUploadControl::paintObject): Moved buttonShadowHeight constant
to the top of the file. Call isEmpty instead of checking width and height of
IntRect for 0. Computed font to pass to FileChooser::basenameForWidth. Broke
long lines.
(WebCore::HTMLFileUploadInnerButtonElement::HTMLFileUploadInnerButtonElement):
Moved the setInputType call to the caller; concept here is that this class is
as simple as possible, rather than doing as much of the button job as possible.
* WebCore.xcodeproj/project.pbxproj: Added FileChooser.cpp.
* WebCore.pro: Ditto.
* CMakeLists.txt: Ditto.
* WebCoreSources.bkl: Ditto.
* platform/gdk/TemporaryLinkStubs.cpp: Updated stubs.
* platform/qt/FileChooserQt.cpp: Updated stubs.
2007-01-22 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12364
REGRESSSION (NativeListBox): Selected option's background is not clipped to the list box
Test: fast/forms/select-item-background-clip.html
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::paintItemBackground): Intersect the item's rect with
the list box's clip rect.
2007-01-22 Darin Adler <darin@apple.com>
Reviewed by Beth.
- fix http://bugs.webkit.org/show_bug.cgi?id=12369
REGRESSION (r19027): amazon.com home page crashes WebKit r19028 debug build
I caused this a few hours ago. Oops!
* rendering/RenderText.cpp: (WebCore::RenderText::setStyle):
Compute whether the font changed before calling RenderObject::setStyle.
2007-01-22 Beth Dakin <bdakin@apple.com>
Reviewed by Maciej.
Fix for <rdar://problem/4912129> REGRESSION: Crash occurs at
WebCore::Frame::eventHandler() after clicking to dismiss a
contextual menu on the page
* page/EventHandler.cpp:
(WebCore::EventHandler::stopAutoscrollTimer): Added nil-check.
2007-01-22 Darin Adler <darin@apple.com>
Reviewed by Mitz.
Inspired by a much simpler patch by Andrew Wellington <proton@wiretapped.net>.
- fix http://bugs.webkit.org/show_bug.cgi?id=11197
REGRESSION: Specifying a counter for a CODE tag's content style property
on before or after causes a crash.
Test: fast/css/beforeSelectorOnCodeElement.html
- fix regression I recently introduced where the monospace cache could be
used for text that was not ASCII, if text was changed after the style was set
Test: fast/text/monospace-width-cache.html
- streamline RenderText.h -- remove unneeded functions, make some needlessly
virtual functions non-virtual, remove unneeded header includes, replace use
of Font* with Font& for consistency with RenderStyle, use "text" consistently
instead of "string"
* rendering/RenderText.h: Removed unneeded include of "Text.h", declarations of
SOFT_HYPHEN, DocumentMarker, InlineBox, Position, String. Got rid of friend
declaration for InlineTextBox. Changed constructor to take a PassRefPtr since
we do take owership of the passed-in text. Made deleteTextBoxes() private.
Removed unneeded data(). Made override of length() private so people will use
the faster textLength() instead. Renamed string() to text() so it matches up
better with setText(). Same for stringLength(), originalString(), and
setInternalString(), which are now textLength(), originalText(), and
setTextInternal(). Renamed the old text() function to characters(), since it
returns a pointer as StringImpl::characters does. Changed Font* to Font& everywhere.
Renamed the internal calcMinMaxWidth() function to calcMinMaxWidthInternal() and
made it non-virtual since it's not overriden anywhere. Also made the
trimmedMinMaxWidth() function non-virtual. Made containsOnlyWhitespace() private.
Removed both font() functions (one was needlessly virtual) and element().
Renamed cacheWidths() to updateMonospaceCharacterWidth() and removed the
shouldUseMonospaceCache() function. Renamed allAscii() to isAllASCII() and made
it an inline function. Removed the m_allAsciiChecked flag and renamed the
m_allAscii flag to m_isAllASCII.
* rendering/RenderText.cpp:
(WebCore::RenderText::RenderText): Removed initialization of m_allAsciiChecked.
Initialize m_isAllASCII. Changed all occurrences of m_str->length() and
m_str->characters () to use the stringLength() and characters() inline functions
instead.
(WebCore::RenderText::setStyle): Replaced the unconditional call to cacheWidths
with a conditional call to updateMonospaceCharacterWidth. This speeds up the common
case where style is changed without changing the font.
(WebCore::RenderText::originalText): Changed code to not depend on overridden
element() function with casts to a Text node -- this was one of only two call sites.
Also renamed.
(WebCore::RenderText::positionForCoordinates): Name change.
(WebCore::RenderText::caretRect): Ditto.
(WebCore::RenderText::updateMonospaceCharacterWidth): Renamed from cacheWidths and
incorporate the check that was formerly in a separate shouldUseMonospaceCache
function.
(WebCore::RenderText::widthFromCache): Changed to take a Font& instead of Font*.
Changed to take advantage of the fact that the string is known to be all ASCII in
the m_monospaceCharacterWidth code path.
(WebCore::RenderText::trimmedMinMaxWidth): Ditto. Also use style()->font() instead
of font(false).
(WebCore::RenderText::calcMinMaxWidth): Ditto. Also changed to use softHyphen instead
of SOFT_HYPHEN.
(WebCore::RenderText::containsOnlyWhitespace): More of the same.
(WebCore::RenderText::setSelectionState): Ditto.
(WebCore::RenderText::setTextWithOffset): Ditto.
(WebCore::isInlineFlowOrEmptyText): Ditto.
(WebCore::RenderText::setTextInternal): Updated for name changes. Also changed to
set the m_isAllASCII flag every time, in the more-efficient way we use elsewhere
(or'ing all the characters together), and to call updateMonospaceCharacterWidth
if the "all ASCII"-ness of the text changes.
(WebCore::RenderText::setText): Updated for name changes.
(WebCore::RenderText::width): More like above.
(WebCore::RenderText::selectionRect): Ditto.
(WebCore::RenderText::caretMaxOffset): Ditto.
(WebCore::RenderText::previousOffset): Ditto.
(WebCore::RenderText::nextOffset): Ditto.
* dom/Position.cpp:
* dom/Range.cpp:
* editing/CompositeEditCommand.cpp:
* editing/DeleteSelectionCommand.cpp:
* editing/VisiblePosition.cpp:
* html/HTMLElement.cpp:
Added now-needed include of "Text.h" which is no longer included by "RenderText.h".
* editing/SelectionController.cpp:
(WebCore::SelectionController::debugRenderer):
* editing/TextIterator.cpp:
(WebCore::TextIterator::handleTextNode):
(WebCore::TextIterator::handleTextBox):
(WebCore::SimplifiedBackwardsTextIterator::handleTextNode):
Update for name changes of stringLength(), string(), and originalString() to
textLength(), text(), and originalText(), and to always use textLength() instead
of length() when we have a RenderText* rather than a RenderObject*.
* editing/visible_units.cpp:
(WebCore::startOfParagraph): Ditto.
(WebCore::endOfParagraph): Ditto.
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::placeBoxesHorizontally): Ditto. Also removed use of the
RenderObject::font() function and replaced it with explicit access to the style.
(WebCore::InlineFlowBox::placeBoxesVertically): Ditto.
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::selectionRect): Ditto.
(WebCore::InlineTextBox::isLineBreak): Ditto.
(WebCore::InlineTextBox::paint): Ditto.
(WebCore::InlineTextBox::selectionStartEnd): Ditto.
(WebCore::InlineTextBox::paintSelection): Ditto.
(WebCore::InlineTextBox::paintMarkedTextBackground): Ditto.
(WebCore::InlineTextBox::paintSpellingOrGrammarMarker): Ditto.
(WebCore::InlineTextBox::paintTextMatchMarker): Ditto.
(WebCore::InlineTextBox::offsetForPosition): Ditto.
(WebCore::InlineTextBox::positionForOffset): Ditto.
* rendering/RenderContainer.cpp:
(WebCore::RenderContainer::addChild): Ditto.
* rendering/RenderCounter.cpp:
(WebCore::RenderCounter::originalText): Ditto.
(WebCore::RenderCounter::calcMinMaxWidth): Ditto.
* rendering/RenderCounter.h: Ditto.
* rendering/RenderTextFragment.cpp:
(WebCore::RenderTextFragment::originalText): Ditto.
* rendering/RenderTextFragment.h: Ditto.
* rendering/SVGInlineFlowBox.cpp:
(WebCore::placePositionedBoxesHorizontally): Ditto.
(WebCore::placeBoxesVerticallyWithAbsBaseline): Ditto.
* rendering/bidi.cpp:
(WebCore::BidiIterator::increment): Ditto.
(WebCore::BidiIterator::current): Ditto.
(WebCore::BidiIterator::direction): Ditto.
(WebCore::addRun): Ditto.
(WebCore::checkMidpoints): Ditto.
(WebCore::RenderBlock::computeHorizontalPositionsForLine): Ditto.
(WebCore::RenderBlock::skipWhitespace): Ditto.
(WebCore::RenderBlock::findNextLineBreak): Ditto.
* rendering/RenderBR.h: Updated signature of width function which now takes a
Font& instead of a Font*.
* rendering/RenderBlock.cpp: (WebCore::stripTrailingSpace): Updated to no longer
use the RenderObject::font() function, and added a comment about first-line, which
is not handled properly here.
* rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::text):
* rendering/RenderTreeAsText.cpp: (WebCore::writeTextRun):
Eliminated use of RenderText::data().
* rendering/RenderObject.h: Removed RenderObject::font(). This had the bad effect of
having everyone pass in a boolean rather than using the cleaner style() and
firstLineStyle() functions in cases where there's no a firstLineStyle boolean.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::getVerticalPosition): Replaced use of RenderObject::font()
with direct use of the style instead, which is arguably easier to understand anyway.
(WebCore::RenderObject::baselinePosition): Ditto.
2007-01-22 Sam Weinig <sam@webkit.org>
Reviewed by The Mitz.
Move JSHTMLSelectElementCustom.cpp from bindings to bindings/js
where it belongs.
* WebCore.pro:
* WebCore.xcodeproj/project.pbxproj:
* bindings/JSHTMLSelectElementCustom.cpp: Removed.
* bindings/js/JSHTMLSelectElementCustom.cpp: Added.
2007-01-22 Zack Rusin <zack@kde.org>
Fix the Qt build.
* WebCore.pro: adjust after last changes
2007-01-21 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=10934
REGRESSION: prototype.js logs error (HTMLFormElement) on webkit builds
Added constructors for most HTML elements; started auto-generating HTMLSelectElement JS binding.
Test: fast/dom/Window/element-constructors-on-window.html
* DerivedSources.make: Generate JSHTMLSelectElement.
* WebCore.xcodeproj/project.pbxproj: Added JSHTMLSelectElement{Custom}.
* bindings/js/JSHTMLElementWrapperFactory.cpp: Create a proper binding for SELECT.
* bindings/js/kjs_html.cpp:
(KJS::):
(KJS::JSHTMLElement::classInfo):
(KJS::JSHTMLElement::accessors):
(KJS::JSHTMLElement::getOwnPropertySlot):
(KJS::HTMLElementFunction::callAsFunction):
(KJS::JSHTMLElement::put):
* bindings/js/kjs_html.h:
(KJS::JSHTMLElement::):
Removed everything related to SELECT. Renamed getHTMLOptionsCollection to toJS for autogenerated code
to be happy, and rewrote it using cacheDOMObject.
* bindings/scripts/CodeGeneratorJS.pm: Added HTMLElement to the list of types that cannot fail conversion.
* html/HTMLAnchorElement.idl:
* html/HTMLAppletElement.idl:
* html/HTMLAreaElement.idl:
* html/HTMLBRElement.idl:
* html/HTMLBaseElement.idl:
* html/HTMLBaseFontElement.idl:
* html/HTMLBodyElement.idl:
* html/HTMLButtonElement.idl:
* html/HTMLCanvasElement.idl:
* html/HTMLDListElement.idl:
* html/HTMLDirectoryElement.idl:
* html/HTMLDivElement.idl:
* html/HTMLFieldSetElement.idl:
* html/HTMLFontElement.idl:
* html/HTMLFormElement.idl:
* html/HTMLHRElement.idl:
* html/HTMLHeadElement.idl:
* html/HTMLHeadingElement.idl:
* html/HTMLHtmlElement.idl:
* html/HTMLImageElement.idl:
* html/HTMLInputElement.idl:
* html/HTMLIsIndexElement.idl:
* html/HTMLLIElement.idl:
* html/HTMLLabelElement.idl:
* html/HTMLLegendElement.idl:
* html/HTMLLinkElement.idl:
* html/HTMLMapElement.idl:
* html/HTMLMenuElement.idl:
* html/HTMLMetaElement.idl:
* html/HTMLModElement.idl:
* html/HTMLOListElement.idl:
* html/HTMLOptGroupElement.idl:
* html/HTMLParagraphElement.idl:
* html/HTMLParamElement.idl:
* html/HTMLPreElement.idl:
* html/HTMLQuoteElement.idl:
* html/HTMLScriptElement.idl:
* html/HTMLStyleElement.idl:
* html/HTMLTextAreaElement.idl:
* html/HTMLTitleElement.idl:
* html/HTMLUListElement.idl:
Generate constructors.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::length):
* html/HTMLSelectElement.h:
Make length() return unsigned for auto-generated code to be happy.
* html/HTMLSelectElement.idl: Adjusted to be usable for JS.
* bindings/JSHTMLSelectElementCustom.cpp: Added. Implements remove().
* page/DOMWindow.idl:
Added properties for most elements' constructors.
2007-01-21 Mark Rowe <mrowe@apple.com>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12357
Bug 12357: Reproducible crash in WebCore::Settings::isJavaScriptEnabled in svg/custom/js-update-bounce.svg under guard-malloc
* page/Frame.cpp:
(WebCore::Frame::~Frame): Access the global object directly rather than via Window::retrieveWindow to prevent our reference to
a deleted settings object being used.
2007-01-21 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fix <rdar://problem/4930503> REGRESSION: Page changes title when
command-clicking on named anchor link (12299)
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
Return if shouldContinue is false. This matches the other similar
functions and prevents us from doing extra work in the "ignore" case.
2007-01-21 Mark Rowe <mrowe@apple.com>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12355
Bug 12355: Reproducible crash in WebCore::parseNumber in svg/custom/js-update-bounce.svg under guard-malloc
* ksvg2/svg/SVGParserUtilities.cpp:
(WebCore::parseNumber): Parenthesize to prevent reading past end of buffer.
2007-01-21 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12345
REGRESSION: Disabled pop-up text is not grayed out
Test: fast/forms/select-disabled-appearance.html
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::adjustMenuListStyle):
2007-01-21 Darin Adler <darin@apple.com>
- fix non-Mac builds
* CMakeLists.txt: Added JSDocumentCustom.cpp.
* WebCore.pro: Ditto.
* WebCoreSources.bkl: Ditto.
2007-01-21 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12353 <rdar://problem/4944599>
REGRESSION: Crash on load (mutation event dispatch under the image element constructor deletes the element)
Test: fast/dom/HTMLImageElement/constructor-mutation-event-dispatch.html
* bindings/js/kjs_html.cpp:
(KJS::ImageConstructorImp::construct): Protect the image element before setting
its attributes.
2007-01-21 Sam Weinig <sam@webkit.org>
Rolling out patch for http://bugs.webkit.org/show_bug.cgi?id=8360.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::scrollToOffset):
(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::RenderLayer::updateScrollInfoAfterLayout):
(WebCore::Marquee::start):
* rendering/RenderLayer.h:
2007-01-21 David Kilzer <ddkilzer@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12280
select element not available by name through document.all
(dropdown list not available on smarthome.com checkout)
Test: fast/dom/document-all-select.html
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::checkForNameMatch):
(WebCore::HTMLCollection::updateNameCache):
2007-01-21 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- http://bugs.webkit.org/show_bug.cgi?id=10805
REGRESSION (r15720): manual-tests/onblur-remove.html failing
* manual-tests/onblur-remove.html: Changed the test to not require pressing
Enter, since the correct behavior for Enter is to send a blur event.
2007-01-21 Sanjay Madhav <sanjay12@gmail.com>
Reviewed by Darin.
Fix for: <rdar://problem/4928583> Memory usage grows when reloading google.com/ig
JSDocuments are now responsible for marking the DOM wrappers associated with them, when they get marked.
This fixes a JS object leak when a DOM wrapper has a reference to a JSDocument that is otherwise not reachable.
Test: fast/dom/gc-10.html
* WebCore.vcproj/WebCore/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDocumentCustom.cpp: Added.
(WebCore::JSDocument::mark):
* bindings/js/kjs_binding.cpp:
(KJS::ScriptInterpreter::markDOMNodesForDocument):
(KJS::ScriptInterpreter::mark):
* bindings/js/kjs_binding.h:
* dom/Document.idl:
2007-01-21 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=10692
REGRESSION (r14847): Unnecessary scrollbars with position:relative; and overflow:auto;
Test: fast/overflow/position-relative.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::lowestPosition): Add the relative position offset only
if 'includeSelf' is true.
(WebCore::RenderBox::rightmostPosition): Ditto.
(WebCore::RenderBox::leftmostPosition): Ditto.
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::lowestPosition): Ditto.
(WebCore::RenderFlow::rightmostPosition): Ditto.
(WebCore::RenderFlow::leftmostPosition): Ditto.
2007-01-21 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=10472
REGRESSION: "add" method of <select> object does not put the <option> object in the correct position
Test: fast/dom/HTMLSelectElement/options-collection-detached.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::setRecalcListItems): Reset the options collection
info if the <select> is not in the document. For in-document <select>s this
happens anyway as a result of the DOM tree version increasing.
2007-01-21 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12349
NativeFileUpload: Button text is not grayed out when the control is disabled
Covered by fast/forms/file-input-disabled.html
* css/html4.css: Changed selectors that had pseudo-classes after the -webkit-file-upload-button
pseudo-element to have the pseudo-element at the end. Pseudo-elements must be at the end.
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::createButtonStyle): Changed to not overwrite the button's
style with its parent's style. getPseudoStyle() handles inheritance properly.
2007-01-21 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12343
crash in css2.1/t1202-counter-09-b.html
* platform/Font.cpp:
(WebCore::Font::glyphDataForCharacter):
2007-01-21 Darin Adler <darin@apple.com>
Reviewed by Adam and Mitz.
- fix http://bugs.webkit.org/show_bug.cgi?id=12347
REGRESSION: list box scrolling broken (fast/forms/listbox-selection.html)
Covered by existing test: fast/forms/listbox-selection.html
* rendering/RenderListBox.h: Added override of layout(), made selectionChanged()
no longer an inline. Added private scrollToRevealSelection(),
m_scrollToRevealSelectionAfterLayout, and m_inAutoscroll.
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::RenderListBox): Initialize new data members.
(WebCore::RenderListBox::updateFromElement): Remove scrolling code.
(WebCore::RenderListBox::selectionChanged): Moved from header. Calls repaint
and then scrollToRevealSelection, but if we need layout, instead schedules
scrollToRevealSelection to be done after layout.
(WebCore::RenderListBox::layout): Added. After calling base class, calls
scrollToRevealSelection if the m_scrollToRevealSelectionAfterLayout is set.
(WebCore::RenderListBox::scrollToRevealSelection): Added. Code was originally
in updateFromElement.
(WebCore::RenderListBox::autoscroll): Set m_inAutoscroll so that the
selectionChanged function knows not to scroll. Also removed the repaint()
here because updateListBoxSelection() takes care of repainting by calling
selectionChanged().
2007-01-21 David Kilzer <ddkilzer@webkit.org>
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseMoveEvent): Changed #if SVG_SUPPORT to #ifdef SVG_SUPPORT.
2007-01-20 Mitz Pettel <mitz@webkit.org>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=11115
REGRESSION: Crash on Flickr after hitting cancel from adding a note
Test: fast/forms/text-set-value-crash.html
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setValue): Added a call to Document::updateRendering().
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::setValue): Ditto.
2007-01-20 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=8360
Repro crash when onscroll handler deletes the scrolled object
Test: fast/layers/removed-by-scroll-handler.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::dispatchScrollEvent): Added. Called when the timer
fires and dispatches the scroll event to the layer's element.
(WebCore::RenderLayer::scrollToOffset): Instead of dispatching the scroll
event from this function, which is called during layout, schedule a 0-duration
timer to dispatch the event after layout.
(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::RenderLayer::updateScrollInfoAfterLayout):
(WebCore::Marquee::start):
* rendering/RenderLayer.h:
2007-01-20 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Sam.
Fix JS bindings for SVGAnimated{Boolean, Enumeration, Integer, Number, String}.
Dynamic SVG DOM updates (ie. "someUse.href.baseVal = '#rect'") with these types
didn't work. Existing gradient updating examples relied on calling setAttribute
after a SVG DOM update - that was the only reason it worked, added a new test
only using SVG DOM updates (js-update-stop.svg).
Added test: js-update-stop.svg
Added test: use-property-changes-through-dom.svg (change xlink:href, x/y attributes using setAttribute)
Added test: use-property-changes-through-svg-dom.svg (change xlink:href, x/y attributes using SVG DOM)
* bindings/js/JSSVGPODTypeWrapper.h:
(WebCore::JSSVGPODTypeWrapper::commitChange):
(WebCore::JSSVGPODTypeWrapperCreator::commitChange):
(WebCore::JSSVGPODTypeWrapperCreatorForList::commitChange):
* bindings/js/JSSVGPathSegListCustom.cpp:
(WebCore::updatePathSegContextMap):
(WebCore::removeFromPathSegContextMap):
* bindings/scripts/CodeGeneratorJS.pm:
* ksvg2/misc/SVGDocumentExtensions.h:
(WebCore::SVGDocumentExtensions::baseValueMap):
(WebCore::SVGDocumentExtensions::genericContextMap):
(WebCore::SVGDocumentExtensions::baseValue):
(WebCore::SVGDocumentExtensions::setBaseValue):
(WebCore::SVGDocumentExtensions::removeBaseValue):
(WebCore::SVGDocumentExtensions::hasBaseValue):
(WebCore::SVGDocumentExtensions::genericContext):
(WebCore::SVGDocumentExtensions::setGenericContext):
(WebCore::SVGDocumentExtensions::removeGenericContext):
(WebCore::SVGDocumentExtensions::hasGenericContext):
(WebCore::String):
(WebCore::FloatRect):
(WebCore::bool):
(WebCore::double):
* ksvg2/svg/SVGClipPathElement.h:
* ksvg2/svg/SVGElement.h:
(WebCore::SVGElement::notifyAttributeChange):
* ksvg2/svg/SVGPathSegList.cpp:
(WebCore::SVGPathSegList::SVGPathSegList):
(WebCore::SVGPathSegList::context):
* ksvg2/svg/SVGPathSegList.h:
* ksvg2/svg/SVGPatternElement.h:
* ksvg2/svg/SVGPointList.cpp:
(SVGPointList::SVGPointList):
(SVGPointList::context):
* ksvg2/svg/SVGPointList.h:
* ksvg2/svg/SVGStopElement.cpp:
(WebCore::SVGStopElement::parseMappedAttribute):
(WebCore::SVGStopElement::notifyAttributeChange):
* ksvg2/svg/SVGStopElement.h:
* ksvg2/svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::notifyAttributeChange):
2007-01-20 Rob Buis <buis@kde.org>
Reviewed by Sam.
http://bugs.webkit.org/show_bug.cgi?id=12334
Respect <text> boundaries for svg text selecting
Make sure the text selection for svg stays inside
containing blocks.
Added one manual test since html selection does not
seem to work for SVG and selectSubString for SVG
is not implemented yet.
* manual-tests/svg-text-selection.svg: Added.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseMoveEvent):
* rendering/RenderObject.h:
(WebCore::RenderObject::isSVGText):
* rendering/RenderSVGInlineText.h:
(WebCore::RenderSVGInlineText::isSVGText):
* rendering/RenderSVGText.h:
(WebCore::RenderSVGText::isSVGText):
2007-01-19 Adele Peterson <adele@apple.com>
Reviewed by Hyatt.
Fix for: <rdar://problem/4697438> REGRESSION: select menu lists match the wrong css rule on www.chainreaction.com
Update the size attribute value for select elements to match the numeric value. This is a special case since this
attribute is used to determine which control to use. We want to make sure that the size attribute is valid when we match
CSS rules.
Test: fast/forms/select-size.html
* html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::parseMappedAttribute): If the attribute string value is not the
same as its integer value, then update the attribute value to match the integer.
* dom/Attribute.h: Made setValue and setPrefix public.
2007-01-19 John Sullivan <sullivan@apple.com>
Reviewed by Darin
- WebCore part of fix for: <rdar://problem/4451715> REGRESSION: On some sites, have to
type a character before username/password autofill kicks in
* loader/FrameLoaderClient.h:
new dispatchDidFinishDocumentLoad call
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::finishedParsing):
call dispatchDidFinishDocumentLoad
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::dispatchDidFinishDocumentLoad):
empty implementation for dispatchDidFinishDocumentLoad
2007-01-19 Adele Peterson <adele@apple.com>
Reviewed by Hyatt.
Fix for <rdar://problem/4760280> REGRESSION: Bottom portion of text hangs off edge of SELECT element at http://macreviewzone.com/index.php
Test: fast/forms/control-restrict-line-height.html
* rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::setFontFromControlSize): Don't honor line-height for controls that
have restricted font size.
2007-01-19 Darin Adler <darin@apple.com>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=11999
<rdar://problem/4940442> REGRESSION: Incomplete listing in TVListings window (11999)
Fix was to use the actual size of the renderer in the RenderListBox
case, instead of always using the size specified by the select element.
Test: fast/forms/select-list-box-with-height.html
- fix http://bugs.webkit.org/show_bug.cgi?id=11995
<rdar://problem/4901834> REGRESSION(NativeListBox): Focus is not placed on
SELECT after mousing down on OPTION
Test: fast/forms/select-list-box-mouse-focus.html
- fix bug where auto-scrolling was not working in list box select elements
No test yet.
- fix a missing semicolon in the radio/checkbox section of html4.css
Test: fast/forms/radio-no-theme-padding.html
- fix bug where the scroll bars for select elements were pixel-type scroll
bars even though the scrolling is line at a time scrolling
No test.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::selectAll): Removed an explicit call
to repaint, since the RenderListBox now does that in selectionChanged.
(WebCore::HTMLSelectElement::notifyOptionSelected): Call the new
selectionChanged instead of the old setSelectionChanged.
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler): Added a call
to focus. Removed an explicit call to repaint and added a call to the
new setMouseDownMayStartAutoscroll function in EventHandler. Removed an
explicit call to repaint as above.
(WebCore::HTMLSelectElement::updateListBoxSelection): Call the new
selectionChanged instead of the old setSelectionChanged.
* page/EventHandler.h: Added setMouseDownMayStartAutoscroll, needed
because the existing code to set that flag won't get triggered when
the select element's default event handler handles the event.
* rendering/RenderListBox.h: Made ScrollbarClient a private base class.
Removed setSelectionChanged and m_selectionChanged. Added selectionChanged,
which is really just a synonym for repaint for now. Moved valueChanged,
the ScrollbarClient function implementations, and itemHeight into the
private part of the class. Added numVisibleItems() and listHeight() to
the private section. Changed m_vBar to be a RefPtr.
* rendering/RenderListBox.cpp: Removed unneeded includes. Moved all
the constants to the top of the file.
(WebCore::RenderListBox::RenderListBox): Removed initialization of
m_selectionChanged because it was removed and of m_vBar because it's
now a RefPtr which is automaticall initialized.
(WebCore::RenderListBox::~RenderListBox): Removed the explicit deref of
m_vBar because it's a RefPtr. Added null checking for FrameView.
(WebCore::RenderListBox::updateFromElement): Use numItems().
(WebCore::RenderListBox::calcMinMaxWidth): Added null checking for
FrameView and used RefPtr for the newly-created scroll bar.
(WebCore::RenderListBox::size): Tweaked formatting. Also renamed the
misleading minDefaultSize to maxDefaultSize, since it's a maximum.
(WebCore::RenderListBox::numVisibleItems): Added. Used in many places
where size() was used before. This computes the number of rows we have
room for. We don't need a row space after the last row, and this takes
that into account.
(WebCore::RenderListBox::numItems): Tweaked to remove the local variable.
(WebCore::RenderListBox::listHeight): Added. Total height of all the rows
and spaces between them.
(WebCore::RenderListBox::calcHeight): Changed to call itemHeight for the
row height, and to subtract the last row spacing off since we don't need
a space after the last row. Changed the scroll bar setup to make it
correspond to row numbers, not pixel numbers.
(WebCore::RenderListBox::baselinePosition): Moved the comment to the
constant declaration at the top of the file.
(WebCore::RenderListBox::itemBoundingBoxRect): Simplified by using
the itemHeight() function.
(WebCore::RenderListBox::paintObject): Changed to use numItems and
to use numVisibleItems instead of size.
(WebCore::RenderListBox::isPointInScrollbar): Added get() call since
m_vBar is now a RefPtr.
(WebCore::RenderListBox::listIndexAtOffset): Changed to use numItems(),
itemHeight(), and rearranged a min/max combo so it starts with the low,
then the value, then the high value for pinning.
(WebCore::RenderListBox::autoscroll): Use numVisibleItems() instead of
size().
(WebCore::RenderListBox::stopAutoscroll): Removed an unneeded nil check
of the element.
(WebCore::RenderListBox::scrollToRevealElementAtListIndex): Changed
to use numItems() and to use numVisibleItems() instead of size().
Also changed scroll bar code to work more simply now that the scroll
bar is row-based.
(WebCore::RenderListBox::listIndexIsVisible): Changed to use
numVisibleItems() instead of size().
(WebCore::RenderListBox::valueChanged): Simplified since the scrollbar
is now row-based. Also removed an unnecessary null check.
(WebCore::RenderListBox::itemHeight): Updated for name change from
optionsSpacingMiddle to rowSpacing.
(WebCore::RenderListBox::scrollHeight): Changed to use listHeight().
(WebCore::RenderListBox::setScrollTop): Simplified, and removed the code
that does nothing if the computed list index is visible (which did not
make sense for this function and seemed a cut and paste error from the
scrollToReveal function). The scrollbar part is simpler now that it's
row-based.
(WebCore::RenderListBox::windowClipRect): Changed to use document()->view()
so we don't have to include RenderView.h.
* css/html4.css: Added a semicolon I noticed was missing.
2007-01-19 Beth Dakin <bdakin@apple.com>
Reviewed by Maciej and Darin.
Fix for <rdar://problem/4702420> REGRESSION: Null characters need
to be stripped from text nodes (townhall.com)
This was a regression from the fix for <rdar://problem/3727939>
Safari strips \0 characters from HTML tags making them valid, which
was fixed with r12652. We still need to strip null characters in
text nodes.
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::write): No behavior change here, this is
just to make Darin happy.
(WebCore::HTMLTokenizer::processToken): Call into StringImpl's new
createStrippingNull function instead of the normal StringImpl
constructor.
* platform/StringImpl.cpp:
(WebCore::StringImpl::createStrippingNull): Strip null.
* platform/StringImpl.h:
2007-01-19 David Kilzer <ddkilzer@webkit.org>
Reviewed by NOBODY (no-svg build fix).
* ksvg2/svg/SVGMPathElement.cpp: Added #ifdef SVG_SUPPORT/#endif guards.
2007-01-19 Anders Carlsson <acarlsson@apple.com>
Build fix.
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyChromeClient::setStatusbarText):
2007-01-18 Anders Carlsson <acarlsson@apple.com>
Reviewed by Adam.
Move JavaScript alert and status bar functions to the chrome.
* bindings/js/kjs_window.cpp:
(KJS::WindowFunc::callAsFunction):
* page/Chrome.cpp:
(WebCore::Chrome::runJavaScriptAlert):
(WebCore::Chrome::runJavaScriptConfirm):
(WebCore::Chrome::runJavaScriptPrompt):
(WebCore::Chrome::setStatusBarText):
* page/Chrome.h:
* page/ChromeClient.h:
* page/Frame.cpp:
(WebCore::Frame::setJSStatusBarText):
(WebCore::Frame::setJSDefaultStatusBarText):
* page/Frame.h:
* page/mac/FrameMac.h:
* page/mac/FrameMac.mm:
* page/mac/WebCoreFrameBridge.h:
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyChromeClient::runJavaScriptAlert):
(WebCore::SVGEmptyChromeClient::runJavaScriptConfirm):
(WebCore::SVGEmptyChromeClient::runJavaScriptPrompt):
(WebCore::SVGEmptyChromeClient::setStatusBarText):
2007-01-19 Zack Rusin <zack@kde.org>
Fix the build.
* WebCore.pro: Add missing files
2007-01-19 Eric Seidel <eric@webkit.org>
Reviewed by rwlbuis.
More cleanup to SVGAnimated* classes.
No tests possible (only code cleanup)
* ksvg2/svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::applyAnimationToValue):
* ksvg2/svg/SVGAnimateMotionElement.h:
* ksvg2/svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::parseBeginOrEndValue):
(WebCore::SVGAnimationElement::parseMappedAttribute):
(WebCore::SVGAnimationElement::parseClockValue):
(WebCore::SVGAnimationElement::isIndefinite):
* ksvg2/svg/SVGAnimationElement.h:
2007-01-19 Nikolas Zimmermann <zimmermann@kde.org>
Not reviewed.
Remove accidently commited debug output. Shame on me :-)
* ksvg2/svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::notifyAttributeChange):
2007-01-19 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Eric.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=10410 (SVG Slider example renders completely wrong (inserting <use> dynamically doesn't work))
Fixes: http://bugs.webkit.org/show_bug.cgi?id=11660 (SVG: creation of <use/> elements through scripting/DOM doesn't work)
Added test: svg/custom/use-instanceRoot-modifications.svg
Added test: svg/custom/use-on-g.svg
Added test: svg/custom/use-on-rect.svg
Added test: svg/custom/use-on-symbol-inside-pattern.svg
Added test: svg/custom/use-on-symbol.svg
Added test: svg/custom/use-on-text.svg
Added test: svg/custom/use-transform.svg
Fixes: svg/W3C-SVG-1.1/text-text-04-t.svg (missing use elements)
Fixes: svg/carto.net/button.svg (image buttons didn't appear)
Fixes: svg/carto.net/colourpicker.svg (slider handles finally show up)
Fixes: svg/carto.net/slider.svg (slider handles finally show up)
Fixes: svg/carto.net/window.svg (window decorations show up)
Fixes: svg/custom/use-forward-refs.svg (missing use elements)
Rewrite <use> support with a real-shadow tree (as the spec demands), and implement SVGElementInstance.
AFAIK we're the first implementing this SVG feature - after ASV3 (!).
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* bindings/objc/DOMInternal.h:
* bindings/objc/DOMSVG.h:
* ksvg2/misc/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::reportWarning):
(WebCore::SVGDocumentExtensions::reportError):
(WebCore::SVGDocumentExtensions::addPendingResource):
(WebCore::SVGDocumentExtensions::isPendingResource):
(WebCore::SVGDocumentExtensions::removePendingResource):
(WebCore::SVGDocumentExtensions::mapInstanceToElement):
(WebCore::SVGDocumentExtensions::removeInstanceMapping):
(WebCore::SVGDocumentExtensions::instancesForElement):
* ksvg2/misc/SVGDocumentExtensions.h:
* ksvg2/svg/SVGCircleElement.cpp:
(WebCore::SVGCircleElement::notifyAttributeChange):
* ksvg2/svg/SVGElement.cpp:
(WebCore::SVGElement::insertedIntoDocument):
* ksvg2/svg/SVGElement.h:
(WebCore::SVGElement::buildPendingResource):
* ksvg2/svg/SVGElementInstance.cpp:
(WebCore::SVGElementInstance::SVGElementInstance):
(WebCore::SVGElementInstance::~SVGElementInstance):
(WebCore::SVGElementInstance::clonedElement):
(WebCore::SVGElementInstance::correspondingElement):
(WebCore::SVGElementInstance::correspondingUseElement):
(WebCore::SVGElementInstance::parentNode):
(WebCore::SVGElementInstance::childNodes):
(WebCore::SVGElementInstance::previousSibling):
(WebCore::SVGElementInstance::nextSibling):
(WebCore::SVGElementInstance::firstChild):
(WebCore::SVGElementInstance::lastChild):
(WebCore::SVGElementInstance::appendChild):
(WebCore::SVGElementInstance::updateInstance):
* ksvg2/svg/SVGElementInstance.h:
* ksvg2/svg/SVGElementInstance.idl: Added.
* ksvg2/svg/SVGElementInstanceList.cpp:
(WebCore::SVGElementInstanceList::SVGElementInstanceList):
(WebCore::SVGElementInstanceList::length):
(WebCore::SVGElementInstanceList::item):
* ksvg2/svg/SVGElementInstanceList.h:
* ksvg2/svg/SVGElementInstanceList.idl: Added.
* ksvg2/svg/SVGEllipseElement.cpp:
(WebCore::SVGEllipseElement::notifyAttributeChange):
* ksvg2/svg/SVGGElement.cpp:
* ksvg2/svg/SVGGElement.h:
(WebCore::SVGGElement::contextElement):
* ksvg2/svg/SVGGradientElement.cpp:
* ksvg2/svg/SVGGradientElement.h:
* ksvg2/svg/SVGHiddenElement.h: Added.
(WebCore::SVGHiddenElement::Type):
(WebCore::SVGHiddenElement::~SVGHiddenElement):
(WebCore::SVGHiddenElement::localName):
* ksvg2/svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::notifyAttributeChange):
* ksvg2/svg/SVGLineElement.cpp:
(WebCore::SVGLineElement::notifyAttributeChange):
* ksvg2/svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::notifyAttributeChange):
* ksvg2/svg/SVGPatternElement.cpp:
* ksvg2/svg/SVGPatternElement.h:
* ksvg2/svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::notifyAttributeChange):
* ksvg2/svg/SVGRectElement.cpp:
(WebCore::SVGRectElement::notifyAttributeChange):
* ksvg2/svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::notifyAttributeChange):
(WebCore::SVGStyledElement::updateElementInstance):
* ksvg2/svg/SVGStyledElement.h:
* ksvg2/svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::instanceRoot):
(WebCore::SVGUseElement::animatedInstanceRoot):
(WebCore::SVGUseElement::hasChildNodes):
(WebCore::SVGUseElement::insertedIntoDocument):
(WebCore::SVGUseElement::buildPendingResource):
(WebCore::SVGUseElement::createRenderer):
(WebCore::SVGUseElement::buildShadowTree):
(WebCore::SVGUseElement::recursiveShadowTreeBuilder):
(WebCore::dumpShadowTree):
(WebCore::SVGUseElement::addShadowTree):
* ksvg2/svg/SVGUseElement.h:
* ksvg2/svg/SVGUseElement.idl:
2007-01-19 Eric Seidel <eric@webkit.org>
Reviewed by rwlbuis.
Add support for SVGMPathElement parsing.
No test cases possible (SVGAnimateMotion doesn't work yet)
* WebCore.xcodeproj/project.pbxproj:
* ksvg2/svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::animationPath):
* ksvg2/svg/SVGMPathElement.cpp: Added.
(WebCore::SVGMPathElement::SVGMPathElement):
(WebCore::SVGMPathElement::~SVGMPathElement):
(WebCore::SVGMPathElement::parseMappedAttribute):
(WebCore::SVGMPathElement::pathElement):
* ksvg2/svg/SVGMPathElement.h: Added.
* ksvg2/svg/SVGNumberList.cpp:
(WebCore::SVGNumberList::parse): fix typo in comment
* ksvg2/svg/svgtags.in: add back mpath
2007-01-19 Eric Seidel <eric@webkit.org>
Reviewed by rwlbuis.
Implement better parsing for keyTimes, keySplines and keyPoints.
Unfortunately none of this code is used much yet, thus isn't very testable.
* ksvg2/svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::parseMappedAttribute):
* ksvg2/svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::parseKeyNumbers):
(WebCore::parseKeySplines):
(WebCore::SVGAnimationElement::parseMappedAttribute):
* ksvg2/svg/SVGAnimationElement.h:
* ksvg2/svg/SVGNumberList.cpp:
(WebCore::SVGNumberList::parse):
2007-01-18 Adam Roben <aroben@apple.com>
Reviewed by Beth.
Fix: <rdar://problem/4939672> REGRESSION: With text selected that is
not a link, the "Remove Link" contextual menu item remains active
* platform/ContextMenuItem.h: Added enabled method.
* platform/qt/ContextMenuItemQt.cpp:
(WebCore::ContextMenuItem::enabled): Implemented.
* platform/mac/ContextMenuItemMac.mm:
(WebCore::ContextMenuItem::enabled): Ditto.
* platform/mac/ContextMenuMac.mm:
(-[WebCoreMenuTarget validateMenuItem:]): Implemented to fulfill the
NSMenuValidation protocol.
2007-01-18 Beth Dakin <bdakin@apple.com>
Reviewed by Adele.
Fix for <rdar://problem/4939558> REGRESSION: "Search in Google",
"Search in Spotlight" and "Look up in Dictionary" are missing
initially from the contextual menu
The bug here is that we select the we were selecting the word after
the context menu event was dispatched and after the context menu
was built up.
* page/EventHandler.cpp:
(WebCore::EventHandler::sendContextMenuEvent): Select the word
before dispatching the event. It is safe to remove the check for
swallowEvent since WebCore context menus ensure that we always
swallow the event anyway.
2007-01-18 Mark Rowe <mrowe@apple.com>
Reviewed by Tim H.
Fix for http://bugs.webkit.org/show_bug.cgi?id=7926
Bug 7926: Crash using -callWebScriptMethod to access offsetTop property
* bindings/objc/WebScriptObject.mm:
(-[WebScriptObject callWebScriptMethod:withArguments:]): Bail out early if function value is an immediate,
or if the function object is not callable.
2007-01-18 Sam Weinig <sam@webkit.org>
Reviewed by Maciej.
Patch for http://bugs.webkit.org/show_bug.cgi?id=11853
REGRESSION (r17352): Whitespace in <title> is rendered
* loader/DocumentLoader.cpp:
(WebCore::canonicalizedTitle): Changed to also collapse internal
whitespace. This required removing an optimization that is no
longer possible.
* manual-tests/title-internal-whitespace.html: Added.
2007-01-18 Mitz Pettel <mitz@webkit.org>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=12039
Assertion failure in WebCore::Font::primaryFont
Test: fast/text/font-initial.html
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::applyProperty): Give 'font: initial' the
Standard generic family. This makes the FontDescription different from
that of the initial font of a GraphicsContext, ensuring that the latter
will not be used.
2007-01-18 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=11451
REGRESSION: Dell.com does not render correctly in ToT (stylesheet not loaded)
Test: http/tests/misc/css-accept-any-type.html
* loader/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet): Changed the accept header
for stylesheets to "text/css,*/*;q=0.1" to match Firefox, accepting CSS served
as any type.
2007-01-18 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=11271
REGRESSION (r12358): Text in display: table unselectable
Test: editing/selection/display-table-text.html
* editing/htmlediting.cpp:
(WebCore::isTableElement): Changed to return false for text nodes.
2007-01-18 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=6218
CSS1: WebTextRenderer caches and re-uses fallback renderers that are based on family lists
This patch takes character-to-glyph mapping out of FontData and instead makes
each Font keep its own mapping, using a shared set of glyph page fallback trees.
For each page number there is (at most) one tree. A path from the root to a
node in the tree corresponds to a fallback list of FontDatas. The node points to
a page (which may be shared with other nodes) that maps each character in its range
to a glyph in the first FontData in the fallback list that has it, or to 0 if none of
the FontDatas has a glyph for that character. A special kind of node, that can
only occur as a leaf, corresponds to using system fallback fonts after the list
has been exhausted. This prevents system fallback from polluting non-leaf
nodes.
Nodes and pages are initialized lazily and employ "copy on write".
* CMakeLists.txt:
* WebCore.pro:
* WebCore.vcproj/WebCore/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* platform/Font.cpp:
(WebCore::WidthIterator::WidthIterator): Removed substituteFontData.
(WebCore::WidthIterator::advance): Moved all character-to-glyph mapping logic out
of here and replaced it with a call to Font::glyphDataForCharacter().
(WebCore::Font::Font):
(WebCore::Font::operator=):
(WebCore::Font::glyphDataForCharacter): Added. This method performs the lookup in the
page fallback trees, triggering lazy initialization as needed, and caching pointers to
the retrieved page tree nodes in the font.
(WebCore::Font::update):
(WebCore::Font::drawSimpleText):
(WebCore::Font::floatWidth):
(WebCore::Font::floatWidthForSimpleText): Removed substituteFont argument.
(WebCore::Font::offsetForPositionForSimpleText):
* platform/Font.h:
* platform/FontData.cpp:
(WebCore::FontData::FontData):
* platform/FontData.h:
(WebCore::FontData::missingGlyphData): Added. Returns the "missing glyph" GlyphData for
this FontData.
* platform/GlyphMap.cpp: Removed.
* platform/GlyphMap.h: Removed.
* platform/GlyphPageTreeNode.cpp: Renamed GlyphMap.cpp to this.
(WebCore::GlyphPageTreeNode::getRoot): Added. Returns the root of the page fallback tree for
the given page number.
(WebCore::GlyphPageTreeNode::initializePage): Added. Helper method that initializes the page
pointer of a node, possibly to a pointer to another node's page or to 0.
(WebCore::GlyphPageTreeNode::getChild): Added.
* platform/GlyphPageTreeNode.h: Renamed GlyphMap.h to this.
(WebCore::GlyphPage::glyphDataForCharacter):
(WebCore::GlyphPage::setGlyphDataForCharacter):
(WebCore::GlyphPage::setGlyphDataForIndex):
(WebCore::GlyphPageTreeNode::GlyphPageTreeNode):
(WebCore::GlyphPageTreeNode::getRootChild):
(WebCore::GlyphPageTreeNode::parent):
(WebCore::GlyphPageTreeNode::page):
(WebCore::GlyphPageTreeNode::level):
(WebCore::GlyphPageTreeNode::isSystemFallback): Added. Returns whether the node corresponds
to the system providing fallback fonts, which is done on a character-by-character basis.
* platform/gdk/GlyphMapGdk.cpp: Removed.
* platform/gdk/GlyphPageTreeNodeGdk.cpp: Renamed GlyphMapGdk.cpp to this.
(WebCore::GlyphPage::fill):
* platform/mac/FontDataMac.mm:
(WebCore::FontData::platformInit):
* platform/mac/FontMac.mm:
(WebCore::Font::Font):
* platform/mac/GlyphMapMac.cpp: Removed.
* platform/mac/GlyphPageTreeNodeMac.cpp: Renamed GlypMapMac.cpp to this.
(WebCore::GlyphPage::fill): Changed to return false if the font has no glyphs in the page.
* platform/qt/GlyphMapQt.cpp: Removed.
* platform/qt/GlyphPageTreeNodeQt.cpp: Renamed GlyphMapQt.cpp to this.
(WebCore::GlyphPage::fill):
* platform/win/GlyphMapWin.cpp: Removed.
* platform/win/GlyphPageTreeNodeWin.cpp: Renamed GlyphMapWin to this.
(WebCore::GlyphPage::fill):
2007-01-18 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=9952
REGRESSION: Repro crash when dragging an image from the window to the address bar
* page/FrameView.cpp:
(WebCore::FrameView::~FrameView): Removed the call to Document::detach(). If this
view is the current view, then the Frame should have already detached the document.
Added an assertion that this is the case. If this view is not the current view,
then it cannot access its document, but the page cache should have detached it already.
Similarly, changed to call RenderPart::setWidget() only if this is the current view
in the frame.
(WebCore::FrameView::adjustViewSize): Added an assertion that this view is the current
view in the frame.
(WebCore::FrameView::layout): Ditto.
(WebCore::FrameView::scheduleRelayout): Ditto.
(WebCore::FrameView::scheduleRelayoutOfSubtree): Ditto.
(WebCore::FrameView::windowClipRect): Ditto.
2007-01-18 Eric Seidel <eric@webkit.org>
Reviewed by bdash.
No test needed, removed bogus debug-only ASSERT.
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::paint):
2007-01-18 Alice Liu <alice.liu@apple.com>
Build Fix
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::writeSelection):
2007-01-18 Alice Liu <alice.liu@apple.com>
Reviewed by Mark Rowe.
Fixes the leaks from my last patch, except for the first change below which is a missing delegate call for Mail purposes
* editing/Editor.cpp:
(WebCore::Editor::cut):
* platform/Pasteboard.h:
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::Pasteboard):
(WebCore::Pasteboard::clear):
(WebCore::Pasteboard::writeSelection):
(WebCore::Pasteboard::writeURL):
(WebCore::Pasteboard::plainText):
(WebCore::Pasteboard::documentFragment):
2007-01-18 David Hyatt <hyatt@apple.com>
Make sure layer autoscrolling puts the event coordinates into the layer's coordinate space before
calling hitTest on it. Fixes "flashy" selection in textareas.
Reviewed by darin
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::autoscroll):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::nodeAtPoint):
2007-01-18 Anders Carlsson <acarlsson@apple.com>
Reviewed by Adam.
Get rid of ResourceLoaderMac.mm and make willCacheResponse platform-independent.
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::willCacheResponse):
* loader/ResourceLoader.h:
* loader/mac/ResourceLoaderMac.mm: Removed.
* platform/network/ResourceHandleClient.h:
(WebCore::):
(WebCore::ResourceHandleClient::willCacheResponse):
(WebCore::ResourceHandleClient::willStopBufferingData):
* platform/network/mac/ResourceHandleMac.mm:
(-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
2007-01-18 Maciej Stachowiak <mjs@apple.com>
Reviewed by John.
- fixed <rdar://problem/4887416> REGRESSION (SearchField): Assertion failure in HTMLInputElement::setValueFromRenderer when editing via drag and drop (11846)
http://bugs.webkit.org/show_bug.cgi?id=11846
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::doApply): Don't insert extra paragraph separators to avoid
nesting blocks in plaintext mode, since that's not an issue under normal circumstances.
* html/HTMLInputElement.h:
* manual-tests/drag-move-in-search-field.html: Added.
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::subtreeHasChanged): constrain the value; we'd
rather truncate it than end up with an illegal value here.
2007-01-18 Simon Hausmann <hausmann@kde.org>
Reviewed by Zack.
* WebCore.pro: Ha^H^HFix to support massive parallel builds.
2007-01-18 David Kilzer <ddkilzer@kilzer.net>
Reviewed by Darin and Mitz.
- fix http://bugs.webkit.org/show_bug.cgi?id=12305
REGRESSION: Images do not load in video sections on CNN.com homepage
<rdar://problem/4931480> REGRESSION: Images do not load in video sections on CNN.com homepage (12305)
Test: fast/dom/HTMLImageElement/image-lowsrc-getset.html
* html/HTMLAttributeNames.in: Added lowsrc.
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::isURLAttribute): Added lowsrc.
(WebCore::HTMLImageElement::lowsrc): Added.
(WebCore::HTMLImageElement::setLowsrc): Added.
* html/HTMLImageElement.h: Added lowsrc and setLowsrc.
* html/HTMLImageElement.idl: Added lowsrc.
2007-01-18 Simon Hausmann <hausmann@kde.org>
Reviewed by Zack.
* WebCore.pro: Remove generated files on make clean.
2007-01-17 Alice Liu <alice.liu@apple.com>
Reviewed by Harrison.
Fix for <rdar://problem/4894155> REGRESSION: Extra line break is pasted with content into message body after choosing File - Paste
Migration of some editing code from WebHTMView to WebCore::Editor
resulted in not calling pasteboardTypesForSelection, which Mail was
overriding for the special purpose of adding a type to the
pasteboard after WebKit did. This patch adds 2 separate code paths
for Tiger and Leopard. On Tiger we give in and call the WebView's
pasteboardTypesForSelection. On Leopard we call a delegate after
the pasteboard types are set.
* bridge/EditorClient.h:
* editing/Editor.h:
* platform/Pasteboard.h:
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyEditorClient::didSetSelectionTypesForPasteboard):
(WebCore::SVGEmptyEditorClient::pasteboardTypesForSelection):
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::Pasteboard):
(WebCore::Pasteboard::clear):
(WebCore::Pasteboard::writeSelection):
(WebCore::Pasteboard::writeURL):
(WebCore::Pasteboard::plainText):
(WebCore::Pasteboard::documentFragment):
2007-01-17 John Sullivan <sullivan@apple.com>
Reviewed by Darin
- WebCore part of fix for <rdar://problem/4462420> REGRESSION: Mail hangs during
Replace All if the replacement string contains the search string
* page/Frame.h:
* page/Frame.cpp:
(WebCore::Frame::findString):
new startInSelection parameter -- if true, search starts looking in selection; if false,
search starts looking after the selection
* page/mac/WebCoreFrameBridge.h:
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge searchFor:direction:caseSensitive:wrap:startInSelection:]):
new startInSelection parameter, passed through to Frame::findString()
* editing/JSEditor.cpp:
pass false for new findString parameter, to match old behavior
2007-01-17 Beth Dakin <bdakin@apple.com>
Rubber stamped by Darin.
* rendering/HitTestResult.cpp: Just added a comment.
2007-01-17 Justin Garcia <justin.garcia@apple.com>
Reviewed by darin
<rdar://problem/4920488>
REGRESSION: A crash occurs at WebCore::Range::processContents () when removing formatting from selected text (that contains a link)
* dom/Range.cpp:
(WebCore::Range::commonAncestorContainer): Return null if the nodes
don't have a common ancestor. As a side effect, the public
commonAncestorContainer now sets an exception if the Range starts
in one document and ends in another, or starts or ends in a tree
that's been removed from the document. The spec doesn't cover
this and there is no precedent in other browsers for this case because
they don't allow invalid Ranges (you can create one with WebCore
by removing a node that contains the start/end of a Range).
(WebCore::Range::compareBoundaryPoints): If the the two positions
are in nodes that have no common ancestor, return null. This doesn't
change the behavior of the public compareBoundaryPoints: it already
throws an exception if the two positions are in nodes that don't have
a common ancestor. This follows the spec.
2007-01-17 John Sullivan <sullivan@apple.com>
The one word was typed by me, but only after debugging for a long time with Darin.
- fixed <rdar://problem/4912002> REGRESSION: Series of words marked as a single misspelled word
* editing/TextIterator.cpp:
(WebCore::WordAwareIterator::WordAwareIterator):
We were creating a TextIterator with the default kind, but WordAwareIterator is designed to work
in concert with CharacterIterator, so they need to use the same kind. CharacterIterator uses
kind RUNFINDER, so WordAwareIterator needs to do so also.
2007-01-17 Adele Peterson <adele@apple.com>
Reviewed by Brady.
Fix for <rdar://problem/4900895> REGRESSION: onChange doesn't always fire for popups that have had value changed by JS
No test case since you need to open up the menu to fire onChange.
* html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::setSelectedIndex):
Keep track of m_lastOnChangeIndex even when we're not firing onChange. Since
the selected index has changed, we still want the m_lastOnChangeIndex to be up to date when we compare
it later. This matches our behavior in Safari 2.0.
2007-01-17 Adele Peterson <adele@apple.com>
Reviewed by Darin and John.
- Fix for <rdar://problem/4816550> REGRESSION: autoscrolling doesn't work after double-click
* page/EventHandler.cpp: (WebCore::EventHandler::handleMousePressEvent): Set swallowEvent bool instead
of returning early for double and triple clicks.
2007-01-17 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
* rendering/RenderObject.h: Removed unused nextEditable and previousEditable.
* rendering/RenderObject.cpp: Ditto.
2007-01-17 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=12278
<rdar://problem/4928705> REGRESSION(r13070): Dragged image size includes padding (12278)
* WebCore.exp: Added HitTestResult::imageRect,
removed HitTestResult::boundingBox.
* rendering/HitTestResult.h:
* rendering/HitTestResult.cpp: (WebCore::HitTestResult::imageRect):
Added. Returns the content rectangle of the image.
* rendering/RenderObject.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::absolutePosition): Made const.
(WebCore::RenderObject::contentBox): Added.
(WebCore::RenderObject::absoluteContentBox): Added.
* rendering/RenderBox.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::absolutePosition): Made const.
* rendering/RenderTableCell.h:
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::absolutePosition): Made const.
* rendering/RenderView.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::absolutePosition): Made const.
2007-01-17 Adele Peterson <adele@apple.com>
Reviewed by Beth.
Fix for http://bugs.webkit.org/show_bug.cgi?id=10139
<rdar://problem/4823028> REGRESSION: Reproducible crash when selecting a popup/button with ::selection pseudostyle
Test: fast/css/pseudostyle-anonymous-text.html
* rendering/RenderObject.cpp: (WebCore::RenderObject::getPseudoStyle): Nil check the node.
2007-01-17 Adele Peterson <adele@apple.com>
Reviewed by Anders and John.
Fix for http://bugs.webkit.org/show_bug.cgi?id=11278
<rdar://problem/4826875> REGRESSION: Popup width doesn't change to accommodate dynamic changes to options
Test: fast/forms/menulist-width-change.html
* rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::updateFromElement):
When the options change, call setNeedsLayoutAndMinMaxRecalc.
2007-01-16 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12268
Give object prototypes their own names
* bindings/js/kjs_html.cpp: Changed the names of KJS:HTMLElement and KJS::HTMLElement to
not match the names of their WebCore counterparts. The "DOM" prefix I gave them doesn't
seem to carry much sense, but matches some other kjs_html object names.
* bindings/scripts/CodeGeneratorJS.pm: Append "Proto" to interface name for the prototype's ClassInfo.
* bindings/js/JSHTMLInputElementBase.cpp:
(WebCore::JSHTMLInputElementBasePrototypeFunction::callAsFunction):
(WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase):
* bindings/js/JSHTMLInputElementBase.h:
* bindings/js/JSXMLHttpRequest.cpp:
(KJS::JSXMLHttpRequestConstructorImp::JSXMLHttpRequestConstructorImp):
(KJS::JSXMLHttpRequest::JSXMLHttpRequest):
(KJS::JSXMLHttpRequestPrototypeFunction::callAsFunction):
* bindings/js/JSXMLHttpRequest.h:
* bindings/js/JSXSLTProcessor.cpp:
(KJS::JSXSLTProcessor::JSXSLTProcessor):
(KJS::XSLTProcessorPrototypeFunction::callAsFunction):
(KJS::XSLTProcessorConstructorImp::XSLTProcessorConstructorImp):
* bindings/js/kjs_css.cpp:
(KJS::DOMCSSStyleDeclaration::DOMCSSStyleDeclaration):
(KJS::DOMCSSStyleDeclarationPrototypeFunction::callAsFunction):
(KJS::DOMMediaList::DOMMediaList):
(KJS::KJS::DOMMediaListPrototypeFunction::callAsFunction):
(KJS::DOMCSSStyleSheet::DOMCSSStyleSheet):
(KJS::DOMCSSStyleSheetPrototypeFunction::callAsFunction):
(KJS::DOMCSSValue::DOMCSSValue):
(KJS::DOMCSSValuePrototypeFunction::callAsFunction):
* bindings/js/kjs_css.h:
* bindings/js/kjs_dom.cpp:
(KJS::DOMNode::DOMNode):
(KJS::DOMNodePrototypeFunction::callAsFunction):
(KJS::DOMEventTargetNode::DOMEventTargetNode):
(KJS::DOMEventTargetNodePrototypeFunction::callAsFunction):
(KJS::DOMNamedNodeMap::DOMNamedNodeMap):
(KJS::DOMNamedNodeMapPrototypeFunction::callAsFunction):
* bindings/js/kjs_dom.h:
* bindings/js/kjs_domnode.h:
* bindings/js/kjs_events.cpp:
(KJS::DOMEvent::DOMEvent):
(KJS::DOMEventPrototypeFunction::callAsFunction):
(KJS::Clipboard::Clipboard):
(KJS::ClipboardPrototypeFunction::callAsFunction):
* bindings/js/kjs_events.h:
* bindings/js/kjs_html.cpp:
(KJS::JSHTMLDocumentPrototypeFunction::callAsFunction):
(KJS::):
(KJS::JSHTMLDocument::JSHTMLDocument):
(KJS::JSHTMLElementPrototypeFunction::callAsFunction):
(KJS::JSHTMLElement::JSHTMLElement):
(KJS::JSHTMLCollection::JSHTMLCollection):
(KJS::JSHTMLCollectionPrototypeFunction::callAsFunction):
* bindings/js/kjs_html.h:
* bindings/js/kjs_navigator.cpp:
* bindings/js/kjs_traversal.cpp:
(KJS::DOMNodeFilter::DOMNodeFilter):
(KJS::DOMNodeFilterPrototypeFunction::callAsFunction):
* bindings/js/kjs_window.cpp:
(KJS::Window::clear):
Changed Proto to Prototype, and ProtoFunc to PrototypeFunction.
2007-01-17 Lars Knoll <lars@trolltech.com>
Reviewed by Zack and Darin
Fix the Qt build again after the latest Image changes.
Also make some of the methods implemented in ImageCG
crossplatform.
* platform/graphics/BitmapImage.h:
* platform/graphics/Image.cpp:
(WebCore::Image::fillWithSolidColor):
(WebCore::calculatePatternScale):
(WebCore::Image::drawTiled):
* platform/graphics/Image.h:
* platform/graphics/cg/ImageCG.cpp:
(WebCore::BitmapImage::draw):
* platform/graphics/qt/ImageQt.cpp:
(WebCore::Image::loadPlatformResource):
(WebCore::Image::drawPattern):
(WebCore::BitmapImage::initPlatformData):
(WebCore::BitmapImage::invalidatePlatformData):
(WebCore::BitmapImage::draw):
(WebCore::BitmapImage::drawPattern):
* platform/qt/TemporaryLinkStubs.cpp:
2007-01-17 Darin Adler <darin@apple.com>
- quick attempt to fix the Qt build
* platform/graphics/qt/ImageQt.cpp: (WebCore::BitmapImage::drawTiled):
Remove obsolete parameters from this stub.
2007-01-17 Eric Seidel <eric@webkit.org>
Reviewed by rwlbuis.
Test: svg/custom/inner-svg-hit-test.svg
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::nodeAtPoint): never allow containers to be hit.
2007-01-17 Lars Knoll <lars@trolltech.com>
Reviewed by Zack
Don't call receivedResponse twice for file: URLs.
Never call back into the ResourceHandleClient once
cancel() has been called on the ResourceHandle.
* WebCore.pro:
* platform/network/qt/ResourceHandleManagerQt.cpp:
(WebCore::ResourceHandleManager::cancel):
(WebCore::ResourceHandleManager::receivedResponse):
(WebCore::ResourceHandleManager::receivedData):
(WebCore::ResourceHandleManager::receivedFinished):
(WebCore::FileLoader::request):
(WebCore::FileLoader::parseDataUrl):
(WebCore::WebCoreHttp::scheduleNextRequest):
* platform/network/qt/ResourceHandleManagerQt.h:
2007-01-17 Eric Seidel <eric@webkit.org>
No review, build fix only.
* platform/graphics/cg/ImageCG.cpp: correct drawPatternCombined to drawPattern
(WebCore::Image::drawPattern):
(WebCore::Image::drawTiled):
2007-01-17 Eric Seidel <eric@webkit.org>
Reviewed by mitz and rwlbuis.
SVGs do not work as background images:
http://bugs.webkit.org/show_bug.cgi?id=12096
Tests updated:
- fast/images/svg-as-background.svg: now passes
- fast/images/svg-as-tiled-background.svg: now passes
* platform/graphics/BitmapImage.h:
(WebCore::BitmapImage::nativeImageForCurrentFrame):
(WebCore::BitmapImage::mayFillWithSolidColor):
(WebCore::BitmapImage::solidColor):
* platform/graphics/Image.h:
(WebCore::Image::mayFillWithSolidColor):
(WebCore::Image::solidColor):
(WebCore::Image::nativeImageForCurrentFrame):
(WebCore::Image::startAnimation):
* platform/graphics/cg/ImageCG.cpp:
(WebCore::Image::drawPatternCallback):
(WebCore::Image::drawPatternCombined):
(WebCore::caculatePatternScale):
(WebCore::Image::drawTiled):
* platform/graphics/cg/PDFDocumentImage.cpp:
* platform/graphics/cg/PDFDocumentImage.h:
* platform/graphics/svg/SVGImage.cpp:
(WebCore::SVGImage::nativeImageForCurrentFrame):
* platform/graphics/svg/SVGImage.h:
2007-01-17 Rob Buis <buis@kde.org>
Reviewed by Eric
Add proper condition for rx attribute negative check.
* ksvg2/svg/SVGRectElement.cpp:
(WebCore::SVGRectElement::parseMappedAttribute):
2007-01-17 Lars Knoll <lars@trolltech.com>
Reviewed by Zack
change all notImplemented() macros to use qDebug
instead of fprintf(stder, ...)
* loader/qt/DocumentLoaderQt.cpp:
* loader/qt/FrameLoaderQt.cpp:
* page/qt/EventHandlerQt.cpp:
* page/qt/FrameQt.cpp:
* platform/graphics/qt/GraphicsContextQt.cpp:
* platform/graphics/qt/IconQt.cpp:
* platform/network/qt/ResourceHandleManagerQt.cpp:
* platform/network/qt/ResourceHandleQt.cpp:
* platform/qt/CursorQt.cpp:
* platform/qt/FileChooserQt.cpp:
* platform/qt/MimeTypeRegistryQt.cpp:
* platform/qt/PageQt.cpp: Removed.
* platform/qt/PopupMenuQt.cpp:
* platform/qt/ScrollViewQt.cpp:
* platform/qt/TemporaryLinkStubs.cpp:
* platform/qt/TextBoundaries.cpp:
* platform/qt/WidgetQt.cpp:
2007-01-16 Brady Eidson <beidson@apple.com>
Reviewed by Oliver
A few enhancements to the HTTP Auth architecture
* platform/network/ProtectionSpace.cpp:
(WebCore::ProtectionSpace::isProxy):
(WebCore::ProtectionSpace::receivesCredentialSecurely):
* platform/network/ProtectionSpace.h:
2007-01-16 Alice Liu <alice.liu@apple.com>
Reviewed by harrison.
Fixed <rdar://problem/4921134> WebKit needs extensible cut/copy to allow additional types to be written to pasteboard
* WebCore.xcodeproj/project.pbxproj:
* bridge/EditorClient.h:
* editing/Editor.cpp:
(WebCore::Editor::copy):
(WebCore::Editor::didWriteSelectionToPasteboard):
* editing/Editor.h:
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyEditorClient::didWriteSelectionToPasteboard):
2007-01-16 Justin Garcia <justin.garcia@apple.com>
Reviewed by harrison
<rdar://problem/4747450>
Gmail Editor: Caret doesn't always position itself after list marker
<rdar://problem/4917055>
GMail Editor: A hang can occur when attempting to apply list styling to selected indented text
* editing/TextIterator.cpp:
(WebCore::TextIterator::rangeFromLocationAndLength): Use VisiblePositions
to compute the end of a run for emitted '\n's, because it's often wrong
in that case.
2007-01-16 Darin Adler <darin@apple.com>
- quick lame attempt to get Qt compiling again
* platform/qt/ContextMenuQt.cpp: Removed show() function.
2007-01-17 Nicholas Shanks <contact@nickshanks.com>
Reviewed by Darin.
* platform/network/ResourceRequest.h:
(WebCore::ResourceRequest::setHTTPAccept): Correct argument name.
2007-01-16 Beth Dakin <bdakin@apple.com>
Reviewed by Adam.
Get rid of show() and hide() since they don't do anything.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::handleContextMenuEvent):
* platform/ContextMenu.h:
* platform/mac/ContextMenuMac.mm:
2007-01-16 Lars Knoll <lars@trolltech.com>
Reviewed by Zack
Cleaned up the way we create native widgets. They are
now not created in WebCore anymore, but in the new
Qt API to WebKit.
Fix a compile issue in the ResourceHandleManager.
* WebCore.pro:
* platform/ScrollView.h:
* platform/Widget.h:
(WebCore::ResourceHandleManager::cancel):
* platform/qt/ScrollViewCanvasQt.cpp:
(WebCore::ScrollViewCanvasQt::ScrollViewCanvasQt):
(WebCore::ScrollViewCanvasQt::paintEvent):
(WebCore::ScrollViewCanvasQt::mouseMoveEvent):
(WebCore::ScrollViewCanvasQt::mousePressEvent):
(WebCore::ScrollViewCanvasQt::mouseReleaseEvent):
(WebCore::ScrollViewCanvasQt::handleKeyEvent):
* platform/qt/ScrollViewCanvasQt.h:
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::ScrollView):
(WebCore::ScrollView::setScrollArea):
(WebCore::ScrollView::addChild):
* platform/qt/WidgetQt.cpp:
* platform/network/qt/ResourceHandleManagerQt.cpp:
2007-01-16 Lars Knoll <lars@trolltech.com>
Reviewed by Zack
Looks like ResourceHandle _has_ to do everything
asynchronously if we don't want to run into
lots of trouble in the loader.
Implement support data: URLs.
Remove some unused Qt only code in ResourceHandleClient.h
* platform/network/ResourceHandleClient.h:
* platform/network/qt/ResourceHandleManagerQt.cpp:
(WebCore::RequestQt::setURL):
(WebCore::ResourceHandleManager::add):
(WebCore::ResourceHandleManager::cancel):
(WebCore::ResourceHandleManager::receivedFinished):
(WebCore::LoaderThread::run):
(WebCore::FileLoader::request):
(WebCore::FileLoader::sendData):
(WebCore::FileLoader::parseDataUrl):
* platform/network/qt/ResourceHandleManagerQt.h:
2007-01-16 Eric Seidel <eric@webkit.org>
Reviewed by mitz.
Refactor drawTiled implementations in preparation for combining them.
Removed unused RoundTile code path.
* platform/graphics/cg/ImageCG.cpp:
(WebCore::drawPattern):
(WebCore::BitmapImage::drawTiled):
(WebCore::caculatePatternScale):
2007-01-16 Darin Adler <darin@apple.com>
Reviewed by Mark Rowe.
- removed unused field from loader
* loader/loader.cpp:
(WebCore::Loader::numRequests):
(WebCore::Loader::cancelRequests):
* loader/loader.h:
2007-01-15 Rob Buis <buis@kde.org>
Reviewed by Eric.
http://bugs.webkit.org/show_bug.cgi?id=12272
SVG picture is clipped (edges not visible)
Expose css dpi constant and use it for svg, making
1in amount to 96 pixels like for html.
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::computeLengthFloat):
(WebCore::scaleFactorForConversion):
* css/csshelper.h:
* ksvg2/svg/SVGLength.cpp:
(WebCore::SVGLength::value):
(WebCore::SVGLength::setValue):
* ksvg2/svg/SVGLength.h:
2007-01-15 Brady Eidson <beidson@apple.com>
Reviewed by Adam
CFNet additions
* platform/network/AuthenticationChallenge.cpp:
(WebCore::operator==):
* platform/network/AuthenticationChallenge.h:
(WebCore::AuthenticationChallenge::sourceHandle):
(WebCore::AuthenticationChallenge::cfURLAuthChallengeRef):
* platform/network/ResourceError.h:
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
2007-01-15 Eric Seidel <eric@webkit.org>
Reviewed by hyatt.
Don't map attributes in namespaces other than null to CSS properties.
Test: svg/custom/attribute-namespace-check.svg
* ksvg2/svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName):
2007-01-15 Lars Naesbye Christensen <lars@naesbye.dk>
Reviewed by Darin.
- http://bugs.webkit.org/show_bug.cgi?id=11112
add a drop shadow to the hand cursor used for links
* Resources/linkCursor.png: Added a drop shadow.
2007-01-15 Darin Adler <darin@apple.com>
Reviewed by Adam.
- fix http://bugs.webkit.org/show_bug.cgi?id=12190
REGRESSION: Placeholder text does not reflect dynamic updates
Test: fast/forms/placeholder-set-attribute.html
* html/HTMLTextFieldInnerElement.cpp:
(WebCore::HTMLSearchFieldCancelButtonElement::defaultEventHandler):
Call onSearch on the element since I removed it from the renderer.
* rendering/RenderTextControl.h: Added explicit virtual keywords for overrides
of virtual functions. Removed the unneeded onSearch function. Made the inheritance
from PopupMenuClient be private, and made the overrides all private. Replaced the
showPlaceholderIfNeeded and hidePlaceholderIfNeeded functions with updatePlaceholder.
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::createResultsButtonStyle): Added an assertion.
(WebCore::RenderTextControl::updatePlaceholder): Added. Replaces the two
functions, showPlaceholderIfNeeded and hidePlaceholderIfNeeded.
(WebCore::RenderTextControl::updateFromElement): Added call to
updatePlaceholder before updating the value. Also improved the structure
of the function and corrected incorrect use of copy and replace.
(WebCore::RenderTextControl::updateCancelButtonVisibility): Added an
assertion and removed an unneeded local variable.
(WebCore::RenderTextControl::subtreeHasChanged): Removed an unneeded
null check and virtual function calls.
(WebCore::RenderTextControl::forwardEvent): Replaced calls to the old
functions with calls to updatePlaceholder.
(WebCore::RenderTextControl::selectionChanged): Changed code to dispatch
the select event directly -- I plan to remove the onSelect function, which
was only called here.
(WebCore::RenderTextControl::autosaveName): Removed too-specific cast and
local variable.
(WebCore::RenderTextControl::addSearchResult): Added assertion and changed
variable name for clarity.
(WebCore::RenderTextControl::valueChanged): Changed code to check for empty
autosave name instead of null for consistency with other call sites that
manage the autosave name. Also changed the code that dispatches an event
to call onSearch on the input element so we don't need our own function.
2007-01-15 Eric Seidel <eric@webkit.org>
Reviewed by hyatt.
Fix SVGStyledElement::parseMappedAttribute to only map SVG-allowed CSS properties
(i.e. width is no longer mapped to CSS for SVG)
Add SVGStyledElement::mapToEntry to allow RenderStyle-sharing
http://bugs.webkit.org/show_bug.cgi?id=12060
* dom/MappedAttributeEntry.h:
(WebCore::):
* ksvg2/svg/SVGStyledElement.cpp:
(WebCore::cssPropertyIdForName): new helper
(WebCore::mapAttributeToCSSProperty): new helper
(WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName): new helper
(WebCore::SVGStyledElement::mapToEntry): added.
(WebCore::SVGStyledElement::parseMappedAttribute): use cssPropertyIdForSVGAttributeName
* ksvg2/svg/SVGStyledElement.h:
2007-01-15 Eric Seidel <eric@webkit.org>
Reviewed by bdash.
Update header guards to follow new style guidelines using new clean-header-guards script.
* bindings/js/JSHTMLElementWrapperFactory.h:
* bindings/js/JSHTMLInputElementBase.h:
* bindings/js/JSHTMLOptionElementConstructor.h:
* bindings/js/JSSVGElementWrapperFactory.h:
* bindings/js/JSSVGPODTypeWrapper.h:
* bindings/js/JSXMLHttpRequest.h:
* bindings/js/JSXSLTProcessor.h:
* bindings/js/kjs_binding.h:
* bindings/js/kjs_css.h:
* bindings/js/kjs_dom.h:
* bindings/js/kjs_domnode.h:
* bindings/js/kjs_events.h:
* bindings/js/kjs_html.h:
* bindings/js/kjs_navigator.h:
* bindings/js/kjs_proxy.h:
* bindings/js/kjs_traversal.h:
* bindings/js/kjs_window.h:
* bridge/EditorClient.h:
* bridge/History.h:
* css/CSSStyleSheet.h:
* css/CSSValue.h:
* css/CSSValueList.h:
* css/DashboardRegion.h:
* css/FontFamilyValue.h:
* css/FontValue.h:
* css/MediaFeatureNames.h:
* css/MediaList.h:
* css/Pair.h:
* css/RectImpl.h:
* css/ShadowValue.h:
* css/StyleBase.h:
* css/StyleList.h:
* css/StyleSheet.h:
* css/StyleSheetList.h:
* css/cssstyleselector.h:
* dom/BeforeTextInsertedEvent.h:
* dom/CDATASection.h:
* dom/CharacterData.h:
* dom/ChildNodeList.h:
* dom/Comment.h:
* dom/DOMImplementation.h:
* dom/DocPtr.h:
* dom/Document.h:
* dom/DocumentFragment.h:
* dom/DocumentMarker.h:
* dom/DocumentType.h:
* dom/EditingText.h:
* dom/Entity.h:
* dom/EntityReference.h:
* dom/EventNames.h:
* dom/EventTargetNode.h:
* dom/NameNodeList.h:
* dom/NamedNodeMap.h:
* dom/Node.h:
* dom/NodeList.h:
* dom/Notation.h:
* dom/Position.h:
* dom/ProcessingInstruction.h:
* dom/Range.h:
* dom/StyleElement.h:
* dom/Text.h:
* editing/AppendNodeCommand.h:
* editing/ApplyStyleCommand.h:
* editing/BreakBlockquoteCommand.h:
* editing/CommandByName.h:
* editing/CompositeEditCommand.h:
* editing/DeleteButton.h:
* editing/DeleteButtonController.h:
* editing/DeleteFromTextNodeCommand.h:
* editing/DeleteSelectionCommand.h:
* editing/InsertIntoTextNodeCommand.h:
* editing/InsertLineBreakCommand.h:
* editing/InsertNodeBeforeCommand.h:
* editing/InsertParagraphSeparatorCommand.h:
* editing/InsertTextCommand.h:
* editing/JoinTextNodesCommand.h:
* editing/MergeIdenticalElementsCommand.h:
* editing/ModifySelectionListLevel.h:
* editing/MoveSelectionCommand.h:
* editing/RemoveCSSPropertyCommand.h:
* editing/RemoveNodeAttributeCommand.h:
* editing/RemoveNodeCommand.h:
* editing/RemoveNodePreservingChildrenCommand.h:
* editing/ReplaceSelectionCommand.h:
* editing/SetNodeAttributeCommand.h:
* editing/SplitElementCommand.h:
* editing/SplitTextNodeCommand.h:
* editing/SplitTextNodeContainingElementCommand.h:
* editing/TextGranularity.h:
* editing/TypingCommand.h:
* editing/WrapContentsInDummySpanCommand.h:
* history/BackForwardList.h:
* history/HistoryItem.h:
* history/HistoryItemTimer.h:
* history/PageCache.h:
* html/CanvasGradient.h:
* html/CanvasPattern.h:
* html/CanvasRenderingContext2D.h:
* html/CanvasStyle.h:
* html/FormDataList.h:
* html/HTMLAnchorElement.h:
* html/HTMLAppletElement.h:
* html/HTMLAreaElement.h:
* html/HTMLBRElement.h:
* html/HTMLBaseElement.h:
* html/HTMLBaseFontElement.h:
* html/HTMLBlockquoteElement.h:
* html/HTMLBodyElement.h:
* html/HTMLButtonElement.h:
* html/HTMLCanvasElement.h:
* html/HTMLCollection.h:
* html/HTMLDListElement.h:
* html/HTMLDirectoryElement.h:
* html/HTMLDivElement.h:
* html/HTMLElement.h:
* html/HTMLElementFactory.h:
* html/HTMLEmbedElement.h:
* html/HTMLFieldSetElement.h:
* html/HTMLFontElement.h:
* html/HTMLFormCollection.h:
* html/HTMLFormElement.h:
* html/HTMLFrameSetElement.h:
* html/HTMLGenericFormElement.h:
* html/HTMLHRElement.h:
* html/HTMLHeadElement.h:
* html/HTMLHeadingElement.h:
* html/HTMLHtmlElement.h:
* html/HTMLImageElement.h:
* html/HTMLImageLoader.h:
* html/HTMLInputElement.h:
* html/HTMLIsIndexElement.h:
* html/HTMLKeygenElement.h:
* html/HTMLLIElement.h:
* html/HTMLLabelElement.h:
* html/HTMLLegendElement.h:
* html/HTMLLinkElement.h:
* html/HTMLMapElement.h:
* html/HTMLMarqueeElement.h:
* html/HTMLMenuElement.h:
* html/HTMLMetaElement.h:
* html/HTMLModElement.h:
* html/HTMLNameCollection.h:
* html/HTMLOListElement.h:
* html/HTMLObjectElement.h:
* html/HTMLOptGroupElement.h:
* html/HTMLOptionElement.h:
* html/HTMLOptionsCollection.h:
* html/HTMLParagraphElement.h:
* html/HTMLParamElement.h:
* html/HTMLParser.h:
* html/HTMLPlugInElement.h:
* html/HTMLPreElement.h:
* html/HTMLQuoteElement.h:
* html/HTMLScriptElement.h:
* html/HTMLSelectElement.h:
* html/HTMLStyleElement.h:
* html/HTMLTableCaptionElement.h:
* html/HTMLTableCellElement.h:
* html/HTMLTableColElement.h:
* html/HTMLTableElement.h:
* html/HTMLTablePartElement.h:
* html/HTMLTableRowElement.h:
* html/HTMLTableSectionElement.h:
* html/HTMLTextAreaElement.h:
* html/HTMLTextFieldInnerElement.h:
* html/HTMLTitleElement.h:
* html/HTMLUListElement.h:
* ksvg2/css/SVGRenderStyle.h:
* ksvg2/css/SVGRenderStyleDefs.h:
* ksvg2/events/JSSVGLazyEventListener.h:
* ksvg2/events/SVGZoomEvent.h:
* ksvg2/misc/KCanvasRenderingStyle.h:
* ksvg2/misc/PointerEventsHitRules.h:
* ksvg2/misc/SVGDocumentExtensions.h:
* ksvg2/misc/SVGImageLoader.h:
* ksvg2/misc/TimeScheduler.h:
* ksvg2/svg/GradientAttributes.h:
* ksvg2/svg/LinearGradientAttributes.h:
* ksvg2/svg/PatternAttributes.h:
* ksvg2/svg/RadialGradientAttributes.h:
* ksvg2/svg/SVGAElement.h:
* ksvg2/svg/SVGAngle.h:
* ksvg2/svg/SVGAnimateColorElement.h:
* ksvg2/svg/SVGAnimateElement.h:
* ksvg2/svg/SVGAnimateMotionElement.h:
* ksvg2/svg/SVGAnimateTransformElement.h:
* ksvg2/svg/SVGAnimatedPathData.h:
* ksvg2/svg/SVGAnimatedPoints.h:
* ksvg2/svg/SVGAnimatedTemplate.h:
* ksvg2/svg/SVGAnimationElement.h:
* ksvg2/svg/SVGCircleElement.h:
* ksvg2/svg/SVGClipPathElement.h:
* ksvg2/svg/SVGColor.h:
* ksvg2/svg/SVGComponentTransferFunctionElement.h:
* ksvg2/svg/SVGCursorElement.h:
* ksvg2/svg/SVGDOMImplementation.h:
* ksvg2/svg/SVGDefsElement.h:
* ksvg2/svg/SVGDescElement.h:
* ksvg2/svg/SVGDocument.h:
* ksvg2/svg/SVGElement.h:
* ksvg2/svg/SVGElementInstance.h:
* ksvg2/svg/SVGElementInstanceList.h:
* ksvg2/svg/SVGEllipseElement.h:
* ksvg2/svg/SVGExternalResourcesRequired.h:
* ksvg2/svg/SVGFEBlendElement.h:
* ksvg2/svg/SVGFEColorMatrixElement.h:
* ksvg2/svg/SVGFEComponentTransferElement.h:
* ksvg2/svg/SVGFECompositeElement.h:
* ksvg2/svg/SVGFEDiffuseLightingElement.h:
* ksvg2/svg/SVGFEDisplacementMapElement.h:
* ksvg2/svg/SVGFEDistantLightElement.h:
* ksvg2/svg/SVGFEFloodElement.h:
* ksvg2/svg/SVGFEFuncAElement.h:
* ksvg2/svg/SVGFEFuncBElement.h:
* ksvg2/svg/SVGFEFuncGElement.h:
* ksvg2/svg/SVGFEFuncRElement.h:
* ksvg2/svg/SVGFEGaussianBlurElement.h:
* ksvg2/svg/SVGFEImageElement.h:
* ksvg2/svg/SVGFELightElement.h:
* ksvg2/svg/SVGFEMergeElement.h:
* ksvg2/svg/SVGFEMergeNodeElement.h:
* ksvg2/svg/SVGFEOffsetElement.h:
* ksvg2/svg/SVGFEPointLightElement.h:
* ksvg2/svg/SVGFESpecularLightingElement.h:
* ksvg2/svg/SVGFESpotLightElement.h:
* ksvg2/svg/SVGFETileElement.h:
* ksvg2/svg/SVGFETurbulenceElement.h:
* ksvg2/svg/SVGFilterElement.h:
* ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
* ksvg2/svg/SVGFitToViewBox.h:
* ksvg2/svg/SVGForeignObjectElement.h:
* ksvg2/svg/SVGGElement.h:
* ksvg2/svg/SVGGradientElement.h:
* ksvg2/svg/SVGImageElement.h:
* ksvg2/svg/SVGLangSpace.h:
* ksvg2/svg/SVGLength.h:
* ksvg2/svg/SVGLengthList.h:
* ksvg2/svg/SVGLineElement.h:
* ksvg2/svg/SVGLinearGradientElement.h:
* ksvg2/svg/SVGList.h:
* ksvg2/svg/SVGListTraits.h:
* ksvg2/svg/SVGLocatable.h:
* ksvg2/svg/SVGMarkerElement.h:
* ksvg2/svg/SVGMaskElement.h:
* ksvg2/svg/SVGMetadataElement.h:
* ksvg2/svg/SVGNumberList.h:
* ksvg2/svg/SVGPaint.h:
* ksvg2/svg/SVGParserUtilities.h:
* ksvg2/svg/SVGPathElement.h:
* ksvg2/svg/SVGPathSeg.h:
* ksvg2/svg/SVGPathSegArc.h:
* ksvg2/svg/SVGPathSegClosePath.h:
* ksvg2/svg/SVGPathSegCurvetoCubic.h:
* ksvg2/svg/SVGPathSegCurvetoCubicSmooth.h:
* ksvg2/svg/SVGPathSegCurvetoQuadratic.h:
* ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.h:
* ksvg2/svg/SVGPathSegLineto.h:
* ksvg2/svg/SVGPathSegLinetoHorizontal.h:
* ksvg2/svg/SVGPathSegLinetoVertical.h:
* ksvg2/svg/SVGPathSegList.h:
* ksvg2/svg/SVGPathSegMoveto.h:
* ksvg2/svg/SVGPatternElement.h:
* ksvg2/svg/SVGPointList.h:
* ksvg2/svg/SVGPolyElement.h:
* ksvg2/svg/SVGPolygonElement.h:
* ksvg2/svg/SVGPolylineElement.h:
* ksvg2/svg/SVGPreserveAspectRatio.h:
* ksvg2/svg/SVGRadialGradientElement.h:
* ksvg2/svg/SVGRectElement.h:
* ksvg2/svg/SVGRenderingIntent.h:
* ksvg2/svg/SVGSVGElement.h:
* ksvg2/svg/SVGScriptElement.h:
* ksvg2/svg/SVGSetElement.h:
* ksvg2/svg/SVGStopElement.h:
* ksvg2/svg/SVGStringList.h:
* ksvg2/svg/SVGStylable.h:
* ksvg2/svg/SVGStyleElement.h:
* ksvg2/svg/SVGStyledElement.h:
* ksvg2/svg/SVGStyledLocatableElement.h:
* ksvg2/svg/SVGStyledTransformableElement.h:
* ksvg2/svg/SVGSwitchElement.h:
* ksvg2/svg/SVGSymbolElement.h:
* ksvg2/svg/SVGTRefElement.h:
* ksvg2/svg/SVGTSpanElement.h:
* ksvg2/svg/SVGTests.h:
* ksvg2/svg/SVGTextContentElement.h:
* ksvg2/svg/SVGTextElement.h:
* ksvg2/svg/SVGTextPositioningElement.h:
* ksvg2/svg/SVGTitleElement.h:
* ksvg2/svg/SVGTransform.h:
* ksvg2/svg/SVGTransformList.h:
* ksvg2/svg/SVGTransformable.h:
* ksvg2/svg/SVGURIReference.h:
* ksvg2/svg/SVGUnitTypes.h:
* ksvg2/svg/SVGUseElement.h:
* ksvg2/svg/SVGViewElement.h:
* ksvg2/svg/SVGZoomAndPan.h:
* loader/CachedCSSStyleSheet.h:
* loader/CachedImage.h:
* loader/CachedXSLStyleSheet.h:
* loader/DocumentLoader.h:
* loader/Request.h:
* loader/SubresourceLoader.h:
* loader/icon/IconDataCache.h:
* loader/icon/IconDatabase.h:
* loader/icon/IconLoader.h:
* loader/icon/SQLDatabase.h:
* loader/icon/SQLStatement.h:
* loader/icon/SQLTransaction.h:
* page/Frame.h:
* page/FrameLoadRequest.h:
* page/FrameTree.h:
* page/FrameView.h:
* page/PageState.h:
* page/Plugin.h:
* page/qt/FrameQt.h:
* page/qt/FrameQtClient.h:
* platform/Arena.h:
* platform/ArrayImpl.h:
* platform/Cursor.h:
* platform/DeprecatedArray.h:
* platform/DeprecatedCString.h:
* platform/FileChooser.h:
* platform/Font.h:
* platform/FontCache.h:
* platform/FontData.h:
* platform/FontDescription.h:
* platform/FontFamily.h:
* platform/GlyphBuffer.h:
* platform/GlyphMap.h:
* platform/GlyphWidthMap.h:
* platform/Logging.h:
* platform/Pasteboard.h:
* platform/PlatformString.h:
* platform/PlugInInfoStore.h:
* platform/PopupMenu.h:
* platform/PopupMenuClient.h:
* platform/ScrollBar.h:
* platform/ScrollView.h:
* platform/SearchPopupMenu.h:
* platform/Shared.h:
* platform/Sound.h:
* platform/SystemTime.h:
* platform/Timer.h:
* platform/Widget.h:
* platform/cf/RetainPtr.h:
* platform/gdk/ChromeClientGdk.h:
* platform/gdk/FontPlatformData.h:
* platform/gdk/FrameGdk.h:
* platform/gdk/KeyboardCodes.h:
* platform/gdk/RenderPopupMenuGdk.h:
* platform/gdk/RenderThemeGdk.h:
* platform/graphics/BitmapImage.h:
* platform/graphics/Color.h:
* platform/graphics/FloatPoint.h:
* platform/graphics/FloatPoint3D.h:
* platform/graphics/FloatRect.h:
* platform/graphics/Icon.h:
* platform/graphics/Image.h:
* platform/graphics/ImageAnimationObserver.h:
* platform/graphics/ImageBuffer.h:
* platform/graphics/ImageSource.h:
* platform/graphics/IntPoint.h:
* platform/graphics/IntRect.h:
* platform/graphics/IntSize.h:
* platform/graphics/IntSizeHash.h:
* platform/graphics/PathTraversalState.h:
* platform/graphics/Pen.h:
* platform/graphics/qt/ImageDecoderQt.h:
* platform/graphics/svg/SVGImage.h:
* platform/graphics/svg/SVGImageEmptyClients.h:
* platform/graphics/svg/SVGPaintServer.h:
* platform/graphics/svg/SVGPaintServerGradient.h:
* platform/graphics/svg/SVGPaintServerLinearGradient.h:
* platform/graphics/svg/SVGPaintServerPattern.h:
* platform/graphics/svg/SVGPaintServerRadialGradient.h:
* platform/graphics/svg/SVGPaintServerSolid.h:
* platform/graphics/svg/SVGResource.h:
* platform/graphics/svg/SVGResourceClipper.h:
* platform/graphics/svg/SVGResourceFilter.h:
* platform/graphics/svg/SVGResourceMarker.h:
* platform/graphics/svg/SVGResourceMasker.h:
* platform/graphics/svg/cg/CgSupport.h:
* platform/graphics/svg/filters/SVGDistantLightSource.h:
* platform/graphics/svg/filters/SVGFEBlend.h:
* platform/graphics/svg/filters/SVGFEColorMatrix.h:
* platform/graphics/svg/filters/SVGFEComponentTransfer.h:
* platform/graphics/svg/filters/SVGFEComposite.h:
* platform/graphics/svg/filters/SVGFEConvolveMatrix.h:
* platform/graphics/svg/filters/SVGFEDiffuseLighting.h:
* platform/graphics/svg/filters/SVGFEDisplacementMap.h:
* platform/graphics/svg/filters/SVGFEFlood.h:
* platform/graphics/svg/filters/SVGFEGaussianBlur.h:
* platform/graphics/svg/filters/SVGFEImage.h:
* platform/graphics/svg/filters/SVGFEMerge.h:
* platform/graphics/svg/filters/SVGFEMorphology.h:
* platform/graphics/svg/filters/SVGFEOffset.h:
* platform/graphics/svg/filters/SVGFESpecularLighting.h:
* platform/graphics/svg/filters/SVGFETile.h:
* platform/graphics/svg/filters/SVGFETurbulence.h:
* platform/graphics/svg/filters/SVGFilterEffect.h:
* platform/graphics/svg/filters/SVGLightSource.h:
* platform/graphics/svg/filters/SVGPointLightSource.h:
* platform/graphics/svg/filters/SVGSpotLightSource.h:
* platform/mac/FontPlatformData.h:
* platform/mac/PlatformScrollBar.h:
* platform/network/AuthenticationChallenge.h:
* platform/network/Credential.h:
* platform/network/HTTPHeaderMap.h:
* platform/network/ProtectionSpace.h:
* platform/network/ResourceError.h:
* platform/network/ResourceRequest.h:
* platform/network/ResourceResponse.h:
* platform/network/cf/FormDataStreamCFNet.h:
* platform/network/cf/ResourceRequestCFNet.h:
* platform/network/cf/ResourceResponseCFNet.h:
* platform/network/gdk/ResourceHandleManager.h:
* platform/network/mac/AuthenticationMac.h:
* platform/network/mac/FormDataStreamMac.h:
* platform/network/qt/ResourceHandleManagerKDE.h:
* platform/network/qt/ResourceHandleManagerQt.h:
* platform/network/win/ResourceHandleWin.h:
* platform/qt/FontPlatformData.h:
* platform/qt/KeyboardCodes.h:
* platform/qt/PlatformScrollBar.h:
* platform/qt/ScrollViewCanvasQt.h:
* platform/qt/SharedTimerQt.h:
* platform/win/FontPlatformData.h:
* platform/win/PlatformScrollBar.h:
* rendering/AutoTableLayout.h:
* rendering/HitTestRequest.h:
* rendering/HitTestResult.h:
* rendering/InlineBox.h:
* rendering/InlineFlowBox.h:
* rendering/Length.h:
* rendering/ListMarkerBox.h:
* rendering/RenderBox.h:
* rendering/RenderMenuList.h:
* rendering/RenderPart.h:
* rendering/RenderPartObject.h:
* rendering/RenderPath.h:
* rendering/RenderReplaced.h:
* rendering/RenderSVGContainer.h:
* rendering/RenderSVGImage.h:
* rendering/RenderSVGInline.h:
* rendering/RenderSVGInlineText.h:
* rendering/RenderSVGTSpan.h:
* rendering/RenderSVGText.h:
* rendering/RenderStyle.h:
* rendering/RenderTableCol.h:
* rendering/RenderThemeWin.h:
* rendering/bidi.h:
* xml/DOMParser.h:
* xml/XPathEvaluator.h:
* xml/XPathExpression.h:
* xml/XPathExpressionNode.h:
* xml/XPathFunctions.h:
* xml/XPathNSResolver.h:
* xml/XPathNamespace.h:
* xml/XPathParser.h:
* xml/XPathPath.h:
* xml/XPathPredicate.h:
* xml/XPathResult.h:
* xml/XPathStep.h:
* xml/XPathUtil.h:
* xml/XPathValue.h:
* xml/XPathVariableReference.h:
* xml/XSLImportRule.h:
* xml/XSLStyleSheet.h:
* xml/XSLTProcessor.h:
* xml/xmlhttprequest.h:
2007-01-15 Anders Carlsson <acarlsson@apple.com>
Build fix.
* loader/ProgressTracker.cpp:
2007-01-15 Lars Knoll <lars@trolltech.com>
Fix the Qt build
* WebCore.pro:
2007-01-15 Anders Carlsson <acarlsson@apple.com>
Reviewed by Darin.
* loader/ProgressTracker.cpp:
Set finalProgressValue to its value explicitly instead of calculating it
(which causes a global initializer to be generated).
2007-01-15 Anders Carlsson <acarlsson@apple.com>
Reviewed by Darin and Adam.
Move progress tracking down to WebCore.
* WebCore.exp:
Add ProgressTracker::estimatedProgress() to be used by WebKit.
* WebCore.xcodeproj/project.pbxproj:
Add ProgressTracker.[cpp|h]
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::prepareForLoadStart):
(WebCore::FrameLoader::clearProvisionalLoad):
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
(WebCore::FrameLoader::startLoading):
(WebCore::FrameLoader::didReceiveResponse):
(WebCore::FrameLoader::didReceiveData):
(WebCore::FrameLoader::didFailToLoad):
(WebCore::FrameLoader::requestFromDelegate):
(WebCore::FrameLoader::didFinishLoad):
Call directly to the progress tracker instead of through the frame loader client.
* loader/FrameLoaderClient.h:
Get rid of the old methods and add new methods for tracking progress.
* loader/ProgressTracker.cpp: Added.
(WebCore::ProgressItem::ProgressItem):
(WebCore::ProgressTracker::ProgressTracker):
(WebCore::ProgressTracker::~ProgressTracker):
(WebCore::ProgressTracker::estimatedProgress):
(WebCore::ProgressTracker::reset):
(WebCore::ProgressTracker::progressStarted):
(WebCore::ProgressTracker::progressCompleted):
(WebCore::ProgressTracker::finalProgressComplete):
(WebCore::ProgressTracker::incrementProgress):
(WebCore::ProgressTracker::completeProgress):
(WebCore::ProgressTracker::createUniqueIdentifier):
* loader/ProgressTracker.h: Added.
New per page class which tracks progress.
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::willSendRequest):
* page/Page.cpp:
(WebCore::Page::Page):
* page/Page.h:
(WebCore::Page::progress):
Move createUniqueIdentifier to ProgressTracker, add ProgressTracker object to Page.
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::willChangeEstimatedProgress):
(WebCore::SVGEmptyFrameLoaderClient::didChangeEstimatedProgress):
(WebCore::SVGEmptyFrameLoaderClient::postProgressStartedNotification):
(WebCore::SVGEmptyFrameLoaderClient::postProgressEstimateChangedNotification):
(WebCore::SVGEmptyFrameLoaderClient::postProgressFinishedNotification):
Add new methods, get rid of the old ones.
2007-01-15 Adam Roben <aroben@apple.com>
Reviewed by Anders.
Fix comment.
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::shouldExecuteAsJavaScript):
2007-01-15 John Sullivan <sullivan@apple.com>
* platform/ContextMenu.cpp:
(WebCore::ContextMenu::checkOrEnableIfNeeded):
Leopard build fix; don't declare one of the case values twice
2007-01-15 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=8604
rowspan does not work when set through javascript
Covered by existing tests.
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::updateFromElement): Mark the section for grid recalc
if row span or column span change.
2007-01-15 Adam Roben <aroben@apple.com>
Reviewed by Darin.
Small context menu fixes.
* platform/ContextMenu.cpp:
(WebCore::ContextMenu::populate): Fix typo.
(WebCore::ContextMenu::checkOrEnableIfNeeded): Disabled "No Guesses
Found", and added all enum values explicitly.
2007-01-15 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=6272
XMLHttpRequest freezes on getting a missing document with overridden Content-Length
http://bugs.webkit.org/show_bug.cgi?id=6212
Investigate disallowing some XMLHttpRequest headers from being set via setRequestHeader.
Tests:
- http/tests/xmlhttprequest/connection-error-sync.html
- http/tests/xmlhttprequest/set-dangerous-headers.html
* bindings/js/kjs_binding.cpp:
(KJS::):
(KJS::setDOMException): Added support for NETWORK_ERR. Changed the temporary
PERMISSION_DENIED error into a special case.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadResourceSynchronously):
* loader/FrameLoader.h:
Return the error object to the caller. Removed an extra local variable for error,
which shadowed the one from enclosing block.
* dom/XMLTokenizer.cpp:
(WebCore::openFunc):
* xml/XSLTProcessor.cpp:
(WebCore::docLoaderFunc):
Updated to pass an error object (currently ignored).
* xml/xmlhttprequest.cpp:
(WebCore::canSetRequestHeader): Added. The headers to block include the ones from
the current XMLHttpRequest draft plus "Via", which is blocked by Firefox.
(WebCore::XMLHttpRequest::send): Raise an exception if a sync request results in
an error.
(WebCore::XMLHttpRequest::setRequestHeader): Call canSetRequestHeader().
* xml/xmlhttprequest.h:
(WebCore::): Added NETWORK_ERR and a comment about PERMISSION_DENIED.
2007-01-15 Zack Rusin <zack@kde.org>
Optimizing rendering on the Qt platform. Mainly
switching from client side QImage to QPixmap's.
Also cleaning the the ScrollViewCanvasQt code
quite a bit.
* platform/graphics/ImageSource.h: use QPixmap
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::TransparencyLayer::TransparencyLayer):
(WebCore::GraphicsContext::clip): clip rects when you can
* platform/graphics/qt/ImageDecoderQt.cpp:
(WebCore::ImageDecoderQt::ImageData::ImageData):
(WebCore::ImageDecoderQt::ReadContext::read):
(WebCore::ImageDecoderQt::ReadContext::readImageLines):
(WebCore::ImageDecoderQt::imageAtIndex):
* platform/graphics/qt/ImageDecoderQt.h: use QPixmap
* platform/graphics/qt/ImageQt.cpp: QPixmap instead of QImage
(WebCore::BitmapImage::draw):
(WebCore::BitmapImage::drawTiled):
* platform/graphics/qt/ImageSourceQt.cpp:
(WebCore::):
(WebCore::ImageSource::createFrameAtIndex):
(WebCore::ImageSource::frameHasAlphaAtIndex):
* platform/qt/ScrollViewCanvasQt.cpp: clean up
(WebCore::ScrollViewCanvasQt::ScrollViewCanvasQt):
(WebCore::ScrollViewCanvasQt::updateFrameView):
(WebCore::ScrollViewCanvasQt::paintEvent):
(WebCore::ScrollViewCanvasQt::mouseMoveEvent):
(WebCore::ScrollViewCanvasQt::mousePressEvent):
(WebCore::ScrollViewCanvasQt::mouseReleaseEvent):
(WebCore::ScrollViewCanvasQt::handleKeyEvent):
* platform/qt/ScrollViewCanvasQt.h:
* platform/qt/ScrollViewQt.cpp: remove hacks
(WebCore::ScrollView::ScrollView):
(WebCore::ScrollView::setParentWidget):
(WebCore::ScrollView::updateContents):
2007-01-15 Lars Knoll <lars@trolltech.com>
Reviewed by Zack
Fix weird crashes when running the layout tests. The
reason was that I used KURL (and thus DeprecatedString)
in a thread. Unfortunately that class is not threadsafe
at all.
* platform/network/qt/ResourceHandleManagerQt.cpp:
(WebCore::RequestQt::RequestQt):
(WebCore::RequestQt::setURL):
(WebCore::ResourceHandleManager::add):
(WebCore::ResourceHandleManager::cancel):
(WebCore::ResourceHandleManager::receivedResponse):
(WebCore::FileLoader::request):
(WebCore::HostInfo::HostInfo):
(WebCore::NetworkLoader::request):
(WebCore::NetworkLoader::cancel):
* platform/network/qt/ResourceHandleManagerQt.h:
(WebCore::HostInfo::HostInfo):
(WebCore::HostInfo::isLocalFile):
2007-01-15 Eric Seidel <eric@webkit.org>
Reviewed by rwlbuis.
Make isValid check not malloc 3 SVGStringLists for every element.
No test possible, performance fix only.
* ksvg2/svg/SVGTests.cpp:
(WebCore::SVGTests::isValid):
2007-01-15 Rob Buis <buis@kde.org>
Reviewed by Eric.
Remove unused member var.
* ksvg2/svg/SVGStyledElement.h:
2007-01-15 Rob Buis <buis@kde.org>
Reviewed by Eric.
http://bugs.webkit.org/show_bug.cgi?id=12069
Hit detection fails under some viewbox constraints
Do not take viewBox into account when hit testing svg container.
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::nodeAtPoint):
2007-01-15 David Hyatt <hyatt@apple.com>
Fix for 12275, negative margins confuse page breaks.
Reviewed by Eric
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintChildren):
2007-01-15 Eric Seidel <eric@webkit.org>
Reviewed by mjs.
SVG gradients do not notice stop additions
http://bugs.webkit.org/show_bug.cgi?id=12192
Test: svg/custom/gradient-add-stops.svg
* ksvg2/svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::childrenChanged):
* ksvg2/svg/SVGGradientElement.h:
2007-01-14 David Hyatt <hyatt@apple.com>
Fix for bug 10356, positioning doesn't work with <svg> elements in XHTML. Change the requiresLayer
check to use the DOM, since the old check would fail if the parent block had no element.
Reviewed by Eric
Added svg/custom/relative-positioning.html (absolute/fixed too)
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::requiresLayer):
2007-01-14 Eric Seidel <eric@webkit.org>
Reviewed by hyatt.
SVG does not correctly handle float: left
http://bugs.webkit.org/show_bug.cgi?id=12210
Test: svg/custom/svg-float-border-padding.xml
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::paint):
2007-01-14 David Hyatt <hyatt@apple.com>
More work to fix 10145, regression where form elements don't break properly. Make sure to really use
the parent of the replaced element's whitespace value everywhere.
Reviewed by olliej
fast/replaced/three-selects-break.html
* rendering/bidi.cpp:
(WebCore::RenderBlock::findNextLineBreak):
2007-01-14 Sam Weinig <sam@webkit.org>
Reviewed by Darin and then by Mitz.
Patch for http://bugs.webkit.org/show_bug.cgi?id=12228
Cleanup assorted CSS classes
* css/CSSBorderImageValue.cpp:
(WebCore::CSSBorderImageValue::CSSBorderImageValue):
(WebCore::CSSBorderImageValue::cssText):
* css/CSSBorderImageValue.h:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForLength):
(WebCore::valueForBorderStyle):
(WebCore::valueForTextAlign):
(WebCore::valueForShadow):
(WebCore::getPositionOffsetValue):
(WebCore::CSSComputedStyleDeclaration::cssText):
(WebCore::primitiveValueFromLength):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
(WebCore::CSSComputedStyleDeclaration::getPropertyPriority):
(WebCore::CSSComputedStyleDeclaration::removeProperty):
(WebCore::CSSComputedStyleDeclaration::setProperty):
(WebCore::CSSComputedStyleDeclaration::length):
(WebCore::CSSComputedStyleDeclaration::item):
* css/CSSComputedStyleDeclaration.h:
* css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::CSSCursorImageValue):
* css/CSSCursorImageValue.h:
* css/CSSGrammar.y:
* css/CSSImageValue.cpp:
* css/CSSImageValue.h:
* css/CSSInheritedValue.cpp:
* css/CSSInheritedValue.h:
* css/CSSInitialValue.cpp:
* css/CSSInitialValue.h:
* css/CSSMutableStyleDeclaration.cpp:
(WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
(WebCore::CSSMutableStyleDeclaration::operator=):
(WebCore::CSSMutableStyleDeclaration::getPropertyValue):
(WebCore::CSSMutableStyleDeclaration::get4Values):
(WebCore::CSSMutableStyleDeclaration::getShorthandValue):
(WebCore::CSSMutableStyleDeclaration::getPropertyCSSValue):
(WebCore::CSSMutableStyleDeclaration::removeProperty):
(WebCore::CSSMutableStyleDeclaration::setChanged):
(WebCore::CSSMutableStyleDeclaration::getPropertyPriority):
(WebCore::CSSMutableStyleDeclaration::getPropertyShorthand):
(WebCore::CSSMutableStyleDeclaration::isPropertyImplicit):
(WebCore::CSSMutableStyleDeclaration::setProperty):
(WebCore::CSSMutableStyleDeclaration::setImageProperty):
(WebCore::CSSMutableStyleDeclaration::parseDeclaration):
(WebCore::CSSMutableStyleDeclaration::addParsedProperties):
(WebCore::CSSMutableStyleDeclaration::setLengthProperty):
(WebCore::CSSMutableStyleDeclaration::cssText):
(WebCore::CSSMutableStyleDeclaration::merge):
(WebCore::CSSMutableStyleDeclaration::removePropertiesInSet):
* css/CSSMutableStyleDeclaration.h:
(WebCore::CSSMutableStyleDeclaration::setProperty):
(WebCore::CSSMutableStyleDeclaration::removeProperty):
* css/CSSNamespace.h:
(WebCore::CSSNamespace::CSSNamespace):
* css/CSSPrimitiveValue.cpp:
(WebCore::isCSSTokenizerIdentifier):
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::computeLengthInt):
(WebCore::CSSPrimitiveValue::computeLengthIntForLength):
(WebCore::CSSPrimitiveValue::computeLengthShort):
(WebCore::CSSPrimitiveValue::computeLengthFloat):
(WebCore::CSSPrimitiveValue::setFloatValue):
(WebCore::scaleFactorForConversion):
(WebCore::CSSPrimitiveValue::getFloatValue):
(WebCore::CSSPrimitiveValue::setStringValue):
(WebCore::CSSPrimitiveValue::getStringValue):
(WebCore::CSSPrimitiveValue::parseString):
(WebCore::CSSPrimitiveValue::getIdent):
(WebCore::CSSPrimitiveValue::cssText):
* css/CSSPrimitiveValue.h:
(WebCore::CSSPrimitiveValue::getCounterValue):
(WebCore::CSSPrimitiveValue::getRectValue):
(WebCore::CSSPrimitiveValue::getRGBColorValue):
(WebCore::CSSPrimitiveValue::getPairValue):
(WebCore::CSSPrimitiveValue::getDashboardRegionValue):
* css/CSSProperty.cpp:
(WebCore::operator==):
* css/CSSProperty.h:
(WebCore::CSSProperty::operator=):
* css/CSSQuirkPrimitiveValue.h:
(WebCore::CSSQuirkPrimitiveValue::CSSQuirkPrimitiveValue):
* css/CSSRuleList.cpp:
(WebCore::CSSRuleList::CSSRuleList):
(WebCore::CSSRuleList::deleteRule):
(WebCore::CSSRuleList::insertRule):
* css/CSSRuleList.h:
(WebCore::CSSRuleList::item):
* css/CSSSelector.cpp:
(WebCore::CSSSelector::print):
(WebCore::CSSSelector::specificity):
(WebCore::CSSSelector::extractPseudoType):
(WebCore::CSSSelector::operator==):
(WebCore::CSSSelector::selectorText):
* css/CSSSelector.h:
(WebCore::CSSSelector::CSSSelector):
(WebCore::CSSSelector::~CSSSelector):
(WebCore::CSSSelector::append):
(WebCore::CSSSelector::next):
(WebCore::CSSSelector::pseudoType):
(WebCore::CSSSelector::hasTag):
(WebCore::CSSSelector::hasAttribute):
* css/CSSStyleDeclaration.cpp:
(WebCore::propertyID):
(WebCore::CSSStyleDeclaration::getPropertyPriority):
(WebCore::CSSStyleDeclaration::getPropertyShorthand):
(WebCore::CSSStyleDeclaration::isPropertyImplicit):
(WebCore::CSSStyleDeclaration::setProperty):
(WebCore::CSSStyleDeclaration::isPropertyName):
(WebCore::CSSStyleDeclaration::parentRule):
(WebCore::CSSStyleDeclaration::diff):
(WebCore::CSSStyleDeclaration::copyPropertiesInSet):
* css/CSSStyleDeclaration.h:
* css/Counter.h:
(WebCore::Counter::Counter):
(WebCore::Counter::listStyleNumber):
* css/csshelper.cpp:
(WebCore::parseURL):
* css/csshelper.h:
* css/cssparser.h:
(WebCore::domString):
(WebCore::atomicString):
(WebCore::CSSParser::operator|):
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::matchRulesForList):
(WebCore::CSSStyleSelector::checkSelector):
(WebCore::CSSStyleSelector::checkOneSelector):
(WebCore::CSSRuleSet::addRule):
2007-01-14 Mitz Pettel <mitz@webkit.org>
Reviewed by Adam.
- fix http://bugs.webkit.org/show_bug.cgi?id=12264
REGRESSION (r18843): Webkit crashes on 43Folders.com home page
Test: fast/tokenizer/ignore-tags-in-iframe.html
* html/HTMLParser.cpp:
(WebCore::HTMLParser::reset): Removed unused inSelect member variable.
(WebCore::HTMLParser::selectCreateErrorCheck): Ditto.
(WebCore::HTMLParser::processCloseTag): Ditto.
* html/HTMLParser.h: Ditto.
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::parseTag): Changed not to process <pre>, <listing>,
<script>, <style>, <title>, <textarea> and <xmp> if the parser is in skip mode
(waiting for a close tag of an element whose contents are not parsed,
such as iframe).
* html/HTMLTokenizer.h:
(WebCore::HTMLTokenizer::State::setInStyle): Removed unused bit.
(WebCore::HTMLTokenizer::State::): Ditto.
2007-01-14 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12258
fast/tokenizer/002 test broken
* loader/FrameLoader.h: Added a flush parameter to write().
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::write): Ditto.
(WebCore::FrameLoader::endIfNotLoading): Instead of poorly duplicating the logic in write(),
call it directly.
2007-01-14 Adam Roben <aroben@apple.com>
Reviewed by Maciej.
Make sure our whitelisting of the type and language attributes of the
<script> element is enforced in all HTMLTokenizer/HTMLScriptElement
code paths.
All layout tests pass.
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::shouldExecuteAsJavaScript): New method to
determine whether the script should be executed, given its type and
language attributes.
(WebCore::HTMLScriptElement::evaluateScript): Check type/language
before executing.
* html/HTMLScriptElement.h: Added new declarations.
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::begin): Made scriptSrc a String.
(WebCore::HTMLTokenizer::scriptHandler): Check
shouldExecuteAsJavaScript before executing.
(WebCore::HTMLTokenizer::notifyFinished): Ditto.
(WebCore::HTMLTokenizer::parseTag): Moved type/language checking from
here to HTMLScriptElement::shouldExecuteAsJavaScript.
* html/HTMLTokenizer.h: Made scriptSrc a String, and removed the
javascript member.
2007-01-14 David Hyatt <hyatt@apple.com>
Make sure floats are avoided if you have non-auto column property values. Fixes the crazy layout
on http://weblogs.mozillazine.org/roc.
Reviewed by mitz
Added fast/multicol/float-avoidance.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::avoidsFloats):
2007-01-14 David Hyatt <hyatt@apple.com>
Fix for 10145, regression where line breaks are not being honored between adjacent replaced elements.
When checking for break opportunities where replaced elements are involved, we ignore their white-space
values and use their parents' instead. The assumption/idea behind this change is that because the element
is replaced, its white-space value is irrelevant except as a means of applying style to its interior.
The CSS spec does not cover this situation, so we're implementing this based off what other browsers seem to
do.
Reviewed by aroben
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSValueKeywords.in:
* css/cssparser.cpp:
(WebCore::CSSParser::parseValue):
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::clear):
(WebCore::EventHandler::handleWheelEvent):
* page/EventHandler.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::calcHeight):
* rendering/RenderLayer.cpp:
(WebCore::Marquee::Marquee):
(WebCore::Marquee::start):
(WebCore::Marquee::updateMarqueePosition):
(WebCore::Marquee::updateMarqueeStyle):
(WebCore::Marquee::timerFired):
* rendering/RenderLayer.h:
* rendering/RenderPartObject.cpp:
(WebCore::RenderPartObject::viewCleared):
* rendering/RenderStyle.h:
(WebCore::):
* rendering/bidi.cpp:
(WebCore::RenderBlock::findNextLineBreak):
2007-01-13 David Hyatt <hyatt@apple.com>
While optimizing form controls and fixing their clipping, I caused this text zoom regression. The layout
of text is necessary because it needs to recalc minmaxwidth. This is still a really unfortunate
bit of code... since a lot of properties don't apply to text (e.g., borders), we're marking text renderers
as dirty when we don't have to.
Reviewed by mitz
* rendering/RenderObject.cpp:
(WebCore::RenderObject::setStyle):
2007-01-13 Lars Knoll <lars@trolltech.com>
Reviewed by Alexey
String::format() was relying on undefined behaviour, which
happened to work on lots of systems (Mac and 32bit Linux at least)
but broke badly on 64bit Linux.
* platform/String.cpp:
(WebCore::String::format):
2007-01-13 Martin Reddy <reddy@pixar.com>
Fix for bug 11924: WebCore would crash on any HTML content
with a non-empty <table> tag in it on a 64-bit machine. The
size_t (64bit) vs int (32bit) cast is now fixed in ensureRows,
and the clients of this function have been updated to check
for a false return code.
Reviewed by Darin, landed by Lars
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::addChild):
(WebCore::RenderTableSection::ensureRows):
(WebCore::RenderTableSection::recalcCells):
2007-01-13 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12165
REGRESSION: text encoding problem at jn.sapo.pt
Test: fast/encoding/script-in-head.html
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::checkForHeadCharset):
Ignore tags within <script> elements in head, just like we do for <title>.
2007-01-13 Lars Knoll <lars@trolltech.com>
Reviewed by Maciej
Don't crash when constructing a GraphicsContext with a 0
PlatformGraphicsContext and don't do anything if painting
is disabled.
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
(WebCore::GraphicsContext::origin):
(WebCore::GraphicsContext::setPlatformFont):
(WebCore::GraphicsContext::setPlatformStrokeColor):
(WebCore::GraphicsContext::setPlatformStrokeStyle):
(WebCore::GraphicsContext::setPlatformStrokeThickness):
(WebCore::GraphicsContext::setPlatformFillColor):
2007-01-13 Eric Seidel <eric@webkit.org>
Reviewed by hyatt.
RichDraw demo does not live-update in Safari
(SVG elements should ignore CSS position)
http://bugs.webkit.org/show_bug.cgi?id=10364
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::adjustRenderStyle): ignore position for everything but <svg>
* ksvg2/svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::rebuildRenderer): move path generation into layout()
* rendering/RenderContainer.cpp:
(WebCore::RenderContainer::layout): ASSERT kids marked as having completed layout
* rendering/RenderPath.cpp:
(WebCore::RenderPath::layout): move path generation into layout()
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::layout): ASSERT kids marked as having completed layout
2007-01-12 David Hyatt <hyatt@apple.com>
Add support for column rules.
Reviewed by bdash
fast/multicol/column-rules.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintColumns):
* rendering/RenderStyle.h:
(WebCore::RenderStyle::columnRuleIsTransparent):
2007-01-12 David Hyatt <hyatt@apple.com>
Make multicolumn layout work with floats.
Reviewed by andersca
Added fast/multicol/float-multicol.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::paintColumns):
(WebCore::RenderBlock::paintObject):
* rendering/RenderBlock.h:
2007-01-12 David Kilzer <ddkilzer@kilzer.net>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=12239
REGRESSION (r18816-r18818): Assertion failure in
WebCore::Length::Length[in-charge](int, WebCore::LengthType, bool)
Test: fast/css/line-height.html
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::createInnerTextStyle): Use a float to create a percent Length.
2007-01-12 Anders Carlsson <acarlsson@apple.com>
Reviewed by Darin.
Use unsigned long for identifiers instead of Objective-C objects.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadResourceSynchronously):
(WebCore::FrameLoader::startLoadingMainResource):
(WebCore::FrameLoader::startLoading):
(WebCore::FrameLoader::assignIdentifierToInitialRequest):
(WebCore::FrameLoader::opened):
(WebCore::FrameLoader::sendRemainingDelegateMessages):
(WebCore::FrameLoader::requestFromDelegate):
(WebCore::FrameLoader::loadedResourceFromMemoryCache):
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::ResourceLoader):
(WebCore::ResourceLoader::willSendRequest):
* loader/ResourceLoader.h:
(WebCore::ResourceLoader::setIdentifier):
(WebCore::ResourceLoader::identifier):
* page/Page.cpp:
(WebCore::Page::Page):
(WebCore::Page::createUniqueIdentifier):
* page/Page.h:
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::assignIdentifierToInitialRequest):
(WebCore::SVGEmptyFrameLoaderClient::dispatchWillSendRequest):
(WebCore::SVGEmptyFrameLoaderClient::dispatchDidReceiveAuthenticationChallenge):
(WebCore::SVGEmptyFrameLoaderClient::dispatchDidCancelAuthenticationChallenge):
(WebCore::SVGEmptyFrameLoaderClient::dispatchDidReceiveResponse):
(WebCore::SVGEmptyFrameLoaderClient::dispatchDidReceiveContentLength):
(WebCore::SVGEmptyFrameLoaderClient::dispatchDidFinishLoading):
(WebCore::SVGEmptyFrameLoaderClient::dispatchDidFailLoading):
(WebCore::SVGEmptyFrameLoaderClient::incrementProgress):
(WebCore::SVGEmptyFrameLoaderClient::completeProgress):
2007-01-12 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12235
REGRESSION (r18815): Marquees do not scroll
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::applyProperty): Apply the '-webkit-marquee' value
of 'overflow-x' and 'overflow-y'.
2007-01-12 Justin Garcia <justin.garcia@apple.com>
Reviewed by hyatt
<rdar://problem/4875425>
EBay, GMail, and GoogleDocs RTEs font size popups don't work
Changed execCommand("FontSize", ...) to match the spec
and the behavior of other browsers. It expects a number,
n, which, the spec says can be 1 through 7. Other browsers
perform the font size change by creating a font element
wrapper with size="n". We convert n into one of the absolute
size CSS keywords (x-small, medium, etc.).
* editing/JSEditor.cpp: Call cssValueFromFontSizeNumber. If
successful, perform the style change.
* html/HTMLFontElement.cpp:
(WebCore::HTMLFontElement::cssValueFromFontSizeNumber): Added.
Moved this code from parsedMappedAttribute so that it could be
called from the Editor.
(WebCore::HTMLFontElement::parseMappedAttribute): Moved code into
cssValueFromFontSizeNumber.
* html/HTMLFontElement.h:
2007-01-12 David Hyatt <hyatt@apple.com>
Fix for bug 11598, implement lightweight control clipping mechanism for
buttons, list boxes, and dropdown lists. Make sure list box respects
scrollLeft/Top/Width/Height as well as clientWidth/Height.
Fix bugs in RenderStyle::diff. CursorData was not being compared properly.
vertical-align had a non-inline display check that was wrong (preventing
dynamic changes to keyword-based vertical-align from working).
Reviewed by mitz
* page/EventHandler.cpp:
(WebCore::EventHandler::selectClosestWordFromMouseEvent):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layout):
(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::determineHorizontalPosition):
(WebCore::RenderBlock::layoutBlockChildren):
(WebCore::RenderBlock::paint):
(WebCore::RenderBlock::fillHorizontalSelectionGap):
(WebCore::RenderBlock::nodeAtPoint):
(WebCore::RenderBlock::layoutColumns):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeAbsoluteRepaintRect):
* rendering/RenderBox.h:
* rendering/RenderButton.cpp:
(WebCore::RenderButton::setStyle):
(WebCore::RenderButton::controlClipRect):
* rendering/RenderButton.h:
(WebCore::RenderButton::hasControlClip):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
(WebCore::RenderFlexibleBox::layoutHorizontalBox):
(WebCore::RenderFlexibleBox::layoutVerticalBox):
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::addFocusRingRects):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::itemBoundingBoxRect):
(WebCore::RenderListBox::paintObject):
(WebCore::RenderListBox::itemHeight):
(WebCore::RenderListBox::verticalScrollbarWidth):
(WebCore::RenderListBox::scrollWidth):
(WebCore::RenderListBox::scrollHeight):
(WebCore::RenderListBox::scrollLeft):
(WebCore::RenderListBox::setScrollLeft):
(WebCore::RenderListBox::scrollTop):
(WebCore::RenderListBox::setScrollTop):
(WebCore::RenderListBox::controlClipRect):
* rendering/RenderListBox.h:
(WebCore::RenderListBox::hasControlClip):
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::setStyle):
(WebCore::RenderMenuList::controlClipRect):
* rendering/RenderMenuList.h:
(WebCore::RenderMenuList::hasControlClip):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::verticalScrollbarWidth):
(WebCore::RenderObject::horizontalScrollbarHeight):
(WebCore::RenderObject::clientWidth):
(WebCore::RenderObject::clientHeight):
(WebCore::RenderObject::setStyle):
* rendering/RenderObject.h:
(WebCore::RenderObject::hasControlClip):
(WebCore::RenderObject::controlClipRect):
(WebCore::RenderObject::contentWidth):
(WebCore::RenderObject::contentHeight):
* rendering/RenderStyle.cpp:
(WebCore::StyleVisualData::StyleVisualData):
(WebCore::cursorDataEqvuialent):
(WebCore::StyleInheritedData::operator==):
(WebCore::CursorList::operator==):
(WebCore::RenderStyle::diff):
* rendering/RenderStyle.h:
(WebCore::LengthBox::operator!=):
(WebCore::StyleVisualData::operator==):
(WebCore::CursorData::operator==):
(WebCore::CursorData::operator!=):
(WebCore::CursorList::operator!=):
(WebCore::RenderStyle::setTableLayout):
* rendering/bidi.cpp:
(WebCore::RenderBlock::layoutInlineChildren):
2007-01-12 David Hyatt <hyatt@apple.com>
Fix for bug 9934, smaller line heights should not be allowed on
text fields.
Reviewed by darin
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::createInnerTextStyle):
2007-01-12 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- http://bugs.webkit.org/show_bug.cgi?id=12215
Treat 'overflow' and '-webkit-border-radius' as shorthands when parsing and
when removing.
Test: fast/css/remove-shorthand.html (updated)
* css/CSSMutableStyleDeclaration.cpp:
(WebCore::initShorthandMap):
* css/cssparser.cpp:
(WebCore::CSSParser::parseValue):
2007-01-12 Rob Buis <buis@kde.org>
Reviewed by Mitz.
Do not mix up JSSVGPolygonElement and JSSVGPolylineElement.
* bindings/js/JSSVGElementWrapperFactory.cpp:
2007-01-12 Kevin Decker <kdecker@apple.com>
Reviewed by andersca.
Fixed: <rdar://problem/4701326>21.2 ms launch time regression spent in +[WebPluginDatabase installedPlugins]
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument): Added a guard clause for text/html which used to be in WebKit before a lot of the
loader plumbing was moved to WebCore. Pinging the plug-in database to ask it if it supports a given mime type has the side
effect of reading from disk on first call, therefore such a check should be a last resort.
2007-01-12 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12223
REGRESSION: Leaks under CSSStyleSelector::applyProperty
No test possible (no change to functionality).
* rendering/RenderObject.h: Removed unused forward declaration.
* rendering/RenderStyle.cpp:
(WebCore::StyleRareNonInheritedData::~StyleRareNonInheritedData):
Delete shadow data.
2007-01-12 Anders Carlsson <acarlsson@apple.com>
Build fix.
* WebCore.xcodeproj/project.pbxproj:
Remove SubresourceLoaderMac.mm.
2007-01-12 Lars Knoll <lars@trolltech.com>
Reviewed by Darin and Anders.
Make some more of the loader code platform independent.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::clear):
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
(WebCore::FrameLoader::urlSelected):
(WebCore::FrameLoader::createEmptyDocument):
(WebCore::FrameLoader::setTitle):
(WebCore::FrameLoader::originalRequestURL):
(WebCore::FrameLoader::referrer):
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::SubresourceLoader):
(WebCore::SubresourceLoader::load):
(WebCore::SubresourceLoader::create):
(WebCore::SubresourceLoader::willSendRequest):
(WebCore::SubresourceLoader::didReceiveResponse):
(WebCore::SubresourceLoader::didReceiveData):
(WebCore::SubresourceLoader::didFinishLoading):
(WebCore::SubresourceLoader::didFail):
(WebCore::SubresourceLoader::didCancel):
(WebCore::SubresourceLoader::stopLoading):
* loader/SubresourceLoader.h:
* loader/mac/FrameLoaderMac.mm:
* loader/mac/SubresourceLoaderMac.mm: Removed.
* loader/qt/FrameLoaderQt.cpp:
2007-01-12 Lars Knoll <lars@trolltech.com>
Reviewed by Zack
Valgrind reported uninitialized variable.
* platform/network/qt/ResourceHandleManagerQt.cpp:
(WebCore::FileLoader::request):
2007-01-12 Mitz Pettel <mitz@webkit.org>
Reviewed by rwlbuis.
- add missing null check in new fixed table layout code
* rendering/FixedTableLayout.cpp:
(WebCore::FixedTableLayout::calcWidthArray):
2007-01-12 Lars Knoll <lars@trolltech.com>
Fix the Qt build after the Authenitcation changes.
* WebCore.pro:
* platform/network/ResourceHandleInternal.h:
2007-01-12 David Hyatt <hyatt@apple.com>
Fix for bug 9569. Make sure the selection offset for selection roots excludes border and padding.
Reviewed by Eric
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::leftSelectionOffset):
(WebCore::RenderBlock::rightSelectionOffset):
2007-01-11 David Hyatt <hyatt@apple.com>
Fix for bug 8705, readonly text fields should not get focus rings. Add a rule to that effect to
html4.css and then also add readonly as a special case for style sharing so that we can retain the
performance boost from sharing styles on inputs.
Reviewed by bdash
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::canShareStyleWithElement):
(WebCore::CSSStyleSelector::checkOneSelector):
* css/html4.css:
2007-01-11 David Hyatt <hyatt@apple.com>
Fix for bug 11595. Autoscrolling of layers didn't really work at all unless the layer was coincidentally
in the root layer's coordinate space. The event point was an absolute position within the document, but
the layer's rect was only local coords. This patch makes sure to use absolute bounds for the layer
when comparing it with the point.
This is covered by the scrollRevealButton test case already in the tree... the results change to be more
correct.
Reviewed by ggaren
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible):
2007-01-11 Brady Eidson <beidson@apple.com>
Reviewed by Oliver
-Move more HTTP Auth handling towards ResourceHandle, away from ResourceHandleClient
-Make more of ResourceLoader cross-platform
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::ResourceLoader):
(WebCore::ResourceLoader::releaseResources):
(WebCore::ResourceLoader::didCancel):
(WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
(WebCore::ResourceLoader::didCancelAuthenticationChallenge):
(WebCore::ResourceLoader::receivedCancellation):
* loader/ResourceLoader.h:
(WebCore::ResourceLoader::willStopBufferingData):
(WebCore::ResourceLoader::didCancelAuthenticationChallenge):
(WebCore::ResourceLoader::willCacheResponse):
* loader/mac/ResourceLoaderMac.mm:
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::willStopBufferingData):
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
(WebCore::ResourceHandle::didCancelAuthenticationChallenge):
(WebCore::ResourceHandle::receivedCredential):
(WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
(WebCore::ResourceHandle::receivedCancellation):
(WebCore::ResourceHandle::clearAuthentication):
(-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]):
(-[WebCoreResourceHandleAsDelegate connection:didCancelAuthenticationChallenge:]):
(-[WebCoreResourceHandleAsDelegate useCredential:forAuthenticationChallenge:]):
(-[WebCoreResourceHandleAsDelegate continueWithoutCredentialForAuthenticationChallenge:]):
(-[WebCoreResourceHandleAsDelegate cancelAuthenticationChallenge:]):
2007-01-11 David Hyatt <hyatt@apple.com>
A hit test is returning a null renderer. Make sure to null-check it in the autoscroll code.
This really shouldn't happen, but I'm just going to bullet proof for now given that it's happening
on the front page of yahoo.com!
Reviewed by mark
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::autoscroll):
2007-01-11 David Hyatt <hyatt@apple.com>
Force column-width to parse in strict mode so that there is no confusion when it is used in the columns
shorthand (it can be mistaken for column-count otherwise).
Reviewed by Mark
fast/multicol/columns-shorthand-parsing.html
* css/cssparser.cpp:
(WebCore::CSSParser::parseValue):
2007-01-11 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12124
RenderTable::section{Above,Below}() can return the wrong answer for the {footer,header}
* rendering/RenderTable.cpp:
(WebCore::resetSectionPointerIfNotBefore): Added this function to help with
checking if a section being inserted is the going to be the first of its kind.
(WebCore::RenderTable::addChild): Changed to maintain the pointers to the
header, the footer, the caption and the first table body properly when objects
are inserted in the middle. Also changed to make the first caption win over
any other captions. This matches Firefox and what already used to happen when a
section recalc took place.
(WebCore::RenderTable::layout): Changed to use sectionBelow() for iterating
over the sections from top to bottom.
(WebCore::RenderTable::calcBorderLeft): Changed to really find the section
containing the first row.
(WebCore::RenderTable::calcBorderRight): Ditto.
(WebCore::RenderTable::sectionAbove): Fixed a bug when the last section was
skipped if the input was the footer.
(WebCore::RenderTable::sectionBelow): Ditto for "first" and "header"
respectively.
2007-01-11 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12115
RTL text is jumbled on display
Fixed fixed table layout. Implemented an algorithm that matches the behavior
of Firefox, up to rounding errors.
Fixes three existing table tests.
* rendering/FixedTableLayout.cpp:
Undid accidental search-and-replace of "width" to "m_width" in the comments.
Removed an outdated comment, since WebKit no longer honors table-layout:fixed
for variable-width tables.
(WebCore::FixedTableLayout::calcWidthArray): Fixed the logic that finds the
first row. Changed to divide the width specified for a cell that spans multiple
columns between the columns rather than assign its entire width to each column.
(WebCore::FixedTableLayout::calcMinMaxWidth):
(WebCore::FixedTableLayout::layout): Implemented the behavior observed in
Firefox.
* rendering/FixedTableLayout.h:
2007-01-11 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=8438
iExploder(#460): Assertion failure in RenderObject::drawBorder()
Test: fast/block/basic/fieldset-stretch-to-legend.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::calcWidth): Stretch to the minimum intrinsic
width if the object requires it.
(WebCore::RenderBox::calcHorizontalMargins): Some style cleanup.
(WebCore::RenderBox::calcAbsoluteHorizontal): Stretch to the minimum
intrinsic width if the object requires it.
* rendering/RenderBox.h:
(WebCore::RenderBox::stretchesToMinIntrinsicWidth): Added. Returns false.
* rendering/RenderFieldset.cpp:
(WebCore::RenderFieldset::calcMinMaxWidth): Overloaded RenderBlock's
implementation to ensure that the legend's will fit in the fieldset's
minimum intrinsic width.
(WebCore::RenderFieldset::findLegend): Made const.
(WebCore::RenderFieldset::paintBoxDecorations):
(WebCore::RenderFieldset::paintBorderMinusLegend): Fixed the behavior when
the legend does overflow the fieldset. This is the part of the fix that
prevents the assertion failure. If the legend intersects with a corner of
the fieldset's border, that corner will not be painted, even if it is not
completely occluded. This edge case can be improved with clipping in the
future. Added FIXME to implement border-radius.
* rendering/RenderFieldset.h:
(WebCore::RenderFieldset::stretchesToMinIntrinsicWidth): Overloaded to
return true.
2007-01-11 Brady Eidson <beidson@apple.com>
Reviewed by Build Fix Karma
I broke the release build (debug build passed)
* platform/network/mac/AuthenticationMac.mm:
(WebCore::core):
2007-01-11 Brady Eidson <beidson@apple.com>
Reviewed by Anders
Rewrites HTTP Authentication setting up a more platform-independent structure
* WebCore.exp:
* WebCore.xcodeproj/project.pbxproj:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didReceiveAuthenticationChallenge):
(WebCore::FrameLoader::didCancelAuthenticationChallenge):
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::ResourceLoader):
(WebCore::ResourceLoader::didCancel):
* loader/ResourceLoader.h:
(WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
(WebCore::ResourceLoader::didCancelAuthenticationChallenge):
(WebCore::ResourceLoader::receivedCredential):
(WebCore::ResourceLoader::receivedRequestToContinueWithoutCredential):
(WebCore::ResourceLoader::receivedCancellation):
* loader/mac/FrameLoaderMac.mm:
* loader/mac/ResourceLoaderMac.mm:
(WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
(WebCore::ResourceLoader::didCancelAuthenticationChallenge):
(WebCore::ResourceLoader::receivedCredential):
(WebCore::ResourceLoader::receivedRequestToContinueWithoutCredential):
(WebCore::ResourceLoader::receivedCancellation):
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::dispatchDidReceiveAuthenticationChallenge):
(WebCore::SVGEmptyFrameLoaderClient::dispatchDidCancelAuthenticationChallenge):
* platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::willSendRequest):
(WebCore::ResourceHandleClient::didReceiveAuthenticationChallenge):
(WebCore::ResourceHandleClient::didCancelAuthenticationChallenge):
(WebCore::ResourceHandleClient::receivedCredential):
(WebCore::ResourceHandleClient::receivedRequestToContinueWithoutCredential):
(WebCore::ResourceHandleClient::receivedCancellation):
(WebCore::ResourceHandleClient::willCacheResponse):
* platform/network/ResourceResponse.h:
(WebCore::operator!=):
* platform/network/URLAuthenticationChallenge.cpp: Added.
(WebCore::URLAuthenticationChallenge::URLAuthenticationChallenge):
(WebCore::URLAuthenticationChallenge::previousFailureCount):
(WebCore::URLAuthenticationChallenge::proposedCredential):
(WebCore::URLAuthenticationChallenge::protectionSpace):
(WebCore::URLAuthenticationChallenge::failureResponse):
(WebCore::URLAuthenticationChallenge::error):
(WebCore::URLAuthenticationChallenge::isNull):
(WebCore::URLAuthenticationChallenge::nullify):
(WebCore::operator==):
(WebCore::operator!=):
* platform/network/URLAuthenticationChallenge.h: Added.
(WebCore::URLAuthenticationChallenge::sender):
(WebCore::URLAuthenticationChallenge::nsURLAuthenticationChallenge):
* platform/network/URLCredential.cpp: Added.
(WebCore::URLCredential::URLCredential):
(WebCore::URLCredential::user):
(WebCore::URLCredential::password):
(WebCore::URLCredential::hasPassword):
(WebCore::URLCredential::persistence):
(WebCore::operator==):
* platform/network/URLCredential.h: Added.
(WebCore::):
(WebCore::operator!=):
* platform/network/URLProtectionSpace.cpp: Added.
(WebCore::URLProtectionSpace::URLProtectionSpace):
(WebCore::URLProtectionSpace::host):
(WebCore::URLProtectionSpace::port):
(WebCore::URLProtectionSpace::serverType):
(WebCore::URLProtectionSpace::realm):
(WebCore::URLProtectionSpace::authenticationScheme):
(WebCore::operator==):
* platform/network/URLProtectionSpace.h: Added.
(WebCore::):
(WebCore::operator!=):
* platform/network/mac/AuthenticationMac.h: Added.
* platform/network/mac/AuthenticationMac.mm: Added.
(WebCore::URLAuthenticationChallenge::URLAuthenticationChallenge):
(WebCore::mac):
(WebCore::core):
* platform/network/mac/ResourceHandleMac.mm:
(-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]):
(-[WebCoreResourceHandleAsDelegate connection:didCancelAuthenticationChallenge:]):
(-[WebCoreResourceHandleAsDelegate useCredential:forAuthenticationChallenge:]):
(-[WebCoreResourceHandleAsDelegate continueWithoutCredentialForAuthenticationChallenge:]):
(-[WebCoreResourceHandleAsDelegate cancelAuthenticationChallenge:]):
* platform/network/mac/ResourceResponseMac.mm:
(WebCore::operator==):
2007-01-11 Geoffrey Garen <ggaren@apple.com>
Reviewed by Anders Carlsson.
Even more cleanup in preparation for fixing <rdar://problem/4608404>
WebScriptObject's _executionContext lack of ownership policy causes
crashes (e.g., in Dashcode)
Layout tests pass.
Renames:
findRootObjectForNativeHandleFunction => createRootObject
FindRootObjectForNativeHandleFunctionPtr => createRootObjectFunction
rootForView => createRootObject
getInstanceForView => getPluginInstanceForWidget
* page/mac/FrameMac.mm:
(WebCore::FrameMac::getAppletInstanceForWidget): Put the NSView * in a void*
variable named "nativeHandle" to be more explicit about the fact that JavaScript's
"nativeHandle" is just an NSView *.
(WebCore::getPluginInstanceForWidget): This function now does the NSView *
fetching that its callers used to do.
(WebCore::FrameMac::getEmbedInstanceForWidget): Updated for rename.
(WebCore::FrameMac::getObjectInstanceForWidget): ditto
* page/mac/WebCoreFrameBridge.mm: Killed the WebCoreBridgeInternal category,
which was really more of a shmategory.
(createRootObject): Removed rootObjectForView, folding it into its only
caller, the similarly named rootForView. Renamed the pair to "createRootObject"
because that's what they do.
(-[WebCoreFrameBridge init]): Updated for renames
2007-01-11 Anders Carlsson <acarlsson@apple.com>
Reviewed by Darin.
Fix crash on platforms that don't use the new loader yet.
* loader/DocLoader.cpp:
(WebCore::DocLoader::requestResource):
2007-01-11 Mitz Pettel <mitz@webkit.org>
Reviewed by Adam.
- fix http://bugs.webkit.org/show_bug.cgi?id=11449
Type-to-select in unopened popups doesn't work with Hebrew
Test: fast/forms/select-type-ahead-non-latin.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::defaultEventHandler): Changed locale-specific
isprint() condition to a Unicode isPrintableChar().
2007-01-09 Justin Garcia <justin.garcia@apple.com>
Reviewed by geoff
<rdar://problem/4889140>
GMail Editor: List creation fails in new message
* editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::doApply): Inserting the list
into an empty paragraph not held open by a br or a '\n',
will invalidate start and end. Insert a placeholder and
then recompute start and end.
2007-01-11 Lars Knoll <lars@trolltech.com>
Rubberstamped by Anders
This one is not needed any longer neither.
* ChangeLog:
* WebCore.pro:
* loader/qt/NavigationActionQt.cpp: Removed.
2007-01-11 Lars Knoll <lars@trolltech.com>
Reviewed by Anders
Remove now unused file
* WebCore.pro:
* loader/qt/LoaderFunctionsQt.cpp: Removed.
2007-01-11 David Kilzer <ddkilzer@webkit.org>
Reviewed by NOBODY (build fix).
* loader/mac/FrameLoaderMac.mm: Removed import of LoaderNSURLRequestExtras.h.
* loader/mac/SubresourceLoaderMac.mm: Ditto.
2007-01-11 George Staikos <staikos@kde.org>
Fix compile.
* page/qt/FrameQtClient.cpp:
2007-01-11 Anders Carlsson <acarlsson@apple.com>
Fix build.
* dom/XMLTokenizer.cpp:
* loader/CachedCSSStyleSheet.cpp:
* loader/CachedImage.cpp:
* loader/DocLoader.cpp:
* loader/loader.cpp:
* xml/XSLTProcessor.cpp:
* xml/xmlhttprequest.cpp:
2007-01-11 Anders Carlsson <acarlsson@apple.com>
Reviewed by Adam.
Loader cleanup, get rid of unused code.
* WebCore.xcodeproj/project.pbxproj:
* loader/CachedResource.h:
* loader/DocLoader.cpp:
(WebCore::DocLoader::requestResource):
(WebCore::DocLoader::checkCacheObjectStatus):
* loader/DocLoader.h:
* loader/LoaderFunctions.h: Removed.
* loader/mac/CachedResourceMac.mm: Removed.
* loader/mac/LoaderFunctionsMac.mm: Removed.
* loader/mac/LoaderNSURLRequestExtras.h: Removed.
* loader/mac/LoaderNSURLRequestExtras.m: Removed.
* loader/mac/SubresourceLoaderMac.mm:
* page/mac/WebCoreFrameBridge.mm:
* platform/network/ResourceHandle.cpp:
2007-01-11 Beth Dakin <bdakin@apple.com>
Reviewed by Adam.
Fix for http://bugs.webkit.org/show_bug.cgi?id=12135 REGRESSION:
<input> and <textarea> not focused on right click (4908884 in
Radar)
* page/EventHandler.cpp:
(WebCore::EventHandler::sendContextMenuEvent): Since WebcCore now
handles the context menu event, we want to ask if we *have*
swallowed the event instead of if we *haven't* when deciding to
perform a selection. In the past, WebKit handled the event, so
swallowEvent was false in the case where we want to pop up a menu.
2007-01-11 Darin Adler <darin@apple.com>
Reviewed by Anders.
- fix http://bugs.webkit.org/show_bug.cgi?id=12189
REGRESSION(r18614-18640): Crash in WebCore::SharedBuffer::hasPlatformData()
* loader/mac/LoaderFunctionsMac.mm: (WebCore::CheckCacheObjectStatus):
Added null check.
2007-01-11 Darin Adler <darin@apple.com>
* platform/CharacterNames.h: Oops! horizontalEllipsis != zeroWidthSpace!
2007-01-11 Lars Knoll <lars@trolltech.com>
Reviewed by Darin.
Start using the loader in the Qt port.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::clear):
(WebCore::FrameLoader::URL):
(WebCore::FrameLoader::createEmptyDocument):
* loader/qt/FrameLoaderQt.cpp:
(WebCore::FrameLoader::setTitle):
(WebCore::FrameLoader::originalRequestURL):
(WebCore::FrameLoader::referrer):
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
* page/qt/FrameQtClient.cpp:
(WebCore::FrameQtClient::openURL):
2007-01-11 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- removed a couple Mac bridging classes; put the code in WebKit instead
* WebCore.exp: Updated for new WebKit uses.
* WebCore.xcodeproj/project.pbxproj: Removed files.
* bridge/mac/WebCoreEncodings.h: Removed.
* bridge/mac/WebCoreEncodings.mm: Removed.
* bridge/mac/WebMimeTypeRegistryBridge.h: Removed.
* bridge/mac/WebMimeTypeRegistryBridge.mm: Removed.
* platform/mac/WebNSAttributedStringExtras.h: Removed.
* platform/mac/WebNSAttributedStringExtras.mm: Removed.
* platform/mac/PasteboardMac.mm:
(WebCore::stripAttachmentCharacters): Added. Moved code from
WebNSAttributedStringExtras.mm, and fixed a garbage collection problem
(a global with a plain old retain rather than HardRetain).
(WebCore::Pasteboard::writeSelection): Updated to use stripAttachmentCharacters.
- removed some DeprecatedCString use
* loader/FrameLoader.cpp: Changed to use String more to eliminate use of
DeprecatedCString here in the mailto form support. But maybe we can remove
this entirely. Do we really care about mailto forms any more?
* platform/Pasteboard.h: Removed unneeded DeprecatedCString declaration.
* platform/PlatformString.h: Added replace that takes two strings.
* platform/StringImpl.h: Ditto.
* platform/StringImpl.cpp: (WebCore::StringImpl::replace): Ditto.
* platform/TextStream.h: Remove DeprecatedCString case.
* platform/TextStream.cpp: Ditto.
- made a few more files use CharacterNames.h
* platform/CharacterNames.h: Added some more character names and
sorted alphabetically.
* bridge/mac/WebCoreStringTruncator.mm:
(centerTruncateToBuffer): Use character name from CharacterNames.h.
(rightTruncateToBuffer): Ditto.
(truncateString): Ditto.
* platform/mac/FontMac.mm: (WebCore::addDirectionalOverride): Ditto.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutVerticalBox): Ditto.
* rendering/bidi.cpp:
(WebCore::RenderBlock::checkLinesForTextOverflow): Ditto.
2007-01-11 David Hyatt <hyatt@apple.com>
Fix two bugs in positionForCoordinates. (Make it work when you have a margin in between your border and
your first child block.)
Rewrite column rebalancing to have two modes: constrained and unconstrained. In unconstrained mode,
the system will dynamically rebalance as it loses space to breaks and compute a final intrinsic height
for the overall block. In constrained mode, columns flow into the fixed height block, and extra columns
spill out horizontally in the appropriate direction (RTL/LTR).
Make columns work properly with both LTR and RTL overflow blocks.
Initial column test suite coming soon now that the basic layout is right.
Reviewed by darin
* rendering/RenderBlock.cpp:
(WebCore:::RenderFlow):
(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::paintColumns):
(WebCore::RenderBlock::lowestPosition):
(WebCore::RenderBlock::rightmostPosition):
(WebCore::RenderBlock::leftmostPosition):
(WebCore::RenderBlock::hitTestColumns):
(WebCore::RenderBlock::positionForCoordinates):
(WebCore::RenderBlock::availableWidth):
(WebCore::RenderBlock::calcColumnWidth):
(WebCore::RenderBlock::layoutColumns):
(WebCore::RenderBlock::adjustPointToColumnContents):
* rendering/RenderBlock.h:
(WebCore::RenderBlock::hasColumns):
2007-01-10 Rob Buis <buis@kde.org>
Reviewed by Eric.
http://bugs.webkit.org/show_bug.cgi?id=12201
Fix image dragging issues with http://www.carto.net/papers/svg/gui/scrollbar/index.svg
Fix calculation of absolute transform so that viewport x,y
translation is always done, also when viewBox is set.
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::paint):
(WebCore::RenderSVGContainer::viewportTransform):
(WebCore::RenderSVGContainer::absoluteTransform):
2007-01-10 David Hyatt <hyatt@apple.com>
Rework positionForCoordinates to be more efficient and to handle multi-column content. This entailed
adding a new field to HitTestResult called localPoint that cached the mouse coordinate in the coordinate
space of the renderer.
positionForCoordinates now takes local coordinates and so no longer needs to waste time recomputing
absolute positions over and over again.
Reviewed by darin
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject value]):
(-[WebCoreAXObject doAXTextMarkerRangeForLine:]):
(-[WebCoreAXObject doAXTextMarkerForPosition:]):
* dom/Document.cpp:
(WebCore::Document::prepareMouseEvent):
* editing/SelectionController.cpp:
(WebCore::SelectionController::contains):
* editing/visible_units.cpp:
(WebCore::previousLinePosition):
(WebCore::nextLinePosition):
* page/EventHandler.cpp:
(WebCore::EventHandler::selectClosestWordFromMouseEvent):
(WebCore::EventHandler::handleMousePressEventDoubleClick):
(WebCore::EventHandler::handleMousePressEventTripleClick):
(WebCore::EventHandler::handleMousePressEventSingleClick):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::sendContextMenuEvent):
* page/EventHandler.h:
* page/MouseEventWithHitTestResults.cpp:
(WebCore::MouseEventWithHitTestResults::MouseEventWithHitTestResults):
* page/MouseEventWithHitTestResults.h:
(WebCore::MouseEventWithHitTestResults::localPoint):
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge _visiblePositionForPoint:]):
* rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::nodeAtPoint):
* rendering/HitTestResult.h:
(WebCore::HitTestResult::localPoint):
(WebCore::HitTestResult::setLocalPoint):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::nodeAtPoint):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::nodeAtPoint):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::nodeAtPoint):
(WebCore::RenderBlock::hitTestContents):
(WebCore::RenderBlock::positionForCoordinates):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::nodeAtPoint):
* rendering/RenderContainer.cpp:
(WebCore::RenderContainer::positionForCoordinates):
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::hitTestLines):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::positionForCoordinates):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::autoscroll):
(WebCore::RenderLayer::hitTestLayer):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::updateHitTestResult):
* rendering/RenderObject.h:
* rendering/RenderPath.cpp:
(WebCore::RenderPath::nodeAtPoint):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::positionForCoordinates):
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::nodeAtPoint):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::nodeAtPoint):
* rendering/RenderText.cpp:
(WebCore::RenderText::positionForCoordinates):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::nodeAtPoint):
(WebCore::RootInlineBox::closestLeafChildForXPos):
* rendering/RootInlineBox.h:
2007-01-11 George Staikos <staikos@kde.org>
Reviewed by Maciej.
Fix Qt Build.
* loader/qt/DocumentLoaderQt.cpp:
(WebCore::DocumentLoader::getResponseModifiedHeader):
2007-01-10 Kirby White <KWhiteRight@gmail.com>
Reviewed by Darin.
Fixes for http://bugs.webkit.org/show_bug.cgi?id=11841
Set image size to fit alt text when image or input-image element
has no src attribute, so that those images show their alt text instead
of showing nothing at all.
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::attach):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::attach):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::setImageSizeForAltText):
(WebCore::RenderImage::imageChanged):
* rendering/RenderImage.h:
2007-01-11 Mark Rowe <mrowe@apple.com>
Build fix.
* rendering/RenderView.cpp:
(WebCore::RenderView::printing):
2007-01-10 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=9284
Quirksmode (CSS1): Removing inline border styles is impossible
Test: fast/css/remove-shorthand.html
* css/CSSMutableStyleDeclaration.cpp:
(WebCore::PropertyLonghand::PropertyLonghand): Added this structure
containing a pointer to an array if properties and the array's length.
(WebCore::PropertyLonghand::properties):
(WebCore::PropertyLonghand::length):
(WebCore::initShorthandMap): Initialize the mapping from shorthand
properties to their dependent properties.
(WebCore::CSSMutableStyleDeclaration::removeProperty): Changed to check
if the property being removed is a shorthand, and if so, to remove all
of its dependent properties.
(WebCore::CSSMutableStyleDeclaration::removePropertiesInSet): Added a
'notifyChanged' boolean parameter which controls whether this method
calls setChanged() if it actually removes any property.
* css/CSSMutableStyleDeclaration.h:
2007-01-10 Steve Falkenburg <sfalken@apple.com>
Reviewed by Kevin.
Removed unnecessary printing state
* page/FrameView.cpp:
(WebCore::FrameView::layout):
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge forceLayoutAdjustingViewSize:]):
(-[WebCoreFrameBridge forceLayoutWithMinimumPageWidth:maximumPageWidth:adjustingViewSize:]):
(-[WebCoreFrameBridge drawRect:]):
(-[WebCoreFrameBridge computePageRectsWithPrintWidthScaleFactor:printHeight:]):
(-[WebCoreFrameBridge adjustPageHeightNew:top:bottom:limit:]):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::repaint):
(WebCore::RenderObject::repaintRectangle):
(WebCore::RenderObject::repaintAfterLayoutIfNeeded):
* rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
(WebCore::RenderView::calcHeight):
(WebCore::RenderView::calcWidth):
(WebCore::RenderView::layout):
(WebCore::RenderView::paint):
(WebCore::RenderView::repaintViewRectangle):
(WebCore::RenderView::computeAbsoluteRepaintRect):
(WebCore::RenderView::printing):
(WebCore::RenderView::viewRect):
(WebCore::RenderView::docHeight):
(WebCore::RenderView::docWidth):
* rendering/RenderView.h:
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::updateWidgetPosition):
* rendering/bidi.cpp:
(WebCore::RenderBlock::layoutInlineChildren):
2007-01-10 Anders Carlsson <acarlsson@apple.com>
Reviewed by Maciej.
Get the Refresh header directly from the ResourceResponse.
* loader/DocumentLoader.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::commitProvisionalLoad):
* loader/mac/DocumentLoaderMac.mm:
(WebCore::DocumentLoader::getResponseModifiedHeader):
2007-01-10 Beth Dakin <bdakin@apple.com>
Reviewed by John.
Fix for <rdar://problem/4914258> REGRESSION: Search in Google now
operates on the current WebView instead of invoking Safari's
service
* page/ContextMenuClient.h: New call to the client to search in
google.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected): Call
into the client instead of forming a new url string and loading it.
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyContextMenuClient::searchWithGoogle): New call.
2007-01-10 Adam Roben <aroben@apple.com>
Rubberstamped by Darin.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected): Pass 0
instead of an empty Event to FrameLoader::load and
FrameLoader::urlSelected.
2007-01-10 Anders Carlsson <acarlsson@apple.com>
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::~ResourceLoader):
Disable assertion (I forgot to do this even though I added the comment!)
2007-01-10 Ross Burton <ross@burtonini.com>
Reviewed and landed by Anders.
Fix case in vcproj file (the GTK+ port uses the vcproj file).
* WebCore.vcproj/WebCore/WebCore.vcproj:
2007-01-10 Lars Knoll <lars@trolltech.com>
Make the Qt build compile again after
the ResourceLoader was made platform
independent.
* WebCore.pro:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didFirstLayout):
* loader/qt/FrameLoaderQt.cpp:
* loader/qt/MainResourceLoaderQt.cpp: Removed.
* loader/qt/ResourceLoaderQt.cpp: Removed.
* page/qt/FrameQtClient.cpp:
(WebCore::FrameQtClient::openURL):
* platform/network/qt/ResourceHandleQt.cpp:
(WebCore::ResourceHandle::setDefersLoading):
2007-01-10 Anders Carlsson <acarlsson@apple.com>
Rubber-stamped by Maciej.
Move most of ResourceLoader and MainResourceLoader into the platform-independent files.
* WebCore.xcodeproj/project.pbxproj:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didFinishLoad):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::MainResourceLoader):
(WebCore::MainResourceLoader::~MainResourceLoader):
(WebCore::MainResourceLoader::create):
(WebCore::MainResourceLoader::receivedError):
(WebCore::MainResourceLoader::didCancel):
(WebCore::MainResourceLoader::interruptionForPolicyChangeError):
(WebCore::MainResourceLoader::stopLoadingForPolicyChange):
(WebCore::MainResourceLoader::callContinueAfterNavigationPolicy):
(WebCore::MainResourceLoader::continueAfterNavigationPolicy):
(WebCore::MainResourceLoader::isPostOrRedirectAfterPost):
(WebCore::MainResourceLoader::addData):
(WebCore::MainResourceLoader::willSendRequest):
(WebCore::shouldLoadAsEmptyDocument):
(WebCore::MainResourceLoader::continueAfterContentPolicy):
(WebCore::MainResourceLoader::callContinueAfterContentPolicy):
(WebCore::MainResourceLoader::didReceiveResponse):
(WebCore::MainResourceLoader::didReceiveData):
(WebCore::MainResourceLoader::didFinishLoading):
(WebCore::MainResourceLoader::didFail):
(WebCore::MainResourceLoader::loadNow):
(WebCore::MainResourceLoader::load):
(WebCore::MainResourceLoader::setDefersLoading):
* loader/MainResourceLoader.h:
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::ResourceLoader):
(WebCore::ResourceLoader::~ResourceLoader):
(WebCore::ResourceLoader::releaseResources):
(WebCore::ResourceLoader::load):
(WebCore::ResourceLoader::setDefersLoading):
(WebCore::ResourceLoader::frameLoader):
(WebCore::ResourceLoader::addData):
(WebCore::ResourceLoader::clearResourceData):
(WebCore::ResourceLoader::willSendRequest):
(WebCore::ResourceLoader::didReceiveResponse):
(WebCore::ResourceLoader::didReceiveData):
(WebCore::ResourceLoader::willStopBufferingData):
(WebCore::ResourceLoader::didFinishLoading):
(WebCore::ResourceLoader::didFinishLoadingOnePart):
(WebCore::ResourceLoader::didFail):
(WebCore::ResourceLoader::didCancel):
(WebCore::ResourceLoader::cancel):
(WebCore::ResourceLoader::response):
(WebCore::ResourceLoader::cancelledError):
* loader/ResourceLoader.h:
(WebCore::ResourceLoader::willStopBufferingData):
(WebCore::ResourceLoader::setRequest):
* loader/mac/FrameLoaderMac.mm:
* loader/mac/MainResourceLoaderMac.mm: Removed.
* loader/mac/ResourceLoaderMac.mm:
2007-01-10 Lars Knoll <lars@trolltech.com>
Move files to the correct location,
and remove a few unused methods from
LoaderFunctionsQt.cpp
* WebCore.pro:
* loader/qt/LoaderFunctionsQt.cpp: Added.
(WebCore::CheckCacheObjectStatus):
* page/qt/FrameQt.cpp: Added.
(WebCore::doScroll):
(WebCore::FrameQt::FrameQt):
(WebCore::FrameQt::~FrameQt):
(WebCore::FrameQt::passMouseDownEventToWidget):
(WebCore::FrameQt::isLoadTypeReload):
(WebCore::FrameQt::markedTextRange):
(WebCore::FrameQt::mimeTypeForFileName):
(WebCore::FrameQt::unfocusWindow):
(WebCore::FrameQt::focusWindow):
(WebCore::FrameQt::getEmbedInstanceForWidget):
(WebCore::FrameQt::getObjectInstanceForWidget):
(WebCore::FrameQt::getAppletInstanceForWidget):
(WebCore::FrameQt::issueCutCommand):
(WebCore::FrameQt::issueCopyCommand):
(WebCore::FrameQt::issuePasteCommand):
(WebCore::FrameQt::issuePasteAndMatchStyleCommand):
(WebCore::FrameQt::issueTransposeCommand):
(WebCore::FrameQt::respondToChangedSelection):
(WebCore::FrameQt::shouldChangeSelection):
(WebCore::FrameQt::print):
(WebCore::FrameQt::shouldInterruptJavaScript):
(WebCore::FrameQt::keyEvent):
(WebCore::FrameQt::setFrameGeometry):
(WebCore::FrameQt::client):
(WebCore::FrameQt::createNewWindow):
(WebCore::FrameQt::goBackOrForward):
(WebCore::FrameQt::historyURL):
(WebCore::FrameQt::runJavaScriptAlert):
(WebCore::FrameQt::runJavaScriptConfirm):
(WebCore::FrameQt::runJavaScriptPrompt):
(WebCore::FrameQt::bindingRootObject):
(WebCore::FrameQt::addPluginRootObject):
* page/qt/FrameQt.h: Added.
(WebCore::QtFrame):
* page/qt/FrameQtClient.cpp: Added.
(WebCore::FrameQtClient::FrameQtClient):
(WebCore::FrameQtClient::~FrameQtClient):
(WebCore::FrameQtClient::setFrame):
(WebCore::FrameQtClient::openURL):
(WebCore::FrameQtClient::submitForm):
(WebCore::FrameQtClient::didReceiveResponse):
(WebCore::FrameQtClient::didFinishLoading):
(WebCore::FrameQtClient::didFail):
(WebCore::FrameQtClient::didReceiveData):
(WebCore::FrameQtClient::traverseNextFrameStayWithin):
(WebCore::numRequests):
(WebCore::FrameQtClient::numPendingOrLoadingRequests):
* page/qt/FrameQtClient.h: Added.
* platform/qt/FrameQt.cpp: Removed.
* platform/qt/FrameQt.h: Removed.
* platform/qt/FrameQtClient.cpp: Removed.
* platform/qt/FrameQtClient.h: Removed.
* platform/qt/LoaderFunctionsQt.cpp: Removed.
2007-01-10 Adam Roben <aroben@apple.com>
Reviewed by Geoff.
Fix: <rdar://problem/4917054> ContextMenuController leaks Events
No layout tests possible.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected): Use RefPtr
to manage the lifetime of Shared objects.
2007-01-10 Rob Buis <buis@kde.org>
Reviewed by Sam.
http://bugs.webkit.org/show_bug.cgi?id=12196
SVGPatternElement should not be locatable
Replace SVGStyledLocatableElement derivation with
SVGStyledElement.
* ksvg2/svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::SVGPatternElement):
* ksvg2/svg/SVGPatternElement.h:
2007-01-10 Nikolas Zimmermann <zimmermann@kde.org>
Build fix, not reviewed.
* rendering/RenderSVGText.cpp: Use correct method name.
(WebCore::RenderSVGText::relativeBBox):
2007-01-10 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Eric.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=10262 (SVG fails to redraw top 20 pixels)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=10263 (SVG seems to repaint way too many times during load)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=10404 (Invalidation issues with text skew)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=10407 (bad SVG text invalidation issues on mouseover/mouseout)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=10806 (failing manual-tests/svg-repaint-group.svg)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=10913 (SVG charts from plotkit fail to render unless you scroll them offscreen)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=10964 (inclusion of svg into svg leave a ghost invisible rectangle)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=11680 (DojoKit SVG test chart fails to render (clipping issue?))
Fixes: http://bugs.webkit.org/show_bug.cgi?id=11883 (SVG Text has updating/repainting issues)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=11907 (RenderSVGContainer does not mark itself for repaint after setting viewBox, slice or align)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=11913 (Invalidation issues in SVG javascript-based animation example)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=11979 (SVG text does not respect font-size scaling in bbox calculation)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=11984 (SVG <text> does not calculate the correct absoluteRepaintRect)
Partly fixes: http://bugs.webkit.org/show_bug.cgi?id=10745 (SVG layout needs to move out of DOM and into rendering tree during layout() call)
Fixes text redrawing issues seen in svg/carto.net (when actually playing with those files, manually)
Fixes svg/carto.net/window.svg (moving "Navigation Window" caused artefacts)
Fixes svg/W3C-SVG-1.1/types-basicDOM-01-b.svg (bbox calculations had one pixel offset)
Large SVG dynamic update rework/optimization. Also fixes SVG printing.
Rename updateCanvasItem() to rebuildRenderer(), as this is what it really does.
Do NOT call rebuildRenderer() in notifyAttributeChange() anymore,
but override notifyAttributeChange() in SVGPathElement/SVGCircleElement/etc..
(as only primitives using RenderPath as rendering object need this logic!)
This should clarify what really happens, as discussed with Eric.
Remove the invocations of notifyAttributeChange() in SVGLength. It's already
handled by the JS bindings, and we do double updating work. Fixed.
Because SVG dynamic updates have been flaky in the past, there was a hack introduced
in RenderPath causing the updateCanvasItem() function to be called _on every layout_ (!!!).
Finally this hack is gone. Offer RenderSVGContainer::absoluteRects() function to be able
to use WebInspector for <g> elements (very handy!).
Remove the unneeded "m_updateVectorial" bool from SVGStyledElement.
Remove computeAbsoluteRepaintRect() from RenderSVGContainer/RenderSVGImage/RenderSVGText,
as dicussed with David (we only need to reimplement getAbsoluteRepaintRect there).
Make RenderSVGText::absoluteRects just use the getAbsoluteRepaintRect() function, instead of
code duplication. Remove unneeded RenderSVGImage::layout() function (RenderImage does the same).
Add new function SVGStyledElement::renderStyleForElement, which centralizes the manual style
resolving needed for gradient stops.
* ksvg2/svg/SVGCircleElement.cpp:
(WebCore::SVGCircleElement::notifyAttributeChange):
(WebCore::SVGCircleElement::hasRelativeValues):
* ksvg2/svg/SVGCircleElement.h:
* ksvg2/svg/SVGEllipseElement.cpp:
(WebCore::SVGEllipseElement::notifyAttributeChange):
(WebCore::SVGEllipseElement::hasRelativeValues):
* ksvg2/svg/SVGEllipseElement.h:
* ksvg2/svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::notifyAttributeChange):
* ksvg2/svg/SVGImageElement.h:
* ksvg2/svg/SVGLength.cpp:
(WebCore::SVGLength::setValue):
(WebCore::SVGLength::setValueInSpecifiedUnits):
* ksvg2/svg/SVGLength.h:
(WebCore::SVGLength::isRelative):
* ksvg2/svg/SVGLineElement.cpp:
(WebCore::SVGLineElement::notifyAttributeChange):
(WebCore::SVGLineElement::hasRelativeValues):
* ksvg2/svg/SVGLineElement.h:
* ksvg2/svg/SVGLocatable.cpp:
(WebCore::SVGLocatable::getBBox):
* ksvg2/svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::notifyAttributeChange):
* ksvg2/svg/SVGPathElement.h:
* ksvg2/svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::notifyAttributeChange):
* ksvg2/svg/SVGPolyElement.h:
(WebCore::SVGPolyElement::rendererIsNeeded):
* ksvg2/svg/SVGRectElement.cpp:
(WebCore::SVGRectElement::notifyAttributeChange):
(WebCore::SVGRectElement::hasRelativeValues):
* ksvg2/svg/SVGRectElement.h:
* ksvg2/svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::hasRelativeValues):
* ksvg2/svg/SVGSVGElement.h:
* ksvg2/svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::SVGStyledElement):
(WebCore::SVGStyledElement::createRenderer):
(WebCore::SVGStyledElement::notifyAttributeChange):
(WebCore::SVGStyledElement::rebuildRenderer):
* ksvg2/svg/SVGStyledElement.h:
(WebCore::SVGStyledElement::hasRelativeValues):
* rendering/RenderPath.cpp:
(WebCore::RenderPath::setLocalTransform):
(WebCore::RenderPath::fillContains):
(WebCore::RenderPath::relativeBBox):
(WebCore::RenderPath::layout):
(WebCore::RenderPath::getAbsoluteRepaintRect):
(WebCore::RenderPath::paint):
(WebCore::RenderPath::nodeAtPoint):
(WebCore::drawMarkerWithData):
(WebCore::updateMarkerDataForElement):
(WebCore::drawStartAndMidMarkers):
(WebCore::RenderPath::drawMarkersIfNeeded):
(WebCore::RenderPath::hasRelativeValues):
* rendering/RenderPath.h:
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::layout):
(WebCore::RenderSVGContainer::paint):
(WebCore::RenderSVGContainer::calcViewport):
(WebCore::RenderSVGContainer::setViewBox):
(WebCore::RenderSVGContainer::setAlign):
(WebCore::RenderSVGContainer::viewportTransform):
(WebCore::RenderSVGContainer::getAbsoluteRepaintRect):
(WebCore::RenderSVGContainer::absoluteRects):
(WebCore::RenderSVGContainer::fillContains):
(WebCore::RenderSVGContainer::strokeContains):
(WebCore::RenderSVGContainer::relativeBBox):
(WebCore::RenderSVGContainer::setSlice):
* rendering/RenderSVGContainer.h:
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::RenderSVGImage):
(WebCore::RenderSVGImage::adjustRectsForAspectRatio):
(WebCore::RenderSVGImage::relativeBBox):
(WebCore::RenderSVGImage::imageChanged):
(WebCore::RenderSVGImage::getAbsoluteRepaintRect):
(WebCore::RenderSVGImage::absoluteRects):
* rendering/RenderSVGImage.h:
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::getAbsoluteRepaintRect):
(WebCore::RenderSVGText::layout):
(WebCore::RenderSVGText::createInlineBox):
(WebCore::RenderSVGText::absoluteRects):
(WebCore::RenderSVGText::relativeBBox):
* rendering/RenderSVGText.h:
* rendering/SVGInlineFlowBox.cpp:
(WebCore::placePositionedBoxesHorizontally):
2007-01-10 David Hyatt <hyatt@apple.com>
Make the selectionRect() method of RenderText better by reusing computeAbsoluteRepaintRect. This enables
the method to be multi-column aware and also to understand when the selection is clipped out by overflow.
Reviewed by bdash
* rendering/RenderText.cpp:
(WebCore::RenderText::selectionRect):
2007-01-10 David Hyatt <hyatt@apple.com>
Make the absolutePosition method multi-column aware. Note that there is now a real problem with the
absoluteRects method, since an object can split across multiple columns and break into multiple rects.
absolutePosition just returns the top-left corner of the element's box in the first column in which it
appears.
Reviewed by bdash
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::adjustRectForColumns):
* rendering/RenderBlock.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::absolutePosition):
(WebCore::RenderBox::computeAbsoluteRepaintRect):
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::getAbsoluteRepaintRect):
2007-01-09 David Hyatt <hyatt@apple.com>
Avoid crashing when repainting multiple columns... make sure to use the current vector's size and
not the newly-computed column count.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutColumns):
(WebCore::RenderBlock::adjustRepaintRectForColumns):
2007-01-09 David Hyatt <hyatt@apple.com>
Break up painting and hit testing of children into helper methods and add multi-column versions for both.
Make incremental repainting able to invalidate the right spot in multiple column layouts so that e.g., link
hover works.
Turn off selection gap filling in columns for now until it can be made to work correctly.
Improve the column balancing heuristic by adding in the block's lineHeight/2 to each column initially to
account for column break adjustments that shrink the columns slightly. Avoid clipping of the last column's
contents by ensuring it gets all the remaining available height.
Reviewed by mitz
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintColumns):
(WebCore::RenderBlock::paintContents):
(WebCore::RenderBlock::paintObject):
(WebCore::RenderBlock::fillSelectionGaps):
(WebCore::RenderBlock::nodeAtPoint):
(WebCore::RenderBlock::hitTestColumns):
(WebCore::RenderBlock::layoutColumns):
(WebCore::RenderBlock::adjustRepaintRectForColumns):
* rendering/RenderBlock.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeAbsoluteRepaintRect):
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::getAbsoluteRepaintRect):
2007-01-09 Remi Zara <remi_zara@mac.com>
Reviewed by Darin and Eric.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12150
Don't use memset to set float to 0
* platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
(WebCore::cgGradientCallback):
2007-01-09 Anders Carlsson <acarlsson@apple.com>
Reviewed by Brady.
Add default constructor to SharedBuffer.
* platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::SharedBuffer):
* platform/SharedBuffer.h:
2007-01-09 David Hyatt <hyatt@apple.com>
This patch gets rudimentary column layout working. Normal flow content only gets laid out into
columns properly and painted correctly initially. What doesn't work: hit testing, incremental repainting,
column rule painting, child layers.
Some work needs to be done on the render tree dumper before column tests will be
meaningful.
Also reworked overflow and fixed a bunch of bugs with the computation of overflow. These include an error
in the height calculations caused by not adding in the horizontal scrollbar height and other errors caused
by not checking overflow in lowest/rightmostPosition. Existing tests improve their rendering to match
Firefox with this change.
Fixed a bug where a table cell incorrectly expanded to encompass floats inside an overflow:auto block.
This should not have happened. Covered by new test fast/overflow/table-overflow-float.html.
Reviewed by mitz
* page/Frame.cpp:
* rendering/RenderBlock.cpp:
(WebCore:::RenderFlow):
(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::paintContents):
(WebCore::RenderBlock::paintChildren):
(WebCore::RenderBlock::paintObject):
(WebCore::RenderBlock::lowestPosition):
(WebCore::RenderBlock::rightmostPosition):
(WebCore::RenderBlock::leftmostPosition):
(WebCore::RenderBlock::avoidsFloats):
(WebCore::RenderBlock::nodeAtPoint):
(WebCore::RenderBlock::hitTestContents):
(WebCore::RenderBlock::layoutColumns):
* rendering/RenderBlock.h:
(WebCore::RenderBlock::hasOverhangingFloats):
(WebCore::RenderBlock::hasColumns):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
(WebCore::RenderFlexibleBox::layoutHorizontalBox):
(WebCore::RenderFlexibleBox::layoutVerticalBox):
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::paintLines):
(WebCore::RenderFlow::lowestPosition):
(WebCore::RenderFlow::rightmostPosition):
(WebCore::RenderFlow::leftmostPosition):
* rendering/RenderFlow.h:
(WebCore::RenderFlow::hasColumns):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::paint):
* rendering/RenderObject.h:
(WebCore::RenderObject::expandsToEncloseOverflow):
* rendering/RenderTableCell.h:
(WebCore::RenderTableCell::expandsToEncloseOverflow):
* rendering/RenderView.cpp:
(WebCore::RenderView::paint):
2007-01-09 Darin Adler <darin@apple.com>
- update all 2007 Apple copyrights for the new company name
* css/cssstyleselector.cpp:
* html/HTMLLIElement.cpp:
* platform/CharacterNames.h:
* platform/TextBreakIterator.h:
* platform/TextBreakIteratorICU.cpp:
* platform/graphics/ImageBuffer.h:
* rendering/CounterNode.cpp:
* rendering/CounterNode.h:
* rendering/RenderBox.h:
* rendering/RenderContainer.cpp:
* rendering/RenderCounter.cpp:
* rendering/RenderCounter.h:
* rendering/RenderImage.h:
* rendering/RenderListItem.h:
* rendering/RenderListMarker.h:
* rendering/RenderObject.cpp:
* rendering/RenderObject.h:
* rendering/RenderStyle.cpp:
* rendering/RenderStyle.h:
* rendering/RenderTable.cpp:
* rendering/RenderTableCell.cpp:
* rendering/RenderTableCell.h:
* rendering/RenderText.cpp:
* rendering/RenderText.h:
* rendering/RenderTreeAsText.cpp:
* rendering/SVGRenderTreeAsText.cpp:
* rendering/break_lines.cpp:
2007-01-09 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/4840662>
REGRESSION: Mail crash when dragging text into a link
moveParagraphs fails to move content into a display:block
anchor because of code in positionAvoidingSpecialElementBoundary,
and so it infinitely recurs.
* editing/htmlediting.cpp:
(WebCore::positionAvoidingSpecialElementBoundary): Don't avoid anchors
that have display:block so that content is inserted in the expected
paragraph. This fixes the bug and weird behavior when typing before/after
anchors with display:block.
2007-01-09 Rob Buis <buis@kde.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12145
Color parsing is too relaxed in strict mode
http://bugs.webkit.org/show_bug.cgi?id=12166
REGRESSION (r18480): "336633" is not parsed as a color
Fix a regression by using String::format return value.
Also make strict mode more strict for cases where hexcolors
lack a #.
* css/cssparser.cpp:
(WebCore::CSSParser::parseColor):
(WebCore::CSSParser::parseColorFromValue):
* css/cssparser.h:
2007-01-09 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fixed regression where redirects did not have user-agent any more
Showed up as a failure in one of the http tests, so no new test needed.
* loader/mac/ResourceLoaderMac.mm: (WebCore::ResourceLoader::willSendRequest):
Don't use a copy of the ResourceRequest; pass the original so it can be modified.
2007-01-09 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=11078
Forms Don't Submit (ASP Pages)
Test: fast/dom/collection-namedItem-via-item.html
* bindings/js/kjs_html.cpp:
(KJS::JSHTMLCollectionProtoFunc::callAsFunction): Changed item() to fall back
to namedItem() if its argument does not convert to a number.
2007-01-09 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=12174
improve Unicode use (less WTF::Unicode:: prefix, centralized character names)
- got rid of namespace prefixes from most uses of WTF::Unicode
- updated for removal of WTF::Unicode::memcmp
- updated for renaming of WTF::Unicode::strcasecmp to umemcasecmp.
- unified constants for special Unicode characters in a new
CharacterNames.h header
* WebCore.xcodeproj/project.pbxproj:
* css/cssparser.cpp:
(WebCore::ParseString::lower):
* dom/Document.cpp:
(WebCore::isValidNameStart):
(WebCore::isValidNamePart):
* dom/Position.cpp:
(WebCore::Position::leadingWhitespacePosition):
(WebCore::Position::trailingWhitespacePosition):
* editing/CompositeEditCommand.cpp:
(WebCore::isWhitespace):
* editing/HTMLInterchange.cpp:
* editing/TextIterator.cpp:
(WebCore::CircularSearchBuffer::CircularSearchBuffer):
(WebCore::CircularSearchBuffer::append):
* editing/htmlediting.cpp:
(WebCore::stringWithRebalancedWhitespace):
(WebCore::nonBreakingSpaceString):
* editing/htmlediting.h:
* html/HTMLFontElement.cpp:
(WebCore::parseFontSizeNumber):
* html/HTMLParser.cpp:
(WebCore::HTMLParser::handleError):
* html/HTMLSelectElement.cpp:
(WebCore::stripLeadingWhiteSpace):
* platform/Font.cpp:
(WebCore::WidthIterator::advance):
(WebCore::WidthIterator::normalizeVoicingMarks):
* platform/GlyphMap.cpp:
(WebCore::GlyphMap::locatePage):
* platform/MimeTypeRegistry.h:
* platform/StringHash.h:
* platform/StringImpl.cpp:
(WebCore::isSpace):
(WebCore::StringImpl::append):
(WebCore::StringImpl::insert):
(WebCore::StringImpl::truncate):
(WebCore::StringImpl::remove):
(WebCore::parseLength):
(WebCore::StringImpl::isLower):
(WebCore::StringImpl::lower):
(WebCore::StringImpl::upper):
(WebCore::StringImpl::secure):
(WebCore::StringImpl::foldCase):
(WebCore::StringImpl::capitalize):t
(WebCore::StringImpl::toInt):
(WebCore::equalIgnoringCase):
(WebCore::StringImpl::find):
* platform/TextBoundaries.h:
* platform/TextCodec.h:
* platform/TextCodecLatin1.cpp:
* platform/TextEncoding.h:
* platform/TextEncodingRegistry.h:
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::writeSelection):
* platform/mac/TextCodecMac.cpp:
(WebCore::TextCodecMac::decode):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateFirstLetter):
* rendering/RenderListMarker.cpp:
(WebCore::listMarkerText):
(WebCore::RenderListMarker::paint):
* rendering/RenderText.cpp:
(WebCore::RenderText::widthFromCache):
(WebCore::isSpaceAccordingToStyle):
(WebCore::RenderText::setInternalString):
* rendering/RenderTreeAsText.cpp:
(WebCore::quoteAndEscapeNonPrintables):
(WebCore::operator<<):
* rendering/bidi.cpp:
(WebCore::BidiState::BidiState):
(WebCore::BidiContext::BidiContext):
(WebCore::bidiNext):
(WebCore::bidiFirst):
(WebCore::BidiIterator::direction):
(WebCore::appendRun):
(WebCore::embed):
(WebCore::RenderBlock::bidiReorderLine):
(WebCore::RenderBlock::layoutInlineChildren):
(WebCore::skipNonBreakingSpace):
(WebCore::RenderBlock::findNextLineBreak):
* rendering/break_lines.cpp:
(WebCore::nextBreakablePosition):
* rendering/break_lines.h:
* xml/XPathParser.cpp:
(WebCore::XPath::charCat):
2007-01-09 Dex Deacon <occupant4@gmail.com>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12170
RenderView holds dangling reference to RenderObjects as selection markers
This fixes the crash seen on Windows -- the underlying problem
may still exist.
* rendering/RenderText.h:
(WebCore::RenderText::selectionState):
Change the m_selectionState enum-bitfield to an unsigned-bitfield,
because enums on Windows are signed, which caused it to become
negative (whereas the valid values are all positive).
2007-01-09 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- http://bugs.webkit.org/show_bug.cgi?id=12175
port break_lines.cpp to be platform independent
* platform/TextBreakIterator.h: Added lineBreakIterator.
Removed ICU-specific stuff from the header.
* platform/TextBreakIteratorICU.cpp:
(WebCore::setUpIterator): Added helper to be shared by the three different
creation functions.
(WebCore::characterBreakIterator): Changed to use setUpIterator.
(WebCore::wordBreakIterator): Ditto.
(WebCore::lineBreakIterator): Added.
* platform/qt/TextBreakIteratorQt.cpp:
(WebCore::lineBreakIterator): Added a stub.
* rendering/break_lines.cpp:
(WebCore::isBreakableSpace): Added.
(WebCore::shouldBreakAfter): Added.
(WebCore::needsAdvancedBreakAnalysis): Added.
(WebCore::nextBreakablePosition): Changed to use TextBreakIterator on platforms
other than Mac.
2007-01-09 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin.
- move WebDataProtocol load handling from ResourceLoader to MainResourceLoader
(it's only ever used for main resources)
* loader/ResourceLoader.h:
(WebCore::ResourceLoader::setRequest):
* loader/mac/MainResourceLoaderMac.mm:
(WebCore::MainResourceLoader::willSendRequest):
(WebCore::MainResourceLoader::continueAfterContentPolicy):
* loader/mac/ResourceLoaderMac.mm:
(WebCore::ResourceLoader::willSendRequest):
(WebCore::ResourceLoader::didReceiveResponse):
2007-01-09 Rob Buis <buis@kde.org>
Reviewed by Eric.
http://bugs.webkit.org/show_bug.cgi?id=12129
repaint issue after setting viewBox attribute with ECMAScript
Make sure RenderSVGContainer updates after setting viewBox from js.
* ksvg2/svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::parseMappedAttribute):
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::setViewBox):
2007-01-09 Lars Knoll <lars@trolltech.com>
Make the Qt build compile... again!
* WebCore.pro:
* loader/qt/FrameLoaderQt.cpp:
* platform/graphics/qt/GraphicsContextQt.cpp:
* platform/graphics/qt/ImageBufferQt.cpp:
(WebCore::ImageBuffer::create):
* platform/qt/WidgetQt.cpp:
(WebCore::Widget::focusPolicy):
2007-01-09 David Hyatt <hyatt@apple.com>
Fix for background: inherit bug where background-color wasn't getting properly overridden. This was a
regression from Safari 1.3 to 2.0.
Reviewed by bdash
fast/backgrounds/background-color-inherit-bug.html
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
2007-01-08 Brady Eidson <beidson@apple.com>
Reviewed by Brian Dash
<rdar://problem/4895178>
WebCore::BackForwardList vector should be backed by a HashSet to remove
the potential expense in frequently calling BackForwardList::containsItem()
* history/BackForwardList.cpp:
(WebCore::BackForwardList::addItem): Maintain HashSet as well as Vector
(WebCore::BackForwardList::setCapacity): Ditto
(WebCore::BackForwardList::close): Ditto
(WebCore::BackForwardList::removeItem): Ditto
(WebCore::BackForwardList::containsItem): Make a hash lookup instead of iterate
through the Vector
* history/BackForwardList.h:
2007-01-08 David Hyatt <hyatt@apple.com>
Fix a regression where layout is triggering on all recalcStyles, due to a bad comparison
in the multicol assignment operator.
* rendering/RenderStyle.cpp:
(WebCore::StyleMultiColData::operator==):
2007-01-08 Darin Adler <darin@apple.com>
- rolled out Beth's RenderFlow::destroy change, which broke 5 editing tests
* rendering/InlineBox.cpp: (WebCore::InlineBox::root):
* rendering/RenderFlow.cpp: (WebCore::RenderFlow::destroy):
Used svn merge to roll the change out.
2007-01-09 Mark Rowe <mrowe@apple.com>
Reviewed by Tim H.
Build fix for 64-bit platforms.
* platform/graphics/svg/SVGPaintServerGradient.h:
* platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
(WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
2007-01-08 Anders Carlsson <acarlsson@apple.com>
Reviewed by Brady.
Move some history related functions off the bridge and into FrameLoader directly.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::canGoBackOrForward):
(WebCore::FrameLoader::getHistoryLength):
(WebCore::FrameLoader::historyURL):
* loader/mac/FrameLoaderMac.mm:
* page/mac/WebCoreFrameBridge.h:
2007-01-08 Sam Weinig <sam@webkit.org>
Reviewed by Mark.
Adds outline-color to list of computable styles.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::):
2007-01-08 Beth Dakin <bdakin@apple.com>
Reviewed by Hyatt.
Fix for a bug that Adam, Hyatt, and I noticed when debugging
another problem.
* rendering/InlineBox.cpp:
(WebCore::InlineBox::root): Added assertion. If we are casting to a
root, we should make sure we are root.
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::destroy): It is not enough to remove the
child boxes for anonymous blocks. We need to be more thorough when
cleaning these up. Adam's test case illustrates the problem well.
2007-01-08 John Sullivan <sullivan@apple.com>
Tweak to previous checkin
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected):
Adam suggested I should nil-check frame->page()
2007-01-08 John Sullivan <sullivan@apple.com>
Reviewed by Brady and Beth
- fixed <rdar://problem/4912541> GMAIL: With selected text in a rich text message, choosing
"Search in Google" displays search results in the message body field
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected):
Visit google URL in main frame rather than in current frame
2007-01-08 David Hyatt <hyatt@apple.com>
Fix computed style errors for color properties that had invalid colors.
They should return the value of the 'color' property when their colors
are not valid.
Fixed the computed style value for border-top-color (a typo was causing it to
use border-left-color instead).
Implement outline-color computed style.
Reviewed by harrison
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::currentColorOrValidColor):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2007-01-08 Remi Zara <remi_zara@mac.com>
Reviewed by Darin and Eric.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12150
Handle correctly cases where no stops are defined, cases where a
stop offset value is less than previous stops offset value, and cases
where a stop offset value is greater than 1.0.
* platform/graphics/svg/SVGPaintServerGradient.cpp:
(WebCore::SVGPaintServerGradient::setGradientStops): Don't sort stops
* platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
(WebCore::cgGradientCallback): When there are no stops, use a transparent
fill
(WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
a stop offset must always be considered at greater or equal to all
preceding stop offsets, but no more than 1.0
2007-01-08 Timothy Hatcher <timothy@apple.com>
Reviewed by Geoff.
<rdar://problem/4865325> please re-add auto font activation support in WebKit
* platform/mac/WebFontCache.mm:
(+[WebFontCache fontWithFamily:traits:size:]):
2007-01-08 Darin Adler <darin@apple.com>
Reviewed by Adam.
- http://bugs.webkit.org/show_bug.cgi?id=12143
remove Widget code unneeded now that form elements do not use Widget
* bindings/objc/DOMHTML.mm: (-[DOMHTMLSelectElement _activateItemAtIndex:]):
Removed useless implementation that would only work with NSView-based
<select> elements, and added a FIXME about the fact that this function
doesn't do anything any more. I think it's used by Safari forms auto-fill.
* bridge/mac/WebCoreAXObject.mm: (-[WebCoreAXObject rendererForView:]):
Removed code that depends on elementForView:, since that always returns
nil now.
* html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::~HTMLFormElement):
Use a formDestroyed() function rather than clearing m_form directly so that
this class doesn't have to be a friend of HTMLGenericFormElement.
* html/HTMLGenericFormElement.h: Removed now-unneeded friend declaration
for HTMLFormElement. Moved definition of supportsFocus into the .cpp file.
Added a public formDestroyed function for use by HTMLFormElement.
* html/HTMLGenericFormElement.cpp:
(WebCore::HTMLGenericFormElement::attach): Removed widget-specific code.
(WebCore::HTMLGenericFormElement::isKeyboardFocusable): Ditto.
(WebCore::HTMLGenericFormElement::isMouseFocusable): Ditto.
(WebCore::HTMLGenericFormElement::supportsFocus): Added this here; it was
in the header file before, for no good reason.
* page/EventHandler.h: Removed unused Mac-specific
currentEventIsMouseDownInWidget.
* page/mac/EventHandlerMac.mm: Ditto.
* page/Frame.cpp: (WebCore::Frame::frameForWidget): Changed to use
RenderWidget to find the frame rather than the WigetClient element()
function.
* page/mac/FrameMac.h: Removed unused bridgeForWidget.
* page/mac/FrameMac.mm: Ditto.
* page/mac/WebCoreFrameBridge.h: Removed elementForView.
* page/mac/WebCoreFrameBridge.mm: Ditto. While the scroll bar still did
implement WebCoreWidgetHolder, it does not correspond to a DOM element,
so this method was always returning nil.
* platform/Widget.h: Moved unused types and functions that are still
in the platform-specific implementations into a "to be deleted" section:
FocusPolicy, NoFocus, TabFocus, ClickFocus, StrongFocus, WheelFocus,
lockDrawingFocus, font, focusPolicy, hasFocus, clearFocus, setFont,
disableFlushDrawing, enableFlushDrawing, unlockDrawingFocus.
Removed unused functions that are not in platform-specific implementations:
sizeHint, baselinePosition, checksDescendantsForFocus.
* platform/Widget.cpp: Removed functions.
* platform/WidgetClient.h: Emptied out the class. Soon we can delete it.
* platform/mac/PlatformScrollBarMac.mm: (-[WebCoreScrollBar mouseDown:]):
Got rid of unneeded includes, removed use of the WebCoreWidgetHolder
protocol and the one method in it, and changed the calls to beforeMouseDown
and afterMouseDown to pass the widget pointer in.
* platform/mac/WebCoreWidgetHolder.h: Emptied out the file -- to be deleted
later.
* platform/mac/WidgetMac.mm:
(WebCore::Widget::~Widget): Removed code to manage deferredFirstResponder.
(WebCore::Widget::hasFocus): Removed body of function and replaced with
an assertion that it's never called. Later we'll remove it.
(WebCore::Widget::setFocus): Tweaked a bit to work given changes to the
FrameMac class. Also added a FIXME. Given how this works, it does not
belong in the platform layer.
(WebCore::Widget::clearFocus): Removed body of function and replaced with
an assertion that it's never called. Later we'll remove it.
(WebCore::Widget::focusPolicy): Ditto.
(WebCore::Widget::font): Ditto.
(WebCore::Widget::setFont): Ditto.
(WebCore::Widget::lockDrawingFocus): Ditto.
(WebCore::Widget::unlockDrawingFocus): Ditto.
(WebCore::Widget::disableFlushDrawing): Ditto.
(WebCore::Widget::enableFlushDrawing): Ditto.
(WebCore::Widget::paint): Removed obsolete comment.
(WebCore::Widget::sendConsumedMouseUp): Removed body of function and replaced with
an assertion that it's never called. Later we'll remove it.
(WebCore::Widget::setIsSelected): Tweaked a bit to work given changes to the
FrameMac class. Also added a FIXME. Given how this works, it does not
belong in the platform layer.
(WebCore::Widget::beforeMouseDown): Changed to take an explicit Widget parameter.
(WebCore::Widget::afterMouseDown): Ditto.
* rendering/RenderApplet.cpp:
(WebCore::RenderApplet::intrinsicWidth): Changed to not call sizeHint() any more.
I didn't change the values returned by the function, but they make no sense and
this should probably be fixed later.
(WebCore::RenderApplet::intrinsicHeight): Ditto.
* rendering/RenderWidget.h: Removed unneeded WidgetClient.h include. Changed
RenderWidget to no longer inherit from WidgetClient. Added a find function to find
a RenderWidget given a Widget. Removed all the virtual functions that override
WidgetClient hooks.
* rendering/RenderWidget.cpp: Removed all the WidgetClient functions.
(WebCore::widgetRendererMap): Added. Map that gives the RenderWidget for each
Widget that is owned by a RenderWidget.
(WebCore::RenderWidget::destroy): Removed the setClient call and added a call to
remove the widget from the widgetRendererMap.
(WebCore::RenderWidget::setWidget): Ditto.
(WebCore::RenderWidget::setStyle): Removed the call to Widget::setFont.
(WebCore::RenderWidget::find): Added. Returns the RenderWidget for a Widget, if any.
- other changes
* dom/Node.cpp:
(WebCore::Node::dump): Removed unnecessary use of DeprecatedString.
(WebCore::appendAttributeDesc): Ditto.
(WebCore::Node::showNode): Ditto.
(WebCore::Node::formatForDebugger): Ditto.
* loader/CachedImage.cpp: (WebCore::CachedImage::createImage): Cleaned up
conditional compilation so adding more MIME types here doesn't make the
function more and more difficult to read.
* page/Frame.h: Removed unneeded includes and declarations.
Tweaked formatting.
* page/Page.h: Removed unneeded declarations.
* platform/ScrollView.h: Removed unneeded includes.
* rendering/RenderBlock.cpp: (WebCore::RenderBlock::renderName): Tweaked formatting.
2007-01-08 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12162
The inheritableProperties array is duplicated
No test possible (no change to functionality).
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::removeComputedInheritablePropertiesFrom): Added.
Removes the inheritable properties that CSSComputedStyleDeclaration knows how to compute
from the given mutable declaration.
* css/CSSComputedStyleDeclaration.h:
* css/CSSMutableStyleDeclaration.cpp: Removed one copy of the inheritableProperties array.
* css/CSSMutableStyleDeclaration.h:
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::removeRedundantStyles): Changed to call
CSSComputedStyleDeclaration::removeComputedInheritablePropertiesFrom.
2007-01-08 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12099
XMLHttpRequest shouldn't honor a charset specified via setRequestHeader
Test: http/tests/xmlhttprequest/request-encoding.html
* xml/xmlhttprequest.cpp:
(WebCore::XMLHttpRequest::send): Don't try to get the charset from Content-Type. Keep checking
for unknown charsets, because that will be needed again when we start using document.xmlEncoding.
2007-01-08 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=7640
Menu items are displayed as "undefined"
* bindings/js/kjs_dom.cpp:
(KJS::DOMNodeProtoFunc::callAsFunction):
* bindings/js/kjs_domnode.h:
(KJS::DOMNode::):
Removed Node::item. No idea why it was there in the first place.
* bindings/js/kjs_html.cpp:
(KJS::HTMLElementFunction::callAsFunction):
* bindings/js/kjs_html.h:
(KJS::JSHTMLElement::):
Added HTMLSelectElement::item. It is not in DOM2 IDL, but the spec seems to mentions it anyway:
"The contained options can be directly accessed through the select element as a collection."
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::namedItem):
(WebCore::HTMLSelectElement::item):
* html/HTMLSelectElement.h:
* html/HTMLSelectElement.idl:
Added this method to DOM and IDL, too. Made namedItem() non-virtual.
2007-01-08 Beth Dakin <bdakin@apple.com>
Reviewed by Maciej.
Fix for <rdar://problem/4912254> REGRESSION: After copying text to
the clipboard, the paste contextual remains dimmed when it should
be active
No layout test for context menu problems.
* platform/ContextMenu.cpp:
(WebCore::ContextMenu::checkOrEnableIfNeeded): Remove check to see
if the content is richly editable; it only has to be regular
editable and the call to canPaste() takes care of that.
2007-01-08 Sam Weinig <sam@webkit.org>
Reviewed by Mitz.
Attempt to fix build for buildbots.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::columnGap):
(WebCore::RenderBlock::calcColumnWidth):
2007-01-08 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=3232
CSS2: Web Kit does not support all list style types
Test case showed problems in cjk-ideographic and hebrew
Test: fast/lists/w3-list-styles.html
* rendering/RenderListMarker.cpp:
(WebCore::toCJKIdeographic): Fix the algorithm so it doesn't include leading zeroes.
I had misread the part that says you start with the decimal form of the number.
Fix an assertion that was too stringent. Fix the code to collapse consecutive zeroes
so that it doesn't get confused by intervening "noChar" characters.
(WebCore::RenderListMarker::paint): Reverse the text before painting if the first character's
direction is right to left.
2007-01-08 Darin Adler <darin@apple.com>
Reviewed by Beth.
- http://bugs.webkit.org/show_bug.cgi?id=12142
render tree dump for test results should include the value of list markers
* rendering/RenderTreeAsText.cpp:
(WebCore::getTagName): Changed to use String instead of DeprecatedString.
(WebCore::quoteAndEscapeNonPrintables): Ditto. Also moved up so it can be used
in the operator below.
(WebCore::operator<<): Added clause for RenderListMarker that dumps the value
of the list marker's text.
(WebCore::nodePosition): Changed to use String instead of DeprecatedString.
* rendering/SVGRenderTreeAsText.cpp:
(WebCore::TextStreamSeparator::TextStreamSeparator): Changed to use String
instead of DeprecatedString.
(WebCore::getTagName): Ditto.
(WebCore::write): Ditto.
2007-01-08 Sam Weinig <sam@webkit.org>
Reviewed by ap and the rubber stamp of Maciej.
Patch for http://bugs.webkit.org/show_bug.cgi?id=12164
Cleanup Tokenizers
- Moves Tokenizer class into its own file.
- Move XMLTokenizer declaration from XMLTokenizer.cpp to XMLTokenizer.h
- Fixup #includes.
* WebCore.xcodeproj/project.pbxproj:
* dom/Document.cpp:
(WebCore::Document::createTokenizer):
* dom/Tokenizer.h: Added.
(WebCore::Tokenizer::Tokenizer):
(WebCore::Tokenizer::~Tokenizer):
(WebCore::Tokenizer::stopParsing):
(WebCore::Tokenizer::processingData):
(WebCore::Tokenizer::executingScript):
(WebCore::Tokenizer::wantsRawData):
(WebCore::Tokenizer::writeRawData):
(WebCore::Tokenizer::inViewSourceMode):
(WebCore::Tokenizer::setInViewSourceMode):
(WebCore::Tokenizer::wellFormed):
(WebCore::Tokenizer::lineNumber):
(WebCore::Tokenizer::columnNumber):
* dom/XMLTokenizer.cpp:
* dom/XMLTokenizer.h:
(WebCore::XMLTokenizer::):
(WebCore::XMLTokenizer::setIsXHTMLDocument):
(WebCore::XMLTokenizer::isXHTMLDocument):
(WebCore::XMLTokenizer::wellFormed):
* html/HTMLElement.cpp:
* html/HTMLTokenizer.h:
(WebCore::Token::reset):
(WebCore::HTMLTokenizer::checkBuffer):
(WebCore::HTMLTokenizer::checkScriptBuffer):
(WebCore::HTMLTokenizer::State::State):
(WebCore::HTMLTokenizer::State::setBit):
* xml/XSLTProcessor.cpp:
2007-01-08 Sam Weinig <sam@webkit.org>
Reviewed by Tim H.
Adds -webkit-box-shadow to list of computable styles.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::):
2007-01-08 Rob Buis <buis@kde.org>
Reviewed by bdash.
Initialize the member vars, fixes testcases
pointer-events-path.svg and pointer-events-text.svg
on the PPC build.
* ksvg2/misc/PointerEventsHitRules.cpp:
(WebCore::PointerEventsHitRules::PointerEventsHitRules):
2007-01-08 David Hyatt <hyatt@apple.com>
This patch computes the correct column width and column count. It ensures that content lays out constrained
to the column width in one long strip. It does not yet balance the long strip into multiple columns.
Reviewed by Mark
* rendering/RenderBlock.cpp:
(WebCore:::RenderFlow):
(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::rightOffset):
(WebCore::RenderBlock::availableWidth):
(WebCore::RenderBlock::columnGap):
(WebCore::RenderBlock::calcColumnWidth):
* rendering/RenderBlock.h:
* rendering/RenderStyle.h:
(WebCore::RenderStyle::setColumnWidth):
2007-01-08 David Hyatt <hyatt@apple.com>
Fix column-count so that it supports auto just like column-width does.
Add a new function, availableWidth(), that will be used to return the width available to content placed inside
a block. For now it still returns contentWidth(), so no behavioral change has occurred yet.
Subclass calcWidth() in RenderBlock, but don't change anything yet. This is where RenderBlock will calc the
correct column width.
Reviewed by mark
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::leftRelOffset):
(WebCore::RenderBlock::rightRelOffset):
(WebCore::RenderBlock::getClearDelta):
(WebCore::RenderBlock::availableWidth):
(WebCore::RenderBlock::calcWidth):
* rendering/RenderBlock.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::containingBlockWidth):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::containingBlockWidth):
(WebCore::RenderObject::paddingTop):
(WebCore::RenderObject::paddingBottom):
(WebCore::RenderObject::paddingLeft):
(WebCore::RenderObject::paddingRight):
* rendering/RenderObject.h:
(WebCore::RenderObject::availableWidth):
* rendering/RenderStyle.cpp:
(WebCore::StyleMultiColData::StyleMultiColData):
(WebCore::StyleMultiColData::operator==):
* rendering/RenderStyle.h:
(WebCore::RenderStyle::hasAutoColumnCount):
(WebCore::RenderStyle::setColumnCount):
(WebCore::RenderStyle::setHasAutoColumnCount):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::calcWidth):
2007-01-08 David Hyatt <hyatt@apple.com>
Fix z-index:inherit so that it works properly when inheriting from z-index:auto.
Reviewed by eric
fast/layers/zindex-inherit.html
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
2007-01-08 David Hyatt <hyatt@apple.com>
Add support for all of the CSS3 multi-column properties in preparation for implementing the
feature.
Reviewed by eric
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSMutableStyleDeclaration.cpp:
(WebCore::):
* css/CSSPropertyNames.in:
* css/cssparser.cpp:
(WebCore::CSSParser::parseValue):
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
* rendering/RenderStyle.cpp:
(WebCore::StyleMultiColData::StyleMultiColData):
(WebCore::StyleMultiColData::operator==):
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
(WebCore::RenderStyle::RenderStyle):
(WebCore::RenderStyle::diff):
* rendering/RenderStyle.h:
(WebCore::StyleMultiColData::operator!=):
(WebCore::StyleMultiColData::ruleWidth):
(WebCore::RenderStyle::columnWidth):
(WebCore::RenderStyle::hasAutoColumnWidth):
(WebCore::RenderStyle::columnCount):
(WebCore::RenderStyle::columnGap):
(WebCore::RenderStyle::hasAutoColumnGap):
(WebCore::RenderStyle::columnRuleColor):
(WebCore::RenderStyle::columnRuleStyle):
(WebCore::RenderStyle::columnRuleWidth):
(WebCore::RenderStyle::columnBreakBefore):
(WebCore::RenderStyle::columnBreakInside):
(WebCore::RenderStyle::columnBreakAfter):
(WebCore::RenderStyle::setColumnWidth):
(WebCore::RenderStyle::setHasAutoColumnWidth):
(WebCore::RenderStyle::setColumnCount):
(WebCore::RenderStyle::setColumnGap):
(WebCore::RenderStyle::setHasAutoColumnGap):
(WebCore::RenderStyle::setColumnRuleColor):
(WebCore::RenderStyle::setColumnRuleStyle):
(WebCore::RenderStyle::setColumnRuleWidth):
(WebCore::RenderStyle::resetColumnRule):
(WebCore::RenderStyle::setColumnBreakBefore):
(WebCore::RenderStyle::setColumnBreakInside):
(WebCore::RenderStyle::setColumnBreakAfter):
(WebCore::RenderStyle::initialColumnCount):
(WebCore::RenderStyle::initialColumnWidth):
2007-01-07 Rob Buis <buis@kde.org>
Reviewed by Eric.
http://bugs.webkit.org/show_bug.cgi?id=10587
pointer-events is not implemented for RenderSVGImage or RenderSVGText
Implement pointer-events for raster images and svg text.
* WebCore.xcodeproj/project.pbxproj:
* ksvg2/misc/PointerEventsHitRules.cpp: Added.
(WebCore::PointerEventsHitRules::PointerEventsHitRules):
* ksvg2/misc/PointerEventsHitRules.h: Added.
(WebCore::PointerEventsHitRules::):
* rendering/RenderPath.cpp:
(WebCore::RenderPath::nodeAtPoint):
* rendering/RenderPath.h:
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::nodeAtPoint):
* rendering/RenderSVGImage.h:
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::nodeAtPoint):
* rendering/RenderSVGText.h:
2007-01-07 David Hyatt <hyatt@apple.com>
Fix a regression where border-radius was not clipping the background when border was set to none.
Fix multi-line inline flow painting to properly apply border-radius to the background only at the
beginning of the first line and end of the last line.
Reviewed by eric
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::paintBackground):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintBackground):
(WebCore::RenderBox::paintBackgroundExtended):
* rendering/RenderBox.h:
* rendering/RenderObject.h:
(WebCore::RenderObject::paintBackgroundExtended):
2007-01-07 David Hyatt <hyatt@apple.com>
Add support for the CSS3 box-shadow property.
Reviewed by olliej
fast/box-shadow/ contains the tests for this feature.
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::clipOutRoundedRect):
* platform/graphics/GraphicsContext.h:
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::fillRoundedRect):
(WebCore::GraphicsContext::clipOut):
(WebCore::GraphicsContext::clipOutEllipseInRect):
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::fillRoundedRect):
(WebCore::GraphicsContext::clipOut):
(WebCore::GraphicsContext::clipOutEllipseInRect):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::paint):
(WebCore::InlineFlowBox::paintBoxShadow):
(WebCore::InlineFlowBox::paintBoxDecorations):
(WebCore::shouldDrawTextDecoration):
(WebCore::InlineFlowBox::paintTextDecorations):
* rendering/InlineFlowBox.h:
* rendering/InlineRunBox.h:
(WebCore::InlineRunBox::paintBoxDecorations):
(WebCore::InlineRunBox::paintTextDecorations):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintObject):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::setStyle):
(WebCore::RenderBox::paintBoxDecorations):
(WebCore::RenderBox::paintBackgroundExtended):
* rendering/RenderFieldset.cpp:
(WebCore::RenderFieldset::paintBoxDecorations):
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::paint):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::paint):
* rendering/RenderImage.h:
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::paint):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::mustRepaintBackgroundOrBorder):
(WebCore::RenderObject::paintBoxShadow):
(WebCore::RenderObject::dump):
(WebCore::RenderObject::setStyle):
* rendering/RenderObject.h:
(WebCore::RenderObject::hasBoxDecorations):
(WebCore::RenderObject::setHasBoxDecorations):
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::paint):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::paint):
(WebCore::RenderTable::paintBoxDecorations):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::RenderTableCell):
(WebCore::RenderTableCell::setStyle):
(WebCore::RenderTableCell::paintBoxDecorations):
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::paint):
2007-01-07 Rob Buis <buis@kde.org>
Reviewed by weinig.
http://bugs.webkit.org/show_bug.cgi?id=10362
SVG needs to support SVGError events and some form of "error state"
Report SVG warnings and errors on (JS) console.
Expose line and column number getters in Tokenizer in
order to display them with the error message.
* dom/XMLTokenizer.cpp:
* dom/XMLTokenizer.h:
(WebCore::Tokenizer::lineNumber):
(WebCore::Tokenizer::columnNumber):
* html/HTMLTokenizer.h:
(WebCore::HTMLTokenizer::lineNumber):
(WebCore::HTMLTokenizer::columnNumber):
* ksvg2/misc/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::reportWarning):
(WebCore::SVGDocumentExtensions::reportError):
* ksvg2/misc/SVGDocumentExtensions.h:
* ksvg2/svg/SVGCircleElement.cpp:
(WebCore::SVGCircleElement::parseMappedAttribute):
* ksvg2/svg/SVGElement.h:
* ksvg2/svg/SVGEllipseElement.cpp:
(WebCore::SVGEllipseElement::parseMappedAttribute):
* ksvg2/svg/SVGFitToViewBox.cpp:
(WebCore::SVGFitToViewBox::parseViewBox):
* ksvg2/svg/SVGFitToViewBox.h:
* ksvg2/svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::parseMappedAttribute):
* ksvg2/svg/SVGParserUtilities.cpp:
(WebCore::SVGPolyParser::parsePoints):
* ksvg2/svg/SVGParserUtilities.h:
* ksvg2/svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::parseMappedAttribute):
* ksvg2/svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::parseMappedAttribute):
* ksvg2/svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::parseMappedAttribute):
* ksvg2/svg/SVGRadialGradientElement.cpp:
(WebCore::SVGRadialGradientElement::parseMappedAttribute):
* ksvg2/svg/SVGRectElement.cpp:
(WebCore::SVGRectElement::parseMappedAttribute):
* ksvg2/svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::parseMappedAttribute):
* ksvg2/svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::parseMappedAttribute):
* ksvg2/svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::parseMappedAttribute):
2007-01-07 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Sam.
Cleanup code & fix InlineBox positioning when text-anchor is used.
* rendering/RenderSVGText.cpp: Cleanup code.
(WebCore::RenderSVGText::nodeAtPoint):
(WebCore::RenderSVGText::absoluteRects):
(WebCore::RenderSVGText::paint):
* rendering/RenderText.cpp: Remove unused function posOfChar()
* rendering/RenderText.h: Ditto.
* rendering/SVGInlineFlowBox.cpp:
(WebCore::translateBox):
(WebCore::placePositionedBoxesHorizontally):
2007-01-06 George Staikos <staikos@kde.org>
Reviewed by Brady.
Make the Qt build work.... again.
* WebCore.pro:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::requestFromDelegate):
* loader/qt/DocumentLoaderQt.cpp:
* loader/qt/FrameLoaderQt.cpp:
* loader/qt/MainResourceLoaderQt.cpp: Added.
(WebCore::MainResourceLoader::create):
* loader/qt/ResourceLoaderQt.cpp:
(WebCore::ResourceLoader::load):
(WebCore::ResourceLoader::cancel):
(WebCore::ResourceLoader::releaseResources):
(WebCore::ResourceLoader::addData):
* platform/network/qt/ResourceHandleQt.cpp:
(WebCore::ResourceHandle::supportsBufferedData):
(WebCore::ResourceHandle::bufferedData):
(WebCore::ResourceHandle::loadResourceSynchronously):
* platform/qt/LoaderFunctionsQt.cpp:
* platform/qt/TemporaryLinkStubs.cpp: implemented some functions
(WebCore::screenDepth):
(WebCore::screenDepthPerComponent):
(WebCore::screenIsMonochrome):
(WebCore::screenRect):
(WebCore::screenAvailableRect):
2007-01-07 Mitz Pettel <mitz@webkit.org>
Reviewed by Mark Rowe.
- fix http://bugs.webkit.org/show_bug.cgi?id=11133
Test: fast/forms/listbox-clip.html
* platform/mac/PlatformScrollBarMac.mm:
(-[WebCoreScrollBar initWithPlatformScrollbar:]): Get the correct scrollbar
width/height based on control size.
* rendering/RenderListBox.cpp:
Renamed optionsSpacingLeft to optionsSpacingHorizontal since it is applied
on both sides.
(WebCore::RenderListBox::calcMinMaxWidth): Account for optionsSpacingHorizontal.
Not including the spacing before went unnoticed since the scrollbar was lying
about its width by exactly the same amount.
(WebCore::RenderListBox::paintObject): Clip out the scrollbar.
(WebCore::RenderListBox::paintItemForeground): Changed for the rename.
2007-01-07 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=11935
REGRESSION: Changing the overflow style dynamically does not force repaint
Test: fast/repaint/erase-overflow.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::setStyle): Added a repaint before changing hasOverflowClip
to true, to ensure that the current overflow is erased.
2007-01-07 Graham Dennis <graham.dennis@gmail.com>
Reviewed by Darin.
Patch for http://bugs.webkit.org/show_bug.cgi?id=12106
Changed URL from WebResourceLoadDelegate's webView:resource:willSendRequest:... is ignored
* loader/mac/SubresourceLoaderMac.mm:
(WebCore::SubresourceLoader::willSendRequest): Use m_originalURL instead of request().url()
as m_request is not set until the end of ResourceLoader::willSendRequest. Also, ensure that
the request is updated if the frame's client changes it, and that the SubresourceLoader's client
gets the new request and not the old one.
2007-01-07 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=10313
xsl:import doesn't work in stylesheets loaded via XMLHttpRequest
This is a partial fix that makes a couple more steps towards fixing the problem.
Test: fast/xsl/transform-xhr-doc.xhtml
* xml/XSLTProcessor.cpp:
(WebCore::xsltStylesheetPointer): Pass an URL for the stylesheet. I'm not sure why this constructor even needs it,
given that it has a Node, but this is a small modifications that makes XSLImportRule try to load from a correct URL.
(WebCore::XSLTProcessor::transformToString): Fix the crash for real this time.
2007-01-06 Rob Buis <buis@kde.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12125
overflow attribute of the symbol element not respected
Copy the attribute map to the cloned node so the overflow on
the symbol is respected.
* ksvg2/svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::closeRenderer):
2007-01-06 Eric Seidel <eric@webkit.org>
Reviewed and significantly tweaked by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12103
LEAK: Fix the leaking ImageBuffer buffers on TOT
* ksvg2/svg/SVGMaskElement.h:
* ksvg2/svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::drawMaskerContent):
Changed to return auto_ptr since it returns a newly-created ImageBuffer.
* ksvg2/svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::buildPattern):
Changed to use auto_ptr since ImageBuffer::create now returns one.
* platform/graphics/GraphicsContext.h: Removed the include of ImageBuffer.h,
which was never needed, and the declaration of createImageBuffer, which is
now a class member function of ImageBuffer.
* platform/graphics/ImageBuffer.h: Replaced the constructor with a create
function. Added a comment about the need to move renderSubtreeToImage
elsewhere. Added an m_data member to store the data so it can be deleted
when the object is done, made the m_size member non-platform-specific.
Added a private constructor for use to create the CG version.
* platform/graphics/cg/GraphicsContextCG.cpp: Removed
GraphicsContext::createImageBuffer.
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::create): Added. Replaces the old
GraphicsContext::createImageBuffer function.
(WebCore::ImageBuffer::ImageBuffer): Added m_data and m_context.
(WebCore::ImageBuffer::~ImageBuffer): Added a fastFree of the data and got
rid of the unneeded null check before calling CGImageRelease.
* platform/graphics/svg/SVGPaintServerGradient.h: Removed the include of
ImageBuffer.h and declared the ImageBuffer class instead.
* platform/graphics/svg/SVGPaintServerPattern.h: Removed the include of
ImageBuffer.h and declared the ImageBuffer class instead, and changed setTile
to take an auto_ptr since it takes ownership of the ImageBuffer.
* platform/graphics/svg/SVGPaintServerPattern.cpp:
(WebCore::SVGPaintServerPattern::setTile): Ditto.
* platform/graphics/svg/SVGResourceMasker.h: Removed the include of
ImageBuffer.h and declared the ImageBuffer class instead, and changed setMask
to take an auto_ptr since it takes ownership of the ImageBuffer.
* platform/graphics/svg/SVGResourceMasker.cpp:
(WebCore::SVGResourceMasker::setMask): Ditto.
* platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
(WebCore::SVGPaintServerGradient::setup): Updated to use auto_ptr.
* platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp: Updated includes.
* platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
(WebCore::SVGResourceMasker::applyMask): Updated to use auto_ptr.
- other changes
* ksvg2/svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::handleStartCondition):
Remove unused variables.
2007-01-06 Mitz Pettel <mitz@webkit.org>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=12136
REGRESSION: Counters-related leaks
* rendering/RenderCounter.cpp:
(WebCore::destroyCounterNodeChildren): Delete the child counter nodes.
2007-01-05 Adele Peterson <adele@apple.com>
Release build fix.
* rendering/RenderListItem.cpp: (WebCore::RenderListItem::explicitValueChanged): Initialize listRenderer.
2007-01-05 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- eliminated use of DeprecatedString for list item markers
- eliminated use of DeprecatedValueList for border style collapsing
- made many members private instead of protected or public
- reworked counter implementation to fix most of the CSS 2.1 counter tests;
made CounterNode be a simple non-polymorphic class, moved most counter-
specific code out of RenderObject into RenderCounter, changed the data
structure in RenderStyle to be more speed-efficient but less space-
efficient for nodes with counter styles
- fixed http://bugs.webkit.org/show_bug.cgi?id=11557
Tests: css2.1
- fixed a bug where counter text did not have text transform or text security
applied to it
Test: fast/css/counters/counter-text-security.html
Test: fast/css/counters/counter-text-transform.html
- improved handling of CSS content property values with data of the wrong
type; this probably needs a bit more refinement
Test: fast/css-generated-content/reset-content-to-initial-expected.txt
- fixed a bug where removing the value attribute from an HTMLLIElement would
set the list item's value to 0 instead of restoring it to normal
Test: fast/lists/li-values.html
- fixed a bug where changing the text security style from one style to another
would not change the displayed text
Test: fast/css/text-security.html
- fixed some problems handling long sequences of counter-related styles;
still needs more work and some super-large test cases to check if
recursive algorithms for these that will overflow stack remain
- added support for list styles decimal-leading-zero, hiragana, hirigana-iroha,
katakana, katakana-iroha, cjk-ideographic, armenian, and georgian
Test: fast/lists/decimal-leading-zero.html
- minor tweaks and bug fixes for other list styles, including range checking
* WebCore.exp: Updated for RenderListItem change.
* bridge/mac/WebCoreAXObject.mm: (-[WebCoreAXObject value]): Updated to use
String instead of DeprecatedString.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Removed
implementation for counter styles for now. We should probably restore it
later, but we need to make sure the returned list is separate from the
original list in the DOM -- modifying the list should not change the element
it was computed from.
* css/Counter.h: Removed unneeded empty constructor and destructor.
* css/cssstyleselector.cpp:
(WebCore::applyCounterList): Added. Stores counter directives in hash tables
that should allow us to efficiently implement dynamic counter changes. Full
support will have to wait for a future check-in.
(WebCore::CSSStyleSelector::applyProperty): Changed counter properties to
call applyCounterList. Reformatted the code to parse the content property for
changes to RenderStyle and to handle the case where some the items in the
content list don't generate any content.
* editing/visible_units.cpp:
* rendering/RenderBox.cpp:
* rendering/RenderFlexibleBox.cpp:
* rendering/RenderFlow.cpp:
* rendering/RenderSlider.cpp:
Added includes needed because of header changes.
* html/HTMLLIElement.H: Removed unneeded m_isValued.
* html/HTMLLIElement.cpp:
(WebCore::HTMLLIElement::parseMappedAttribute): To match test results seen
in WinIE, ignore values that are 0 or negative, and use new functions in
RenderListItem to communicate the lack of a valid value.
(WebCore::HTMLLIElement::attach): More of the same.
* rendering/CounterNode.h: Made CounterNode be a non-polymorphic class,
removing all the subclasses. Merged in CounterResetNode. Removed
m_total from CounterResetNode, because it isn't needed for any of
the styles (decimal-leading-zero always uses two digits). Removed
m_hasSeparator and m_willNeedLayout since they aren't needed any more.
Renamed m_count to m_countInParent for clarify, and named the list
links the same as their associated functions. Removed many functions
as well.
* rendering/CounterNode.cpp:
(WebCore::CounterNode::CounterNode): Added new fields.
(WebCore::CounterNode::computeCountInParent): Added. Used by recount.
(WebCore::CounterNode::recount): Simplified by removing unused parameter and the
"get next" idiom. Changed to be iterative instead of recursive so we can handle
arbitrarily long lists.
(WebCore::CounterNode::insertAfter): Moved here from CounterResetNode. Updated
for field name changes. Corrected rule for when to recount.
(WebCore::CounterNode::removeChild): Moved here from CounterResetNode. Changed
to only work on nodes without children. Corrected rule for when to recount.
(WebCore::nextInPreOrderAfterChildren): Added. For debugging only.
(WebCore::nextInPreOrder): Ditto.
(WebCore::showTreeAndMark): Ditto.
(showTree): Ditto.
* rendering/CounterListItem.h:
* rendering/CounterResetNode.h:
* rendering/CounterResetNode.cpp:
Marked ready to remove. I'll do the remove in a separate patch, since I have
to update a lot of different make files when I do.
* rendering/ListMarkerBox.cpp: (WebCore::ListMarkerBox::isText): Changed for the
change to RenderListMarker.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::addChildToFlow): Changed to use functions instead of
direct field access so the fields can be private and we don't need to be friends.
(WebCore::RenderBlock::getBaselineOfFirstLineBox): Ditto.
(WebCore::RenderBlock::getBaselineOfLastLineBox): Ditto.
* rendering/RenderBlock.h:
(WebCore::RenderBlock::initMaxMarginValues): Ditto.
(WebCore::RenderBlock::firstRootBox): Ditto.
(WebCore::RenderBlock::lastRootBox): Ditto.
* rendering/RenderBox.h:
(WebCore::RenderBox::setWidth): Ditto.
(WebCore::RenderBox::setHeight): Ditto.
* rendering/RenderButton.cpp:
(WebCore::RenderButton::addChild): Ditto.
* rendering/bidi.cpp:
(WebCore::RenderBlock::determineStartPosition): Ditto.
* rendering/RenderContainer.h: Renamed m_first and m_last to m_firstChild
and m_lastChild. Made them private instead of proected. Removed the
setFirstChild and setLastChild functions.
* rendering/RenderContainer.cpp:
(WebCore::RenderContainer::RenderContainer): Updated for field name change.
Changed all calls to get at fields directly instead of using functions.
(WebCore::RenderContainer::destroyLeftoverChildren): Ditto.
(WebCore::updateListMarkerNumbers): Updated for RenderListItem change.
(WebCore::RenderContainer::addChild): Changed to get at fields directly
instead of using functions. Also used release() since RenderText::setText
now takes PassRefPtr.
(WebCore::RenderContainer::removeChildNode): Changed to get at fields directly
instead of using functions.
(WebCore::RenderContainer::updatePseudoChildForObject): Create the anonymous
box only if at least one of of the items in the content list actually
generates content. Since a RenderCounter is a RenderText, don't bother making
a new style for it -- it just shares the style with its parent. Changed code
to use RenderImage::setCachedImage() instead of of setContentObject().
Added a call to setIsAnonymousImage() here, which was the only special thing
that setContentObject() used to do. Pass a reference to the counter to the
RenderCounter rather than a pointer. Pass document() as the node instead of
passing the element to RenderCounter, which makes it anonymous automatically,
and removed the setIsAnonymous call.
(WebCore::RenderContainer::appendChildNode): Chagned to get at fields directly
instead of using functions.
(WebCore::RenderContainer::insertChildNode): Ditto.
(WebCore::RenderContainer::layout): Ditto.
(WebCore::RenderContainer::removeLeftoverAnonymousBoxes): Ditto.
(WebCore::RenderContainer::positionForCoordinates): Ditto.
(WebCore::RenderContainer::addLineBoxRects): Ditto.
* rendering/RenderCounter.h: Removed unneeded layout override, never called on a
text node. Added override of originalString. Replaced CounterData* with a copy of
the CounterContent -- it's two atomic strings and an integer so it's efficient
enough to store all three in the render object, and this eliminates the lifetime
problems we could have if we used a pointer.
* rendering/RenderCounter.cpp: Removed duplicate copy of list marker code.
(WebCore::counterMaps): Moved these maps here from RenderObject.
(WebCore::previousSiblingOrParent): Added.
(WebCore::lastDescendant): Added.
(WebCore::previousInPreOrder): Added.
(WebCore::planCounter): Added.
(WebCore::findPlaceForCounter): Added.
(WebCore::counter): New name of function that was named RenderObject::findCounter.
Also uses a new algorithm that passes all the CSS 2.1 tests.
(WebCore::RenderCounter::RenderCounter): Changed to take a Document* instead of a
Node*, since at the moment counters are always anonymous.
(WebCore::RenderCounter::originalString): Added. This overrides the originalString
in the RenderText base class so that any text transforms will use the counter's
value. This code was previously in calcMinMaxWidth.
(WebCore::RenderCounter::calcMinMaxWidth): Changed to call setInternalString and
pass originalString -- this uses the counter's value from the counter tree.
(WebCore::destroyCounterNodeChildren): Added.
(WebCore::RenderCounter::destroyCounterNodes): Added. Called as needed from
RenderObject::destroy for objects that have counter nodes.
* rendering/RenderFlow.h: Made m_continuation private instead of protected.
* rendering/RenderImage.h: Removed unneeded includes, and unnecessary element()
function that casts to HTMLElement*. Made image() protected, and made the two
calcAspectRatio functions private. Removed setContentObject(). Renamed the
errorOccured() function to isErrorImage() and made it private.
* rendering/RenderImage.cpp:
(WebCore::RenderImage::RenderImage): Removed initialization of removed
m_selectionState field.
(WebCore::RenderImage::setCachedImage): Rearrange code so it won't try to
call isErrorImage() on a null image.
(WebCore::RenderImage::paint): Updated for name change.
* rendering/RenderListBox.h: Removed unneeded forward declarations.
* rendering/RenderListItem.h:
Renamed markerStringValue() to markerText() and made it return a String instead of
a DeprecatedString. Renamed m_prededfVal to m_explicitValue. Added booleans named
m_hasExplicitValue and m_isValueUpToDate and marked m_value mutable so it can be
computed in const member functions.
(WebCore::RenderListItem::value): Changed to update value on demand at the time
you ask for it.
(WebCore::RenderListItem::hasExplicitValue): Added. Use instead of magic -1 value
to indicate that the item does or does not have an explicit value.
(WebCore::RenderListItem::explicitValue): Added.
(WebCore::RenderListItem::setExplicitValue): Added.
(WebCore::RenderListItem::clearExplicitValue): Added.
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::RenderListItem): Updated to not use magic -1 values.
(WebCore::RenderListItem::setStyle): Removed call to RenderListMarker::setListItem
since it's not needed any more, and instead pass the list item to the constructor.
(WebCore::previousListItem): Made parameter const.
(WebCore::RenderListItem::calcValue): Restructed the function a bit.
(WebCore::RenderListItem::updateValueNow): Added. Calls calcValue.
(WebCore::RenderListItem::updateValue): Added. New name for resetValue(). Unlike
the old version, this no longer calculates the value until it's asked-for later.
(WebCore::RenderListItem::markerText): Changed to return String rather than a
DeprecatedString and to return a null string rather than empty string when there
is no marker.
* rendering/RenderListMarker.h: Added listMarkerText function -- common code shared
with anyone who needs to convert a value into text given a list style.
Changed constructor to take a RenderListItem and figure out the document from that.
Added isImage() and isText() functions and removed listImage() function. Changed the
type of the text() function from DeprecatedString to String. Removed the listItem()
and seListeItem() functions. Made the getRelativeMarkerRect() function private.
Renamed m_item to m_text and chagned it from DeprecatedString to String. Renamed
m_listImage to m_image.
* rendering/RenderListMarker.cpp:
(WebCore::toRoman): Added range checking to fix buffer overrun for large or negative
numbers. Rewrote to use a local UChar array and String rather than prepending to a
DeprecatedString.
(WebCore::toAlphabetic): Replaces toLetterString, and is more flexible since it takes
an alphabet array. Changed to match CSS 3 specification by using decimal numbering for
0 and negative numbers. Rewrote to use a local UChar array and String rather than
prepending to a DeprecatedString.
(WebCore::toHebrewUnder1000): Added. Helper function for Hebrew numbers so we can
handle numbers up to a million.
(WebCore::toHebrew): Changed to use toHebrewUnder1000, added a special case for
zero, negative, and too-large numbers.
(WebCore::toArmenianUnder10000): Added. Used by toArmenian.
(WebCore::toArmenian): Added.
(WebCore::toGeorgian): Added.
(WebCore::toCJKIdeographic): Added.
(WebCore::listMarkerText): Added. Moved the code here from calcMinMaxWidth, but added
support for text for the styles disc, circle, square, decimal-leading-zero, hiragana,
hirigana-iroha, katakana, katakana-iroha, cjk-ideographic, armenian, and georgian.
Also changed some of the styles to share the new toAlphabetic function.
(WebCore::RenderListMarker::RenderListMarker): Updated for name changes and list
item parameter.
(WebCore::RenderListMarker::~RenderListMarker): Updated for name changes.
(WebCore::RenderListMarker::setStyle): Updated for name changes.
(WebCore::RenderListMarker::isImage): Added. Useful helper that unifies the check
for no image and the error image.
(WebCore::RenderListMarker::paint): Updated for name changes to to use isImage()
and rearranged the code a bit.
(WebCore::RenderListMarker::imageChanged): Updated for name change
(WebCore::RenderListMarker::calcMinMaxWidth): Updated for name change, fixed a bug
where we'd leave the old text around if we were using an image-based marker. Also
changed the code to use isImage() instead of checking m_listImage.
(WebCore::RenderListMarker::calcWidth): Changed to use isImage().
(WebCore::RenderListMarker::lineHeight): Changed to use isImage().
(WebCore::RenderListMarker::baselinePosition): Changed to use isImage().
(WebCore::RenderListMarker::getRelativeMarkerRect): Changed to use isImage(),
restructured the code a little.
* rendering/RenderObject.h: Removed now-uneeded includes. Removed collectBorders()
and isFormElement(). Made remove() function and m_hasCounterNodeMap public so
we could remove friend declarations for RenderListItem and RenderView.
Moved findCounter() to become a private function inside RenderCounter.cpp.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::createObject): Fix bug where a contentData() with
CONTENT_NONE is treated as image content -- only look at the content property
if it has exactly one entry which is a CONTENT_OBJECT.
(WebCore::RenderObject::selectionStartEnd): Add const.
(WebCore::RenderObject::destroy): Moved counter-specific code to
RenderCounter::destroyCounterNodes.
(WebCore::RenderObject::recalcMinMaxWidths): Changed code to set m_recalcMinMax
near the top of the function -- the old code would potentially reset it after it
was set by the calcMinMaxWidths functions, and possibly skip a future needed
recalc. That came up in counter test cases. Removed unneeded boolean check right
after an assertion.
* rendering/RenderPart.h: Marked two virtual functions virtual for clarity.
* rendering/RenderReplaced.h: Made shouldPaint be protected, and made
m_intrinsicWidth, m_intrinsicHeight, and m_selectionState be private.
Also marked isSelected() const.
* rendering/RenderReplaced.cpp: Added newly-needed include.
(WebCore::RenderReplaced::RenderReplaced): Use constructor syntax.
(WebCore::RenderReplaced::isSelected): Made const and changed to call the
selectionStartEnd function in the straightforward way.
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::absoluteRects): Use functions instead of direct field
access so the fields can be private.
(WebCore::RenderSVGText::relativeBBox): Ditto.
* rendering/RenderStyle.h: Tweaked formatting. Changed names of CSS3 holders
to say "rare" instead, since it's not all CSS 3. Renamed CounterData to
CounterContent, since it's used inside ContentData. Changed names of fields in
ContentData to have m prefix. Moved content and counter fields into the rare
non-inherited data object. Removed unneeded assignment operator from a class
that already inherits from Shared which makes it start out noncopyable.
* rendering/RenderStyle.cpp: Name changes, plus:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
Updated for added fields (content, counter-reset, counter-increment).
(WebCore::StyleRareNonInheritedData::~StyleRareNonInheritedData): Ditto.
(WebCore::StyleRareNonInheritedData::operator==): Reformatted and sorted so it's
easy to see if any fields are missing.
(WebCore::operator!=): Added. Compares two CounterContent objects.
(WebCore::RenderStyle::arenaDelete): Removed code to handle content, which is
now in the rareNonInheritedData structure.
(WebCore::RenderStyle::RenderStyle): Ditto.
(WebCore::RenderStyle::inheritFrom): Ditto.
(WebCore::RenderStyle::operator==): Ditto.
(WebCore::RenderStyle::inheritedNotEqual):
(WebCore::RenderStyle::diff):
(WebCore::RenderStyle::contentDataEquivalent): Added case for counter,
which previously would be ignored when determining if content is equivalent.
(WebCore::RenderStyle::clearContent): Added.
(WebCore::RenderStyle::setContent): Updated for change in content location.
(WebCore::ContentData::clear): Changed algorithm so that it's not recursive
and thus can handle a very long list of ContentData.
(WebCore::operator==): Added. Compares two CounterDirective objects.
(WebCore::RenderStyle::counterDirectives): Added.
(WebCore::RenderStyle::accessCounterDirectives): Added.
* rendering/RenderTable.h: Made m_currentBorder const to better reflect the
paint algorithm.
* rendering/RenderTable.cpp: (WebCore::RenderTable::paint): Changed to use
Vector instead of DeprecatedValueList for the border styles, and to sort
rather than inserting in sorted order as we go. Put the code to loop through
the nodes and collect border styles here instead of in a RenderObject virtual
function. Also set m_currentBorder to 0 after the loop for greater clarity.
* rendering/RenderTableCell.h: Added a typedef for a vector of border values.
Removed the virtual collectBorders and replaced with the non-virtual named
collectBorderStyles. Also added a static member function named sortBorderStyles.
* rendering/RenderTableCell.cpp:
(WebCore::CollapsedBorders::CollapsedBorders): Removed unneeded constructor
parameter.
(WebCore::addBorderStyle): Changed to use a vector instead of a
DeprecatedValueList. Wrote out a loop since Vector doesn't have a contains
member function. Removed the code to insert the border at a sorted location;
instead we have a separate call to sort the border styles
(WebCore::RenderTableCell::collectBorderStyles): Renamed, and changed the
parameter type.
(WebCore::compareBorderStylesForQSort): Added.
(WebCore::RenderTableCell::sortBorderStyles): Added.
* rendering/RenderText.h: Changed StringImpl parameters in setText functions
to be PassRefPtr; added a new setInternalString function. Made a bunch of the
member functions private and made all the data members private instead of
protected.
* rendering/RenderText.cpp:
(WebCore::RenderText::setStyle): Restructure a bit for clarity. Fix case where
the old style has a different security than the new style. Use release() since
RenderText::setText now takes PassRefPtr. Always call cacheWidths here.
(WebCore::RenderText::setTextWithOffset): Changed to take the string as a
PassRefPtr instead of a raw pointer.
(WebCore::isInlineFlowOrEmptyText): Added.
(WebCore::RenderText::setInternalString): Refactored core of setText into a
separate protected member function that can be used RenderCounter. Changed
the text security square character to match what's used in list markers.
Changed the text transform switch statement so that gcc will warn us if we add
a new value and don't add a case for it.
(WebCore::RenderText::setText): Refactored most of the function into
setInternalString. Removed the call to cacheWidths -- that's now done in the
setStyle function only.
* rendering/RenderView.h:
* rendering/RenderView.cpp: (WebCore::RenderView::selectionStartEnd): Now const.
* rendering/RenderWidget.cpp: Added newly-needed include.
(WebCore::RenderWidget::setSelectionState): Don't bother setting m_selectionState
here since RenderReplaced::setSelectionState already does that.
2007-01-05 Anders Carlsson <acarlsson@apple.com>
Rubber stamped by Adam.
Move even more code to .cpp files.
* WebCore.xcodeproj/project.pbxproj:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::createWindow):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::canLoad):
(WebCore::FrameLoader::initialRequest):
(WebCore::FrameLoader::receivedData):
(WebCore::FrameLoader::setRequest):
(WebCore::FrameLoader::setResponse):
(WebCore::FrameLoader::willUseArchive):
(WebCore::FrameLoader::handleUnimplementablePolicy):
(WebCore::FrameLoader::cannotShowMIMEType):
(WebCore::FrameLoader::interruptionForPolicyChangeError):
(WebCore::FrameLoader::checkNavigationPolicy):
(WebCore::FrameLoader::checkContentPolicy):
(WebCore::FrameLoader::shouldReloadToHandleUnreachableURL):
(WebCore::FrameLoader::reloadAllowingStaleData):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::finishedLoading):
(WebCore::FrameLoader::continueAfterWillSubmitForm):
(WebCore::FrameLoader::submitForm):
(WebCore::FrameLoader::post):
(WebCore::FrameLoader::isReloading):
(WebCore::FrameLoader::loadEmptyDocumentSynchronously):
(WebCore::FrameLoader::loadResourceSynchronously):
(WebCore::FrameLoader::startLoadingMainResource):
(WebCore::FrameLoader::startLoading):
(WebCore::FrameLoader::cancelMainResourceLoad):
(WebCore::FrameLoader::identifierForInitialRequest):
(WebCore::FrameLoader::willSendRequest):
(WebCore::FrameLoader::didReceiveResponse):
(WebCore::FrameLoader::didReceiveData):
(WebCore::FrameLoader::didFailToLoad):
(WebCore::FrameLoader::originalRequest):
(WebCore::FrameLoader::receivedMainResourceError):
(WebCore::FrameLoader::callContinueFragmentScrollAfterNavigationPolicy):
(WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
(WebCore::FrameLoader::opened):
(WebCore::FrameLoader::dataURLBaseFromRequest):
(WebCore::FrameLoader::checkNewWindowPolicy):
(WebCore::FrameLoader::continueAfterNewWindowPolicy):
(WebCore::FrameLoader::continueAfterNavigationPolicy):
(WebCore::FrameLoader::callContinueLoadAfterNavigationPolicy):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
(WebCore::FrameLoader::callContinueLoadAfterNewWindowPolicy):
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
(WebCore::FrameLoader::sendRemainingDelegateMessages):
(WebCore::FrameLoader::requestFromDelegate):
(WebCore::FrameLoader::loadedResourceFromMemoryCache):
(WebCore::FrameLoader::applyUserAgent):
(WebCore::PolicyCheck::PolicyCheck):
(WebCore::PolicyCheck::clear):
(WebCore::PolicyCheck::set):
(WebCore::PolicyCheck::call):
(WebCore::PolicyCheck::clearRequest):
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* loader/MainResourceLoader.h:
* loader/ResourceLoader.h:
(WebCore::ResourceLoader::setIdentifier):
(WebCore::ResourceLoader::identifier):
* loader/mac/FrameLoaderMac.mm:
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
(WebCore::FrameLoader::referrer):
(WebCore::FrameLoader::didReceiveAuthenticationChallenge):
(WebCore::FrameLoader::didCancelAuthenticationChallenge):
(WebCore::FrameLoader::didChangeTitle):
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::dispatchCreatePage):
2007-01-05 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=12079
Nested tables don't repaint properly when a certain row is added
Tests: fast/repaint/table-section-repaint.html
fast/repaint/table-section-overflow.html
Fixed repainting when table sections move during layout.
Made table cells' overflows propagate to table sections and gave tables
overflows.
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout): Added computation of horizontal and vertical overflows
based on the caption's and the table sections' overflows.
Added checks for table sections that change position during layout. When that happens,
we assume all sections below the first section that moved also moved, and repaint
everything downwards from there.
Added calls to repaintDuringLayoutIfMoved() for the caption.
Changed the way table sections are iterated over and added a FIXME to change it again
once bug 12124 is fixed.
(WebCore::RenderTable::paint): Changed to paint overflow.
(WebCore::RenderTable::outerBorderBottom):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::RenderTableSection):
(WebCore::RenderTableSection::layoutRows): Added code to compute the section's overflow
and a flag saying whether any cells in this section overflow.
(WebCore::RenderTableSection::paint): Changed to paint overflow. If any cell
in the section has overflow, then all cells are given a chance to paint. This is needed
because there can be internal overflow, and external overflow can be coming from any
cell inside.
* rendering/RenderTableSection.h:
(WebCore::RenderTableSection::overflowWidth):
(WebCore::RenderTableSection::overflowLeft):
2007-01-05 Beth Dakin <bdakin@apple.com>
Reviewed by Adam.
Fix for <rdar://problem/4863434> Wrong contextual menu appears for
textarea and input elements at http://www.apple.com/feedback/
ical.html
No test cases added since context menus are not in DRT.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::handleContextMenuEvent): Call
EventHandler's hitTestResultAtPoint() instead of just hit testing
the layer.
2007-01-05 Anders Carlsson <acarlsson@apple.com>
Rubber-stamped by Adam.
Move a bunch of platform independent code over to DocumentLoader.cpp
* WebCore.xcodeproj/project.pbxproj:
* loader/DocumentLoader.cpp:
(WebCore::canonicalizedTitle):
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::frameLoader):
(WebCore::DocumentLoader::~DocumentLoader):
(WebCore::DocumentLoader::setMainResourceData):
(WebCore::DocumentLoader::mainResourceData):
(WebCore::DocumentLoader::originalRequest):
(WebCore::DocumentLoader::originalRequestCopy):
(WebCore::DocumentLoader::request):
(WebCore::DocumentLoader::initialRequest):
(WebCore::DocumentLoader::actualRequest):
(WebCore::DocumentLoader::URL):
(WebCore::DocumentLoader::replaceRequestURLForAnchorScroll):
(WebCore::DocumentLoader::setRequest):
(WebCore::DocumentLoader::setMainDocumentError):
(WebCore::DocumentLoader::clearErrors):
(WebCore::DocumentLoader::mainReceivedError):
(WebCore::DocumentLoader::stopLoading):
(WebCore::DocumentLoader::setupForReplace):
(WebCore::DocumentLoader::commitIfReady):
(WebCore::DocumentLoader::finishedLoading):
(WebCore::DocumentLoader::setCommitted):
(WebCore::DocumentLoader::isCommitted):
(WebCore::DocumentLoader::setLoading):
(WebCore::DocumentLoader::isLoading):
(WebCore::DocumentLoader::commitLoad):
(WebCore::DocumentLoader::doesProgressiveLoad):
(WebCore::DocumentLoader::receivedData):
(WebCore::DocumentLoader::setupForReplaceByMIMEType):
(WebCore::DocumentLoader::updateLoading):
(WebCore::DocumentLoader::setFrame):
(WebCore::DocumentLoader::attachToFrame):
(WebCore::DocumentLoader::detachFromFrame):
(WebCore::DocumentLoader::prepareForLoadStart):
(WebCore::DocumentLoader::setIsClientRedirect):
(WebCore::DocumentLoader::isClientRedirect):
(WebCore::DocumentLoader::setPrimaryLoadComplete):
(WebCore::DocumentLoader::isLoadingInAPISense):
(WebCore::DocumentLoader::addResponse):
(WebCore::DocumentLoader::stopRecordingResponses):
(WebCore::DocumentLoader::title):
(WebCore::DocumentLoader::setLastCheckedRequest):
(WebCore::DocumentLoader::lastCheckedRequest):
(WebCore::DocumentLoader::triggeringAction):
(WebCore::DocumentLoader::setTriggeringAction):
(WebCore::DocumentLoader::responses):
(WebCore::DocumentLoader::setOverrideEncoding):
(WebCore::DocumentLoader::overrideEncoding):
(WebCore::DocumentLoader::setTitle):
(WebCore::DocumentLoader::urlForHistory):
* loader/DocumentLoader.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::committedLoad):
(WebCore::FrameLoader::setMainDocumentError):
(WebCore::FrameLoader::mainReceivedCompleteError):
(WebCore::FrameLoader::mainReceivedError):
(WebCore::FrameLoader::cancelledError):
(WebCore::FrameLoader::fileDoesNotExistError):
(WebCore::FrameLoader::mainResourceData):
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* loader/mac/DocumentLoaderMac.mm:
(WebCore::DocumentLoader::unreachableURL):
* loader/mac/FrameLoaderMac.mm:
2007-01-05 Brady Eidson <beidson@apple.com>
Reviewed by Eric Seidel
http://bugs.webkit.org/show_bug.cgi?id=12117
Fixes null deref when opening links from a gmail account
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::updateHistoryForStandardLoad): Null check m_currentHistoryItem
(WebCore::FrameLoader::updateHistoryForClientRedirect): Ditto
2007-01-05 Anders Carlsson <acarlsson@apple.com>
Move some now cross platform functions over to ResourceLoader.cpp in an attempt to fix the non Mac builds.
* loader/CachedResource.h:
(WebCore::CachedResource::setAllData):
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::resourceData):
* loader/ResourceLoader.h:
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didFinishLoading):
* loader/mac/LoaderFunctionsMac.mm:
* loader/mac/ResourceLoaderMac.mm:
* platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::platformDataSize):
* platform/network/ResourceHandle.h:
2007-01-05 David Hyatt <hyatt@apple.com>
Back out fix for 12114. I missed rule #5 in the float positioning part of the CSS2.1 spec. Keep all
the code cleanup though.
Reviewed by mitz
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::positionNewFloats):
2007-01-05 Anders Carlsson <acarlsson@apple.com>
Reviewed by Maciej.
Add a shared buffer class which is backed by either a vector or an NSData object. This object can also
be held in a custom NSData subclass. Use this in the loader wherever NSData was used.
* WebCore.exp:
* WebCore.xcodeproj/project.pbxproj:
* loader/CachedResource.h:
(WebCore::CachedResource::allData):
* loader/DocumentLoader.h:
* loader/FrameLoader.h:
* loader/ResourceLoader.h:
* loader/SubresourceLoaderClient.h:
(WebCore::SubresourceLoaderClient::didFail):
* loader/loader.cpp:
(WebCore::Loader::didFinishLoading):
* loader/loader.h:
* loader/mac/DocumentLoaderMac.mm:
(WebCore::DocumentLoader::setMainResourceData):
(WebCore::DocumentLoader::mainResourceData):
(WebCore::DocumentLoader::setupForReplaceByMIMEType):
* loader/mac/FrameLoaderMac.mm:
(WebCore::FrameLoader::mainResourceData):
* loader/mac/ImageDocumentMac.mm:
(WebCore::finishImageLoad):
* loader/mac/LoaderFunctionsMac.mm:
(WebCore::CheckCacheObjectStatus):
(WebCore::CachedResource::setAllData):
* loader/mac/NetscapePlugInStreamLoaderMac.mm:
(WebCore::NetscapePlugInStreamLoader::didFinishLoading):
* loader/mac/ResourceLoaderMac.mm:
(WebCore::ResourceLoader::addData):
(WebCore::ResourceLoader::resourceData):
(WebCore::ResourceLoader::clearResourceData):
(WebCore::ResourceLoader::didReceiveData):
(WebCore::ResourceLoader::willStopBufferingData):
* loader/mac/SubresourceLoaderMac.mm:
(WebCore::SubresourceLoader::didReceiveResponse):
(WebCore::SubresourceLoader::didFinishLoading):
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge getData:andResponse:forURL:]):
(-[WebCoreFrameBridge getAllResourceDatas:andResponses:]):
* platform/KURL.h:
* platform/SharedBuffer.cpp: Added.
(WebCore::SharedBuffer::SharedBuffer):
(WebCore::SharedBuffer::size):
(WebCore::SharedBuffer::data):
(WebCore::SharedBuffer::append):
(WebCore::SharedBuffer::clear):
(WebCore::SharedBuffer::clearPlatformData):
(WebCore::SharedBuffer::maybeTransferPlatformData):
(WebCore::SharedBuffer::hasPlatformData):
(WebCore::SharedBuffer::platformData):
* platform/SharedBuffer.h: Added.
* platform/mac/SharedBufferMac.mm: Added.
(-[SharedBufferData dealloc]):
(-[SharedBufferData finalize]):
(-[SharedBufferData initWithSharedBuffer:]):
(-[SharedBufferData length]):
(-[SharedBufferData bytes]):
(WebCore::SharedBuffer::wrapNSData):
(WebCore::SharedBuffer::SharedBuffer):
(WebCore::SharedBuffer::createNSData):
(WebCore::SharedBuffer::hasPlatformData):
(WebCore::SharedBuffer::platformData):
(WebCore::SharedBuffer::platformDataSize):
(WebCore::SharedBuffer::maybeTransferPlatformData):
(WebCore::SharedBuffer::clearPlatformData):
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleClient.h:
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::bufferedData):
2007-01-05 Anders Carlsson <acarlsson@apple.com>
Reviewed by Adam.
http://bugs.webkit.org/show_bug.cgi?id=12120
REGRESSION(r18605): Safari snippet editor no longer works
* loader/mac/ResourceLoaderMac.mm:
(WebCore::ResourceLoader::willSendRequest):
Put back the code change in r18607.
* platform/mac/KURLMac.mm:
(WebCore::KURL::KURL):
Convert nil NSURLs to null KURLs.
2007-01-04 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Geoff.
http://bugs.webkit.org/show_bug.cgi?id=7296
Disable JavaScript exceptions when dynamically changing CSS properties.
* bindings/js/kjs_css.cpp:
(KJS::DOMCSSStyleDeclaration::put): Removed the Dashboard quirk logic.
* css/CSSMutableStyleDeclaration.cpp:
(WebCore::CSSMutableStyleDeclaration::setProperty): Don't raise an exception if parsing fails.
2007-01-05 Antti Koivisto <koivisto@iki.fi>
Reviewed by hyatt.
http://bugs.webkit.org/show_bug.cgi?id=12109
Fix layer visibility in some cases with nested layers.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateVisibilityStatus):
2007-01-05 Lars Knoll <lars@trolltech.com>
Make it compile with gcc 4.1
* rendering/RenderTableSection.h:
2007-01-04 Adam Roben <aroben@apple.com>
Reviewed by Geoff, cheered by others.
Dead code elimination.
All layout tests pass.
* page/EventHandler.h:
* page/mac/EventHandlerMac.mm:
* page/mac/WebCoreFrameBridge.h:
* page/mac/WebCoreFrameBridge.mm:
2007-01-04 Adam Roben <aroben@apple.com>
Reviewed by Geoff.
Fix: <rdar://4800335> REGRESSION: shift-tabbing from location field
goes to first field rather than last (businessweek.com)
Fix: <rdar://4800373> REGRESSION: tabbing from last control focuses
nothing visible (busniessweek.com)
Handle tabbing into/out of subframes in WebCore instead of letting
AppKit do the dirty work. This change also fixes a number of bugs and
changes some behavior to match other browsers:
- No frames receive a focus event when the page is first loaded.
- When a frame is clicked or focused with the keyboard, it receives
a focus event and all other frames receive a blur event.
- tabindex values are clamped to the range of a signed short, rather
than overflowing within an unsigned short.
- tabindex is respected on frame owner elements, even though HTML4
says it shouldn't be.
- Subframes will be focused when tabbing if they don't contain any
focusable elements within them (it would be nice to only focus the
frame if it has scrollbars).
Renamed SelectionDirection to FocusDirection and put it in its own file.
* page/FocusDirection.h: Added.
(WebCore::):
* page/mac/WebCoreFrameBridge.mm: Updated for renames.
(-[WebCoreFrameBridge nextKeyView]):
(-[WebCoreFrameBridge previousKeyView]):
(-[WebCoreFrameBridge nextKeyViewInsideWebFrameViews]):
(-[WebCoreFrameBridge previousKeyViewInsideWebFrameViews]):
Moved advanceFocus from EventHandler to FocusController and added
support for moving into/out of subframes..
* page/EventHandler.cpp: Moved advanceFocus to FocusController.
* page/EventHandler.h: Ditto.
* page/FocusController.cpp:
(WebCore::deepFocusableNode): Static helper function to find focusable
nodes nested within frames.
(WebCore::FocusController::advanceFocus): Moved from EventHandler and
rewritten to handle subframes.
* page/FocusController.h: Added advanceFocus declaration.
* dom/EventTargetNode.cpp:
(WebCore::EventTargetNode::defaultEventHandler): Updated for the move
of advanceFocus to FocusController.
* html/HTMLFrameOwnerElement.h:
(WebCore::HTMLFrameOwnerElement::isFrameOwnerElement): New method.
(WebCore::HTMLFrameOwnerElement::isKeyboardFocusable): New virtual
implementation used to trick Document::nextFocusableNode so that we
can focus frames.
Rewrote/renamed
Document::nextFocusableNode/Document::previousFocusableNode.
* dom/Document.cpp:
(WebCore::nextNodeWithExactTabIndex): New static helper
function.
(WebCore::previousNodeWithExactTabIndex): Ditto.
(WebCore::nextNodeWithGreaterTabIndex): Ditto.
(WebCore::previousNodeWithLowerTabIndex): Ditto.
(WebCore::Document::nextFocusableNode): Renamed from nextFocusedNode,
and rewritten with much simpler logic.
(WebCore::Document::previousFocusableNode): Ditto.
* dom/Document.h: Updated declarations for renames.
* page/mac/EventHandlerMac.mm: Updated for rename of SelectionDirection
to FocusDirection.
(WebCore::EventHandler::nextKeyViewInFrame): Updated for renames.
(WebCore::EventHandler::nextKeyViewInFrameHierarchy): Ditto.
(WebCore::EventHandler::nextKeyView): Ditto.
(WebCore::EventHandler::focusDocumentView): Added call to
setFocusedFrame when focusing the document view.
(WebCore::EventHandler::passMouseDownEventToWidget): Removed LOG_ERROR
when a nil NSView is returned from AppKit, as this is a fairly common
occurrence when a RenderWidget has a border.
(WebCore::EventHandler::passWheelEventToWidget): Added a nil-check of
the hit-tested NSView.
Changed storage of tabIndex to a signed short, and added clamping of
tabindex attribute values to match Firefox's behavior.
* dom/Node.h: Use a signed short to store m_tabIndex.
(WebCore::Node::isFrameOwnerElement): New method.
(WebCore::Node::tabIndex): Updated for signedness.
(WebCore::Node::setTabIndex): Ditto.
* html/HTMLAnchorElement.cpp: Remove implementation of tabIndex() so
that Node::tabIndex() will be called instead and return the clamped
value (which matches Firefox's behavior).
* html/HTMLAnchorElement.h: Ditto.
* html/HTMLAreaElement.cpp: Ditto.
* html/HTMLAreaElement.h: Ditto.
* html/HTMLGenericFormElement.cpp: Ditto.
* html/HTMLGenericFormElement.h: Ditto.
* html/HTMLObjectElement.cpp: Ditto.
* html/HTMLObjectElement.h: Ditto.
* html/HTMLElement.cpp:
(WebCore::HTMLElement::parseMappedAttribute): Clamp tabIndex to the
range of a signed short to match Firefox.
Added two new Chrome methods for transferring focus out of the
WebView.
* page/Chrome.cpp:
(WebCore::Chrome::canTakeFocus):
(WebCore::Chrome::takeFocus):
* page/Chrome.h:
* page/ChromeClient.h:
* platform/graphics/svg/SVGImageEmptyClients.h: Fixed typo "CromeClient" -> "ChromeClient".
(WebCore::SVGEmptyChromeClient::~SVGEmptyChromeClient):
(WebCore::SVGEmptyChromeClient::canTakeFocus):
(WebCore::SVGEmptyChromeClient::takeFocus):
* platform/graphics/svg/SVGImage.cpp:
(WebCore::SVGImage::setData): Fixed typo.
Miscellaneous:
* WebCore.exp: Updated/sorted symbols.
* WebCore.xcodeproj/project.pbxproj: Made FocusController.h Private so
WebKit can access it.
2007-01-04 Brady Eidson <beidson@apple.com>
Reverted Anders' change to fix the world
* loader/mac/ResourceLoaderMac.mm:
(WebCore::ResourceLoader::willSendRequest):
(WebCore::ResourceLoader::didReceiveResponse):
2007-01-04 Mitz Pettel <mitz@webkit.org>
Reviewed by Sam Weinig.
- http://bugs.webkit.org/show_bug.cgi?id=12078
Clean up RenderTable*
- Coding style cleanup.
- Canceled AutoTableLayout and FixedTableLayout being friend classes of
RenderTable. Instead, added public accessors to RenderTable for what
the table layout classes need and changed TableLayout::calcMinMaxWidth()
to take references to the caller's min and max widths.
- Made RenderTableSection's grid protected and moved code that accessed it
from RenderTable into RenderTableSection.
No test possible (no change to functionality).
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::calcMinMaxWidth):
(WebCore::AutoTableLayout::layout):
* rendering/AutoTableLayout.h:
* rendering/FixedTableLayout.cpp:
(WebCore::FixedTableLayout::calcWidthArray):
(WebCore::FixedTableLayout::calcMinMaxWidth):
(WebCore::FixedTableLayout::layout):
* rendering/FixedTableLayout.h:
* rendering/RenderTable.cpp:
(WebCore::RenderTable::RenderTable):
(WebCore::RenderTable::~RenderTable):
(WebCore::RenderTable::setStyle):
(WebCore::RenderTable::addChild):
(WebCore::RenderTable::calcWidth):
(WebCore::RenderTable::layout):
(WebCore::RenderTable::setCellWidths):
(WebCore::RenderTable::paint):
(WebCore::RenderTable::paintBoxDecorations):
(WebCore::RenderTable::calcMinMaxWidth):
(WebCore::RenderTable::splitColumn): Factored out the section work
to RenderTableSection::splitColumn().
(WebCore::RenderTable::appendColumn): Factored out the section work
to RenderTableSection::appendColumn().
(WebCore::RenderTable::colElement):
(WebCore::RenderTable::recalcSections):
(WebCore::RenderTable::removeChildNode):
(WebCore::RenderTable::calcBorderLeft):
(WebCore::RenderTable::calcBorderRight):
(WebCore::RenderTable::outerBorderTop):
(WebCore::RenderTable::outerBorderBottom):
(WebCore::RenderTable::outerBorderLeft):
(WebCore::RenderTable::outerBorderRight):
(WebCore::RenderTable::sectionAbove):
(WebCore::RenderTable::sectionBelow):
(WebCore::RenderTable::cellAbove):
(WebCore::RenderTable::cellBelow):
(WebCore::RenderTable::cellBefore):
(WebCore::RenderTable::getOverflowClipRect):
(WebCore::RenderTable::dump):
* rendering/RenderTable.h:
(WebCore::RenderTable::getColumnPos):
(WebCore::RenderTable::hBorderSpacing):
(WebCore::RenderTable::vBorderSpacing):
(WebCore::RenderTable::getRules):
(WebCore::RenderTable::cellPadding):
(WebCore::RenderTable::setCellPadding):
(WebCore::RenderTable::ColumnStruct::ColumnStruct):
(WebCore::RenderTable::columns): Added this accessor.
(WebCore::RenderTable::columnPositions): Added this accessor.
(WebCore::RenderTable::header):
(WebCore::RenderTable::footer):
(WebCore::RenderTable::firstBody):
(WebCore::RenderTable::numEffCols):
(WebCore::RenderTable::spanOfEffCol):
(WebCore::RenderTable::colToEffCol):
(WebCore::RenderTable::effColToCol):
(WebCore::RenderTable::bordersPaddingAndSpacing):
(WebCore::RenderTable::needsSectionRecalc):
(WebCore::RenderTable::setNeedsSectionRecalc): Renamed setNeedSectionRecalc()
to this.
(WebCore::RenderTable::hasSections):
(WebCore::RenderTable::recalcSectionsIfNeeded):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::RenderTableCell):
(WebCore::RenderTableCell::destroy):
(WebCore::RenderTableCell::updateFromElement):
(WebCore::RenderTableCell::styleOrColWidth):
(WebCore::RenderTableCell::computeAbsoluteRepaintRect):
(WebCore::RenderTableCell::absolutePosition):
(WebCore::RenderTableCell::baselinePosition):
(WebCore::RenderTableCell::setStyle):
(WebCore::compareBorders):
(WebCore::RenderTableCell::collapsedTopBorder):
(WebCore::RenderTableCell::paint):
(WebCore::collapsedBorderStyle):
(WebCore::CollapsedBorder::CollapsedBorder):
(WebCore::CollapsedBorders::CollapsedBorders):
(WebCore::CollapsedBorders::addBorder):
(WebCore::CollapsedBorders::nextBorder):
(WebCore::RenderTableCell::paintCollapsedBorder):
(WebCore::RenderTableCell::paintBackgroundsBehindCell):
(WebCore::RenderTableCell::paintBoxDecorations):
(WebCore::RenderTableCell::dump):
* rendering/RenderTableCell.h:
(WebCore::RenderTableCell::colSpan):
(WebCore::RenderTableCell::setColSpan):
(WebCore::RenderTableCell::rowSpan):
(WebCore::RenderTableCell::setRowSpan):
(WebCore::RenderTableCell::col):
(WebCore::RenderTableCell::setCol):
(WebCore::RenderTableCell::row):
(WebCore::RenderTableCell::setRow):
(WebCore::RenderTableCell::section):
(WebCore::RenderTableCell::table):
(WebCore::RenderTableCell::yPos):
(WebCore::RenderTableCell::setCellTopExtra):
(WebCore::RenderTableCell::setCellBottomExtra):
(WebCore::RenderTableCell::borderTopExtra):
(WebCore::RenderTableCell::borderBottomExtra):
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::destroy):
(WebCore::RenderTableRow::setStyle):
(WebCore::RenderTableRow::addChild):
(WebCore::RenderTableRow::layout):
(WebCore::RenderTableRow::getAbsoluteRepaintRect):
(WebCore::RenderTableRow::paint):
* rendering/RenderTableRow.h:
(WebCore::RenderTableRow::section):
(WebCore::RenderTableRow::table):
(WebCore::RenderTableRow::lineHeight):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::RenderTableSection):
(WebCore::RenderTableSection::destroy):
(WebCore::RenderTableSection::setStyle):
(WebCore::RenderTableSection::addChild):
(WebCore::RenderTableSection::ensureRows):
(WebCore::RenderTableSection::addCell):
(WebCore::RenderTableSection::setCellWidths):
(WebCore::RenderTableSection::calcRowHeight):
(WebCore::RenderTableSection::layoutRows):
(WebCore::RenderTableSection::lowestPosition):
(WebCore::RenderTableSection::rightmostPosition):
(WebCore::RenderTableSection::leftmostPosition):
(WebCore::RenderTableSection::calcOuterBorderTop):
(WebCore::RenderTableSection::calcOuterBorderBottom):
(WebCore::RenderTableSection::calcOuterBorderLeft):
(WebCore::RenderTableSection::calcOuterBorderRight):
(WebCore::RenderTableSection::paint):
(WebCore::RenderTableSection::recalcCells):
(WebCore::RenderTableSection::clearGrid):
(WebCore::RenderTableSection::numColumns):
(WebCore::RenderTableSection::appendColumn): Added. Moved code from
RenderTable::appendColumn() into here.
(WebCore::RenderTableSection::splitColumn): Added. Moved code from
RenderTable::splitColumn() into here.
(WebCore::RenderTableSection::removeChildNode):
(WebCore::RenderTableSection::dump):
* rendering/RenderTableSection.h:
(WebCore::RenderTableSection::renderName):
(WebCore::RenderTableSection::isTableSection):
(WebCore::RenderTableSection::lineHeight):
(WebCore::RenderTableSection::table):
(WebCore::RenderTableSection::cellAt):
(WebCore::RenderTableSection::numRows):
(WebCore::RenderTableSection::recalcCellsIfNeeded):
(WebCore::RenderTableSection::needsCellRecalc):
(WebCore::RenderTableSection::setNeedsCellRecalc):
(WebCore::RenderTableSection::getBaseline):
* rendering/TableLayout.h:
2007-01-04 Anders Carlsson <acarlsson@apple.com>
Reviewed by Adam.
http://bugs.webkit.org/show_bug.cgi?id=12120
REGRESSION(r18605): Safari snippet editor no longer works
* loader/mac/ResourceLoaderMac.mm:
(WebCore::ResourceLoader::willSendRequest):
Fix logic so applewebdata: URLs no longer cause the underlying URL to be fetched .
2007-01-04 Anders Carlsson <acarlsson@apple.com>
Reviewed by Adam.
Move all remaining instances of NSURLRequest over to ResourceRequest (well, pretty much all).
* loader/MainResourceLoader.h:
* loader/ResourceLoader.h:
* loader/SubresourceLoader.h:
* loader/mac/FrameLoaderMac.mm:
(WebCore::FrameLoader::startLoadingMainResource):
* loader/mac/MainResourceLoaderMac.mm:
(WebCore::MainResourceLoader::loadNow):
(WebCore::MainResourceLoader::load):
(WebCore::MainResourceLoader::setDefersLoading):
* loader/mac/ResourceLoaderMac.mm:
(WebCore::ResourceLoader::load):
* loader/mac/SubresourceLoaderMac.mm:
(WebCore::SubresourceLoader::load):
(WebCore::SubresourceLoader::create):
* platform/graphics/svg/SVGImage.cpp:
(WebCore::SVGImage::setData):
* platform/network/mac/ResourceRequestMac.mm:
(WebCore::ResourceRequest::doUpdatePlatformRequest):
2007-01-04 Anders Carlsson <acarlsson@apple.com>
Reviewed by Brady.
Move more NSURLRequests over to ResourceRequests.
* loader/DocumentLoader.h:
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* loader/MainResourceLoader.h:
* loader/ResourceLoader.h:
(WebCore::ResourceLoader::request):
* loader/SubresourceLoader.h:
* loader/mac/FrameLoaderMac.mm:
(WebCore::FrameLoader::willSendRequest):
(WebCore::FrameLoader::opened):
(WebCore::FrameLoader::requestFromDelegate):
(WebCore::FrameLoader::loadedResourceFromMemoryCache):
(WebCore::FrameLoader::loadResourceSynchronously):
* loader/mac/MainResourceLoaderMac.mm:
(WebCore::MainResourceLoader::willSendRequest):
(WebCore::MainResourceLoader::continueAfterContentPolicy):
(WebCore::MainResourceLoader::loadNow):
(WebCore::MainResourceLoader::setDefersLoading):
* loader/mac/ResourceLoaderMac.mm:
(WebCore::ResourceLoader::load):
(WebCore::ResourceLoader::willSendRequest):
(WebCore::ResourceLoader::didReceiveResponse):
(WebCore::ResourceLoader::cancelledError):
* loader/mac/SubresourceLoaderMac.mm:
(WebCore::SubresourceLoader::willSendRequest):
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::dispatchWillSendRequest):
(WebCore::SVGEmptyFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache):
* platform/network/ResourceRequest.cpp:
(WebCore::ResourceRequest::isNull):
* platform/network/ResourceRequest.h:
2007-01-04 Brady Eidson <beidson@apple.com>
Reviewed by Mark Rowe
http://bugs.webkit.org/show_bug.cgi?id=12119
Changing the behavior of HistoryItem::pageCache() this morning also necessitated
changing the behavior of HistoryItem::hasPageCache()
* history/HistoryItem.cpp:
(WebCore::HistoryItem::hasPageCache): Add the same pendingRelease check pageCache() has
2007-01-04 Mitz Pettel <mitz@webkit.org>
Reviewed by Sam Weinig.
- fix http://bugs.webkit.org/show_bug.cgi?id=12043
Another assertion failure in WebCore::RenderObject::drawBorder
Test: fast/borders/border-radius-huge-assert.html
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::addRoundedRectClip): Fixed the check for border radii
that do not fit in the given width or height to work with radii that sum up to
more than MAX_INT.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::paintBorder): Ditto.
2007-01-04 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/4861080>
GMail Editor: Crash when dropping content into certain list items
A rendering bug (4907469) creates unwanted space at the top of a
list item when its contents are wrapped in span. Dropping content
inside that space causes a crash because positionForCoordinates
fails there and the code that creates drag carets can't handle it.
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge _visiblePositionForPoint:]): Added the
that's inside click handling for the case where
positionForCoordinates returns null. We should also fix
positionForCoordinates but that's less important: now its only side
effect is that a no-op drop is performed instead of a snap back
when you drop the contents of one of these list items its own
unwanted space.
2007-01-04 Beth Dakin <bdakin@apple.com>
Reviewed by Adam.
Fix for http://bugs.webkit.org/show_bug.cgi?id=12118 REGRESSION
(Context menus): No context menu displayed when clicking outside a
short document
No test case added since we do not currently have a way to automate
context menus.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::handleContextMenuEvent): If the
hit test does not find a node, use the document node.
2007-01-04 Anders Carlsson <acarlsson@apple.com>
Reviewed by Adam.
Convert NSURLRequest to ResourceRequest in a few places
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* loader/MainResourceLoader.h:
* loader/mac/FrameLoaderMac.mm:
(WebCore::FrameLoader::identifierForInitialRequest):
(WebCore::FrameLoader::willUseArchive):
* loader/mac/MainResourceLoaderMac.mm:
(WebCore::MainResourceLoader::isPostOrRedirectAfterPost):
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::download):
(WebCore::SVGEmptyFrameLoaderClient::willUseArchive):
2007-01-04 David Hyatt <hyatt@apple.com>
Bug 12114 fix, make sure left/right floats are allowed to go above
other floats of opposite alignment.
Reviewed by aroben
fast/block/float/independent-align-positioning.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::positionNewFloats):
2007-01-04 Anders Carlsson <acarlsson@apple.com>
Reviewed by Brady.
http://bugs.webkit.org/show_bug.cgi?id=12116
REGRESSION: ASSERTION FAILED: URL in +[WebDataProtocol _webIsDataProtocolURL:]
<rdar://problem/4908910>
REGRESSION: After switching to Bookmarks view, the browser window is completely empty (no bookmarks are displayed)
* platform/network/ResourceResponse.h:
(WebCore::ResourceResponse::ResourceResponse):
Initialize m_isNull
2007-01-04 Beth Dakin <bdakin@apple.com>
Reviewed by Adam.
Turn on WebCore context menus.
* dom/EventTargetNode.cpp:
(WebCore::EventTargetNode::defaultEventHandler): Turn on WebCore
menus.
* page/ContextMenuClient.h: Name change and have the
former getCustomMenuFromDefaultItems function return the
PlatformMenuDescription since it feels funny to have the client set
the new platform description.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::handleContextMenuEvent): Above
name change.
(WebCore::ContextMenuController::contextMenuItemSelected): Use
local variable.
* platform/ContextMenu.cpp:
(WebCore::createAndAppendSpeechSubMenu): Fix silly mistake -- make
"Stop speaking" actually stop speaking.
* platform/graphics/svg/SVGImageEmptyClients.h: Name change and
have the former getCustomMenuFromDefaultItems function return the
PlatformMenuDescription since it feels funny to have the client set
the new platform description.
(WebCore::SVGEmptyContextMenuClient::getCustomMenuFromDefaultItems):
2007-01-04 Mitz Pettel <mitz@webkit.org>
Reviewed and landed by Brady
- fix http://bugs.webkit.org/show_bug.cgi?id=12087
REGRESSION: Reproducible crash going back in Back/Forward history
Allow a PageCache that is pending release to be resurrected by its
HistoryItem instead of creating a new PageCache. This avoids the
the condition of having two PageCaches for the same HistoryItem, one
current and one pending release but not yet released, which was causing
this and other bugs before.
Replaced the vector of PageCaches pending release with a set of
HistoryItems that are pending release of their PageCache.
* history/HistoryItem.cpp:
(WebCore::HistoryItem::HistoryItem):
(WebCore::HistoryItem::setHasPageCache): Check for an existing PageCache
pending release, and if found, resurrect it by canceling the release.
(WebCore::HistoryItem::pageCache): Return 0 if the PageCache is pending
release.
(WebCore::itemsWithPendingPageCacheToRelease): Renamed pendingPageCacheToRelease
to this. This method now returns a HashSet of HistoryItems that have scheduled
their PageCaches for release.
(WebCore::HistoryItem::releasePageCachesOrReschedule): Renamed releasePageCache
to this.
(WebCore::HistoryItem::releasePageCache): Added. Actually closes and releases
the PageCache.
(WebCore::HistoryItem::releaseAllPendingPageCaches): Rolled closeObjectsInPendingPageCaches
into this method.
(WebCore::HistoryItem::scheduleRelease):
(WebCore::HistoryItem::cancelRelease): Added.
* history/HistoryItem.h: Removed unused declaration of scheduleReleaseTimer()
* history/HistoryItemTimer.cpp:
(WebCore::HistoryItemTimer::HistoryItemTimer):
(WebCore::HistoryItemTimer::callReleasePageCachesOrReschedule):
* history/HistoryItemTimer.h:
2007-01-04 David Hyatt <hyatt@apple.com>
Just make the synthetic bold offset always be 1.0. This fixes bug
9534, synthetic bold looks doubled.
Reviewed by olliej
* platform/mac/FontDataMac.mm:
(WebCore::FontData::platformInit):
2007-01-04 Anders Carlsson <acarlsson@apple.com>
Reviewed by Brady.
Convert almost all occurrences of NSURLResponse to ResourceResponse.
* WebCore.exp:
* loader/DocumentLoader.h:
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* loader/MainResourceLoader.h:
* loader/NetscapePlugInStreamLoader.h:
* loader/ResourceLoader.h:
* loader/SubresourceLoader.h:
* loader/loader.h:
* loader/mac/FrameLoaderMac.mm:
(WebCore::FrameLoader::willSendRequest):
(WebCore::FrameLoader::didReceiveResponse):
(WebCore::FrameLoader::opened):
(WebCore::FrameLoader::sendRemainingDelegateMessages):
(WebCore::FrameLoader::loadedResourceFromMemoryCache):
(WebCore::FrameLoader::loadResourceSynchronously):
* loader/mac/LoaderFunctionsMac.mm:
(WebCore::CheckCacheObjectStatus):
* loader/mac/MainResourceLoaderMac.mm:
(WebCore::MainResourceLoader::isPostOrRedirectAfterPost):
(WebCore::MainResourceLoader::willSendRequest):
(WebCore::MainResourceLoader::continueAfterContentPolicy):
(WebCore::MainResourceLoader::didReceiveResponse):
(WebCore::MainResourceLoader::loadNow):
* loader/mac/NetscapePlugInStreamLoaderMac.mm:
(WebCore::NetscapePlugInStreamLoader::didReceiveResponse):
* loader/mac/ResourceLoaderMac.mm:
(WebCore::ResourceLoader::willSendRequest):
(WebCore::ResourceLoader::didReceiveResponse):
(WebCore::ResourceLoader::response):
* loader/mac/SubresourceLoaderMac.mm:
(WebCore::SubresourceLoader::willSendRequest):
(WebCore::SubresourceLoader::didReceiveResponse):
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::download):
(WebCore::SVGEmptyFrameLoaderClient::dispatchWillSendRequest):
(WebCore::SVGEmptyFrameLoaderClient::dispatchDidReceiveResponse):
(WebCore::SVGEmptyFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache):
(WebCore::SVGEmptyFrameLoaderClient::incrementProgress):
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleClient.h:
* platform/network/ResourceResponse.cpp:
(WebCore::ResourceResponse::isHTTP):
* platform/network/ResourceResponse.h:
(WebCore::ResourceResponse::ResourceResponse):
(WebCore::ResourceResponse::isNull):
* platform/network/mac/ResourceResponseMac.mm:
(WebCore::ResourceResponse::nsURLResponse):
(WebCore::ResourceResponse::doUpdateResourceResponse):
2007-01-03 Adele Peterson <adele@apple.com>
Reviewed by Darin.
- Fix for <rdar://problem/4887422>
http://bugs.webkit.org/show_bug.cgi?id=11848
REGRESSION (SearchField): Search field on developer.apple.com not drawn with top/bottom borders (11848)
Test: fast/forms/searchfield-heights.html
Override the border and the height for search fields that use -webkit-appearance: searchfield.
* css/html4.css: Use box-sizing: border-box for search fields. We don't need to have the border-box quirk
that we use for the other text fields for this control.
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::searchFieldSizes): Added.
(WebCore::RenderThemeMac::setSearchFieldSize): Added.
(WebCore::RenderThemeMac::adjustSearchFieldStyle): Override the border and the height of the search field.
2007-01-04 Lars Knoll <lars@trolltech.com>
* platform/qt/TemporaryLinkStubs.cpp:
(WebCore::inputElementAltText):
(WebCore::contextMenuItemTagOpenLinkInNewWindow):
(WebCore::contextMenuItemTagDownloadLinkToDisk):
(WebCore::contextMenuItemTagCopyLinkToClipboard):
(WebCore::contextMenuItemTagOpenImageInNewWindow):
(WebCore::contextMenuItemTagDownloadImageToDisk):
(WebCore::contextMenuItemTagCopyImageToClipboard):
(WebCore::contextMenuItemTagOpenFrameInNewWindow):
(WebCore::contextMenuItemTagCopy):
(WebCore::contextMenuItemTagGoBack):
(WebCore::contextMenuItemTagGoForward):
(WebCore::contextMenuItemTagStop):
(WebCore::contextMenuItemTagReload):
(WebCore::contextMenuItemTagCut):
(WebCore::contextMenuItemTagPaste):
(WebCore::contextMenuItemTagNoGuessesFound):
(WebCore::contextMenuItemTagIgnoreSpelling):
(WebCore::contextMenuItemTagLearnSpelling):
(WebCore::contextMenuItemTagSearchWeb):
(WebCore::contextMenuItemTagLookUpInDictionary):
(WebCore::contextMenuItemTagOpenLink):
(WebCore::contextMenuItemTagIgnoreGrammar):
(WebCore::contextMenuItemTagSpellingMenu):
(WebCore::contextMenuItemTagShowSpellingPanel):
(WebCore::contextMenuItemTagCheckSpelling):
(WebCore::contextMenuItemTagCheckSpellingWhileTyping):
(WebCore::contextMenuItemTagCheckGrammarWithSpelling):
(WebCore::contextMenuItemTagFontMenu):
(WebCore::contextMenuItemTagBold):
(WebCore::contextMenuItemTagItalic):
(WebCore::contextMenuItemTagUnderline):
(WebCore::contextMenuItemTagOutline):
(WebCore::contextMenuItemTagWritingDirectionMenu):
(WebCore::contextMenuItemTagDefaultDirection):
(WebCore::contextMenuItemTagLeftToRight):
(WebCore::contextMenuItemTagRightToLeft):
Added missing stubs.
2007-01-04 Don Gibson <dgibson77@gmail.com>
Reviewed by Alexey.
http://bugs.webkit.org/show_bug.cgi?id=11900:
Windows build bustage
* WebCore.vcproj/WebCore/WebCore.vcproj:
* bridge/win/FrameWin.cpp:
(WebCore::FrameWin::FrameWin):
* platform/graphics/BitmapImage.h:
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::setPlatformStrokeColor):
* platform/graphics/Image.h:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawRect):
(WebCore::adjustLineToPixelBoundaries):
(WebCore::GraphicsContext::drawLine):
(WebCore::GraphicsContext::drawEllipse):
(WebCore::GraphicsContext::strokeArc):
(WebCore::GraphicsContext::drawConvexPolygon):
* platform/graphics/cairo/ImageCairo.cpp:
(WebCore::BitmapImage::checkForSolidColor):
(WebCore::BitmapImage::draw):
(WebCore::BitmapImage::drawTiled):
* platform/graphics/win/ImageWin.cpp:
(WebCore::BitmapImage::initPlatformData):
(WebCore::BitmapImage::invalidatePlatformData):
(WebCore::Image::loadPlatformResource):
* platform/win/FontWin.cpp:
(WebCore::Font::drawGlyphs):
* platform/win/TemporaryLinkStubs.cpp:
(WebCore::userIdleTime):
(WebCore::BitmapImage::drawTiled):
(WebCore::BitmapImage::getHBITMAP):
(WebCore::ContextMenu::~ContextMenu):
(WebCore::ContextMenu::appendItem):
(WebCore::ContextMenuItem::ContextMenuItem):
(WebCore::ContextMenuItem::releasePlatformDescription):
(WebCore::ContextMenuItem::type):
(WebCore::ContextMenuItem::setType):
(WebCore::ContextMenuItem::setAction):
(WebCore::ContextMenuItem::setTitle):
(WebCore::ContextMenuItem::setSubMenu):
(WebCore::ContextMenuItem::setChecked):
(WebCore::ContextMenuItem::setEnabled):
(WebCore::DocumentLoader::originalRequest):
(WebCore::DocumentLoader::request):
(WebCore::DocumentLoader::unreachableURL):
(WebCore::DocumentLoader::getResponseRefreshAndModifiedHeaders):
(WebCore::DocumentLoader::replaceRequestURLForAnchorScroll):
(WebCore::DocumentLoader::setCommitted):
(WebCore::DocumentLoader::isLoading):
(WebCore::DocumentLoader::prepareForLoadStart):
(WebCore::DocumentLoader::isClientRedirect):
(WebCore::DocumentLoader::title):
(WebCore::DocumentLoader::urlForHistory):
(WebCore::Editor::markMisspellingsAfterTypingToPosition):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::referrer):
(WebCore::FrameLoader::dataURLBaseFromRequest):
(WebCore::FrameLoader::opened):
(WebCore::FrameLoader::applyUserAgent):
(WebCore::GraphicsContext::strokeRect):
(WebCore::IconDatabase::iconForPageURL):
(WebCore::IconDatabase::defaultIcon):
(WebCore::IconDatabase::retainIconForPageURL):
(WebCore::IconDatabase::releaseIconForPageURL):
(WebCore::PageCache::close):
(WebCore::ResourceHandle::willLoadFromCache):
(WebCore::SearchPopupMenu::saveRecentSearches):
(WebCore::SearchPopupMenu::loadRecentSearches):
(WebCore::SearchPopupMenu::SearchPopupMenu):
2007-01-04 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=11611
REGRESSION: No http referer header sent on XMLHttpRequest
Test: http/tests/xmlhttprequest/referer.html
* loader/FrameLoader.h: Removed FrameLoader::addExtraFieldsToRequest(NSMutableURLRequest*, bool, bool),
which is no longer used.
* loader/mac/FrameLoaderMac.mm: Ditto.
* WebCore.exp: Do not export this method (WebKit doesn't use it).
* loader/mac/SubresourceLoaderMac.mm:
(WebCore::SubresourceLoader::create): Rewrote to create the request with ResourceRequest::nsURLRequest.
* platform/PlatformString.h:
(WebCore::operator!): Added. Previously, attempts to use operator! on a String would result
with an NSString* conversion, which never returns nil. This was causing a problem in SubresourceLoader::create().
2007-01-04 Lars Knoll <lars@trolltech.com>
Make the Qt build compile again.
* platform/ContextMenu.cpp:
(WebCore::ContextMenu::populate):
2007-01-03 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=5164
Non-integer percentages are incorrectly rounded down in Safari
Test: fast/css/percentage-non-integer.html
Added floating point constructor and accessors to Length for use with
Percent lengths only. The raw value of a percent length is the integer
part of a constant multiple of the original double value. The constant
is percentScaleFactor, which is currently 128.
Added assertions that the correct constructors and accessors are used
depending on the type: the double-based percent(), setValue() and Length()
for the Percent type, and the integer-based value(), setValue() and Length()
for all other types.
calcValue() and calcMinValue() work the same as before, regardless of the
type.
Added helpers for testing if the value is 0, positive, negative or undefined
without having to check the type first.
Added raw value accessors. These are useful for doing integer math and
comparisons with scaled percent values or doing Length type-agnostic math.
Changed the rest of the code to use the appropriate accessors and helpers.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForLength):
(WebCore::primitiveValueFromLength):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/cssstyleselector.cpp:
(WebCore::convertToLength):
(WebCore::CSSStyleSelector::applyProperty):
(WebCore::CSSStyleSelector::mapBackgroundSize):
(WebCore::CSSStyleSelector::mapBackgroundXPosition):
(WebCore::CSSStyleSelector::mapBackgroundYPosition):
* platform/StringImpl.cpp:
(WebCore::parseLength):
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn):
(WebCore::AutoTableLayout::fullRecalc):
(WebCore::AutoTableLayout::calcMinMaxWidth):
(WebCore::AutoTableLayout::calcEffectiveWidth):
(WebCore::AutoTableLayout::layout):
(WebCore::AutoTableLayout::calcPercentages):
* rendering/FixedTableLayout.cpp:
(WebCore::FixedTableLayout::calcWidthArray):
(WebCore::FixedTableLayout::layout):
* rendering/Length.h:
(WebCore::Length::Length):
(WebCore::Length::value):
(WebCore::Length::rawValue):
(WebCore::Length::percent):
(WebCore::Length::setValue):
(WebCore::Length::setRawValue):
(WebCore::Length::calcValue):
(WebCore::Length::calcMinValue):
(WebCore::Length::isUndefined):
(WebCore::Length::isZero):
(WebCore::Length::isPositive):
(WebCore::Length::isNegative):
* rendering/RenderBR.cpp:
(WebCore::RenderBR::lineHeight):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::isSelfCollapsingBlock):
* rendering/RenderBox.cpp:
(WebCore::cacluateBackgroundSize):
(WebCore::RenderBox::calcWidth):
(WebCore::RenderBox::calcHeight):
(WebCore::RenderBox::calcReplacedWidth):
(WebCore::RenderBox::calcReplacedHeight):
(WebCore::RenderBox::calcAbsoluteHorizontal):
(WebCore::RenderBox::calcAbsoluteVertical):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::allowedChildFlex):
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::lineHeight):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::calcReplacedWidth):
(WebCore::RenderImage::calcReplacedHeight):
* rendering/RenderLayer.cpp:
(WebCore::Marquee::direction):
(WebCore::Marquee::start):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::mustRepaintBackgroundOrBorder):
(WebCore::RenderObject::lineHeight):
* rendering/RenderSlider.cpp:
(WebCore::RenderSlider::layout): Added FIXMEs.
* rendering/RenderStyle.h:
(WebCore::LengthBox::nonZero):
(WebCore::RenderStyle::initialLineHeight):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::calcWidth):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::addCell):
(WebCore::RenderTableSection::layoutRows):
2007-01-03 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=11744
Setting the 'content' property dynamically has no effect
Test: fast/css/content-dynamic.html
* dom/Node.cpp:
(WebCore::Node::diff): Changed to return 'Detach' if the styles' content
data are not equivalent.
2007-01-03 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=12082
REGRESSION (r18333): Crash in RenderFrameSet::layOutAxis()
Test: fast/frames/negative-remaining-length-crash.html
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::layOutAxis): Treat negative availableLength
as zero.
2007-01-03 John Sullivan <sullivan@apple.com>
Written by Darin over my shoulder; reviewed by me
- fixed <rdar://problem/4907437> Find doesn't work if invoked when a form field is focused
* page/Frame.cpp:
(WebCore::isInShadowTree):
new helper function used by findString
(WebCore::Frame::findString):
when deciding whether to start from the selection, ignore selections that are in
a shadow tree (i.e. in a form control)
2007-01-03 Brady Eidson <beidson@apple.com>
Reviewed by Mark Rowe
Fixes http://bugs.webkit.org/show_bug.cgi?id=12089
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::updateHistoryForCommit): Null check the documentLoader
2007-01-03 David Hyatt <hyatt@apple.com>
Relax the display type restriction a little bit for generated content inside
inlines. We still don't allow block display types like we should (since this
will cause a crash), but we at least handle inline-table and inline-block now.
Reviewed by beth
fast/css-generated-content/inline-display-types.html
* rendering/RenderContainer.cpp:
(WebCore::RenderContainer::updatePseudoChildForObject):
2007-01-03 Justin Garcia <justin.garcia@apple.com>
Reviewed by john
<rdar://problem/4663571> Spell checking won't cross boundary of individual To-Do item
No layout tests because advanceToNextMisspelling isn't yet exposed to automated tests.
* editing/mac/EditorMac.mm:
(WebCore::Editor::advanceToNextMisspelling): Confine spell checking to
the highest editable root, instead of the lowest. Use firstEditablePosition...
to look for an editable position.
2007-01-03 Beth Dakin <bdakin@apple.com>
Fixing silly mistake.
* platform/ContextMenu.cpp:
(WebCore::ContextMenu::checkOrEnableIfNeeded): Called wrong string
function.
2007-01-03 Brady Eidson <beidson@apple.com>
Reviewed by Anders
http://bugs.webkit.org/show_bug.cgi?id=12093 - Assertion in certain SVG layout tests
I can't really think of a cleaner way to fix this then to help these SVG cases avoid
the ASSERT - hopefully we can clean up the svg-as-image situation as the loader stabilizes
and we find better ways to handle it...
* loader/mac/DocumentLoaderMac.mm:
(WebCore::DocumentLoader::urlForHistory): empty-check the url before passing it to the
ASSERTing method
2007-01-03 Darin Adler <darin@apple.com>
Reviewed by Adele.
- removed some obsolete source files
* CMakeLists.txt: Removed obsolete files.
* WebCore.pro: Ditto.
* WebCore.vcproj/WebCore/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* WebCoreSources.bkl: Ditto.
* html/HTMLGenericFormElement.h: Removed reference to RenderFormElement.
* platform/qt/ComboBoxQt.cpp: Removed.
* platform/qt/LineEditQt.cpp: Removed.
* platform/qt/ListBoxQt.cpp: Removed.
* platform/qt/TextEditQt.cpp: Removed.
* rendering/RenderFormElement.cpp: Removed.
* rendering/RenderFormElement.h: Removed.
* rendering/RenderLabel.cpp: Removed.
* rendering/RenderLabel.h: Removed.
2007-01-03 Darin Adler <darin@apple.com>
Reviewed by Hyatt.
- fix bug where :after content appears backwards
Test: fast/css-generated-content/after-order.html
* rendering/RenderBlock.cpp:
(WebCore::isAfterContent): Added.
(WebCore::RenderBlock::addChildToFlow): Use isAfterContent.
* rendering/RenderInline.cpp:
(WebCore::isAfterContent): Added.
(WebCore::RenderInline::addChildToFlow): Use isAfterContent.
2007-01-03 David Hyatt <hyatt@apple.com>
Implement box-shadow parsing... getting it all into the RenderStyle.
Reviewed by beth
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSPropertyNames.in:
* css/cssparser.cpp:
(WebCore::CSSParser::parseValue):
* css/cssstyleselector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
* rendering/RenderStyle.cpp:
(WebCore::StyleCSS3NonInheritedData::StyleCSS3NonInheritedData):
(WebCore::StyleCSS3NonInheritedData::operator==):
(WebCore::StyleCSS3NonInheritedData::shadowDataEquivalent):
(WebCore::RenderStyle::diff):
(WebCore::RenderStyle::setBoxShadow):
* rendering/RenderStyle.h:
(WebCore::RenderStyle::boxShadow):
2007-01-03 Beth Dakin <bdakin@apple.com>
Reviewed by John.
Call into WebKit to get localized strings for all of the context
menu item titles.
* page/mac/WebCoreViewFactory.h:
* platform/ContextMenu.cpp:
(WebCore::createAndAppendFontSubMenu):
(WebCore::createAndAppendSpellingAndGrammarSubMenu):
(WebCore::createAndAppendSpellingSubMenu):
(WebCore::createAndAppendSpeechSubMenu):
(WebCore::createAndAppendWritingDirectionSubMenu):
(WebCore::ContextMenu::populate):
(WebCore::ContextMenu::checkOrEnableIfNeeded):
* platform/LocalizedStrings.h:
* platform/mac/LocalizedStringsMac.mm:
(WebCore::contextMenuItemTagOpenLinkInNewWindow):
(WebCore::contextMenuItemTagDownloadLinkToDisk):
(WebCore::contextMenuItemTagCopyLinkToClipboard):
(WebCore::contextMenuItemTagOpenImageInNewWindow):
(WebCore::contextMenuItemTagDownloadImageToDisk):
(WebCore::contextMenuItemTagCopyImageToClipboard):
(WebCore::contextMenuItemTagOpenFrameInNewWindow):
(WebCore::contextMenuItemTagCopy):
(WebCore::contextMenuItemTagGoBack):
(WebCore::contextMenuItemTagGoForward):
(WebCore::contextMenuItemTagStop):
(WebCore::contextMenuItemTagReload):
(WebCore::contextMenuItemTagCut):
(WebCore::contextMenuItemTagPaste):
(WebCore::contextMenuItemTagNoGuessesFound):
(WebCore::contextMenuItemTagIgnoreSpelling):
(WebCore::contextMenuItemTagLearnSpelling):
(WebCore::contextMenuItemTagSearchInSpotlight):
(WebCore::contextMenuItemTagSearchWeb):
(WebCore::contextMenuItemTagLookUpInDictionary):
(WebCore::contextMenuItemTagOpenLink):
(WebCore::contextMenuItemTagIgnoreGrammar):
(WebCore::contextMenuItemTagSpellingMenu):
(WebCore::contextMenuItemTagShowSpellingPanel):
(WebCore::contextMenuItemTagCheckSpelling):
(WebCore::contextMenuItemTagCheckSpellingWhileTyping):
(WebCore::contextMenuItemTagCheckGrammarWithSpelling):
(WebCore::contextMenuItemTagFontMenu):
(WebCore::contextMenuItemTagShowFonts):
(WebCore::contextMenuItemTagBold):
(WebCore::contextMenuItemTagItalic):
(WebCore::contextMenuItemTagUnderline):
(WebCore::contextMenuItemTagOutline):
(WebCore::contextMenuItemTagStyles):
(WebCore::contextMenuItemTagShowColors):
(WebCore::contextMenuItemTagSpeechMenu):
(WebCore::contextMenuItemTagStartSpeaking):
(WebCore::contextMenuItemTagStopSpeaking):
(WebCore::contextMenuItemTagWritingDirectionMenu):
(WebCore::contextMenuItemTagDefaultDirection):
(WebCore::contextMenuItemTagLeftToRight):
(WebCore::contextMenuItemTagRightToLeft):
2007-01-03 Brady Eidson <beidson@apple.com>
Reviewed by Darin and Geoff
http://bugs.webkit.org/show_bug.cgi?id=12105 - Crash visiting Acid2 test page
-Replace lost "free nil checking" in the WebKit->WebCore conversion of the BackForwardList
-Changed ::createItem and ::createItemTree to ::createHistoryItem and ::createHistoryItemTree
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::createHistoryItem):
(WebCore::FrameLoader::addBackForwardItemClippedAtTarget):
(WebCore::FrameLoader::createHistoryItemTree):
(WebCore::FrameLoader::updateHistoryForInternalLoad):
* loader/FrameLoader.h:
2007-01-03 Anders Carlsson <acarlsson@apple.com>
Reviewed by Geoff.
Allow plugin elements to handle off events to their widgets.
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::defaultEventHandler):
* html/HTMLPlugInElement.h:
* platform/Widget.h:
(WebCore::Widget::handleEvent):
2007-01-03 Lars Knoll <lars@trolltech.com>
Fix the Qt build
* WebCore.pro:
* history/qt/PageCacheQt.cpp: Added.
(WebCore::PageCache::close):
* loader/qt/DocumentLoaderQt.cpp:
(WebCore::DocumentLoader::getResponseRefreshAndModifiedHeaders):
(WebCore::DocumentLoader::urlForHistory):
* loader/qt/FrameLoaderQt.cpp:
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
(WebCore::FrameLoader::didFirstLayout):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::opened):
(WebCore::FrameLoader::dataURLBaseFromRequest):
(WebCore::FrameLoader::applyUserAgent):
* platform/network/qt/ResourceHandleQt.cpp:
(WebCore::ResourceHandle::loadsBlocked):
(WebCore::ResourceHandle::willLoadFromCache):
2007-01-02 Brady Eidson <beidson@apple.com>
Reviewed extensively and repeatedly by Darin
<rdar://problem/4887137> - WebCore Back/Forward Cache
* WebCore.exp:
* WebCore.xcodeproj/project.pbxproj:
* bridge/mac/WebCorePageState.h: Removed.
* bridge/mac/WebCorePageState.mm: Removed.
* history/BackForwardList.cpp: Added - This largely emulates the design of WebBackForwardList
(WebCore::BackForwardList::BackForwardList):
(WebCore::BackForwardList::~BackForwardList):
(WebCore::BackForwardList::addItem):
(WebCore::BackForwardList::goBack):
(WebCore::BackForwardList::goForward):
(WebCore::BackForwardList::goToItem):
(WebCore::BackForwardList::backItem):
(WebCore::BackForwardList::currentItem):
(WebCore::BackForwardList::forwardItem):
(WebCore::BackForwardList::backListWithLimit):
(WebCore::BackForwardList::forwardListWithLimit):
(WebCore::BackForwardList::capacity):
(WebCore::BackForwardList::setCapacity):
(WebCore::BackForwardList::setPageCacheSize):
(WebCore::BackForwardList::pageCacheSize):
(WebCore::BackForwardList::clearPageCache):
(WebCore::BackForwardList::usesPageCache):
(WebCore::BackForwardList::backListCount):
(WebCore::BackForwardList::forwardListCount):
(WebCore::BackForwardList::itemAtIndex):
(WebCore::BackForwardList::entries):
(WebCore::BackForwardList::close):
(WebCore::BackForwardList::closed):
(WebCore::BackForwardList::removeItem):
(WebCore::BackForwardList::containsItem):
(WebCore::BackForwardList::setDefaultPageCacheSize):
(WebCore::BackForwardList::defaultPageCacheSize):
* history/BackForwardList.h: Added.
* history/HistoryItem.cpp: Added - This largely emulates the design of WebBackForwardList
(WebCore::defaultNotifyHistoryItemChanged):
(WebCore::HistoryItem::HistoryItem):
(WebCore::HistoryItem::~HistoryItem):
(WebCore::HistoryItem::copy):
(WebCore::HistoryItem::setHasPageCache):
(WebCore::HistoryItem::retainIconInDatabase):
(WebCore::HistoryItem::urlString):
(WebCore::HistoryItem::originalURLString):
(WebCore::HistoryItem::title):
(WebCore::HistoryItem::alternateTitle):
(WebCore::HistoryItem::icon):
(WebCore::HistoryItem::lastVisitedTime):
(WebCore::HistoryItem::url):
(WebCore::HistoryItem::originalURL):
(WebCore::HistoryItem::target):
(WebCore::HistoryItem::parent):
(WebCore::HistoryItem::setAlternateTitle):
(WebCore::HistoryItem::setURLString):
(WebCore::HistoryItem::setURL):
(WebCore::HistoryItem::setOriginalURLString):
(WebCore::HistoryItem::setTitle):
(WebCore::HistoryItem::setTarget):
(WebCore::HistoryItem::setParent):
(WebCore::HistoryItem::setLastVisitedTime):
(WebCore::HistoryItem::visitCount):
(WebCore::HistoryItem::setVisitCount):
(WebCore::HistoryItem::scrollPoint):
(WebCore::HistoryItem::setScrollPoint):
(WebCore::HistoryItem::clearScrollPoint):
(WebCore::HistoryItem::setDocumentState):
(WebCore::HistoryItem::documentState):
(WebCore::HistoryItem::clearDocumentState):
(WebCore::HistoryItem::isTargetItem):
(WebCore::HistoryItem::setIsTargetItem):
(WebCore::HistoryItem::alwaysAttemptToUsePageCache):
(WebCore::HistoryItem::setAlwaysAttemptToUsePageCache):
(WebCore::HistoryItem::addChildItem):
(WebCore::HistoryItem::childItemWithName):
(WebCore::HistoryItem::recurseToFindTargetItem):
(WebCore::HistoryItem::targetItem):
(WebCore::HistoryItem::pageCache):
(WebCore::HistoryItem::children):
(WebCore::HistoryItem::hasChildren):
(WebCore::HistoryItem::formContentType):
(WebCore::HistoryItem::formReferrer):
(WebCore::HistoryItem::rssFeedReferrer):
(WebCore::HistoryItem::setRSSFeedReferrer):
(WebCore::HistoryItem::setFormInfoFromRequest):
(WebCore::HistoryItem::formData):
(WebCore::HistoryItem::mergeAutoCompleteHints):
(WebCore::HistoryItem::hasPageCache):
(WebCore::timer): Function to manage the global release timer
(WebCore::pendingPageCacheToRelease): Function to manage the global queue of caches to be released
(WebCore::HistoryItem::releasePageCache):
(WebCore::closeObjectsInPendingPageCaches):
(WebCore::HistoryItem::releaseAllPendingPageCaches):
(WebCore::HistoryItem::scheduleRelease):
(WebCore::HistoryItem::print):
* history/HistoryItem.h: Added.
* history/mac/HistoryItemMac.mm: Added.
(WebCore::HistoryItem::viewState): In the future we need a platform agnostic way to manage the view state
(WebCore::HistoryItem::setViewState):
(WebCore::HistoryItem::getTransientProperty): Transient properties are, for now, only a Mac concept
(WebCore::HistoryItem::setTransientProperty):
* history/HistoryItemTimer.cpp: Added
(WebCore::HistoryItemTimer::HistoryItemTimer): We need a specific class to be the history item timer because
WebCore::Timers only work when you have an instance of an object, but the caches pending release is a static concept
(WebCore::HistoryItemTimer::isActive):
(WebCore::HistoryItemTimer::schedule):
(WebCore::HistoryItemTimer::invalidate):
(WebCore::HistoryItemTimer::callReleasePageCache):
* history/HistoryItemTimer.h: Added.
* history/PageCache.cpp Added - This is a class that contains the fields that used to be in an NSDictionary in WebKit
(WebCore::PageCache::PageCache):
(WebCore::PageCache::setPageState):
(WebCore::PageCache::~PageCache):
(WebCore::PageCache::pageState):
(WebCore::PageCache::setDocumentLoader):
(WebCore::PageCache::documentLoader):
(WebCore::PageCache::setTimeStamp):
(WebCore::PageCache::setTimeStampToNow):
(WebCore::PageCache::timeStamp):
* history/PageCache.h: Added.
* history/mac/PageCacheMac.mm: Added.
(WebCore::PageCache::close):
(WebCore::PageCache::setDocumentView): In the future we need a platform agnostic way to manage the documentView
(WebCore::PageCache::documentView):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::loadFromPageCache):
(WebCore::DocumentLoader::setLoadingFromPageCache):
(WebCore::DocumentLoader::isLoadingFromPageCache):
(WebCore::DocumentLoader::originalURL):
(WebCore::DocumentLoader::requestURL):
(WebCore::DocumentLoader::responseURL):
(WebCore::DocumentLoader::responseMIMEType):
* loader/DocumentLoader.h:
* loader/FrameLoader.cpp: Responsibilities previously scattered in WebKit but concentrated in WebView and WebFrame
are now here, where they should be.
(WebCore::FrameLoader::clear):
(WebCore::FrameLoader::restoreDocumentState):
(WebCore::FrameLoader::goBackOrForward):
(WebCore::FrameLoader::provisionalLoadStarted):
(WebCore::FrameLoader::canCachePage):
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::transitionToCommitted):
(WebCore::FrameLoader::open):
(WebCore::FrameLoader::didFirstLayout):
(WebCore::FrameLoader::dispatchDidChangeLocationWithinPage):
(WebCore::FrameLoader::dispatchDidFinishLoadToClient):
(WebCore::FrameLoader::updateGlobalHistoryForStandardLoad): Marked for usage in future GlobalHistory (uses client for now)
(WebCore::FrameLoader::updateGlobalHistoryForReload): Ditto
(WebCore::FrameLoader::shouldGoToHistoryItem):
(WebCore::FrameLoader::addExtraFieldsToRequest):
(WebCore::FrameLoader::addHistoryItemForFragmentScroll):
(WebCore::FrameLoader::loadProvisionalItemFromPageCache):
(WebCore::FrameLoader::createPageCache):
(WebCore::FrameLoader::shouldTreatURLAsSameAsCurrent):
(WebCore::FrameLoader::createItem):
(WebCore::FrameLoader::addBackForwardItemClippedAtTarget):
(WebCore::FrameLoader::createItemTree):
(WebCore::FrameLoader::saveScrollPositionAndViewStateToItem):
(WebCore::FrameLoader::restoreScrollPositionAndViewState):
(WebCore::FrameLoader::purgePageCache):
(WebCore::FrameLoader::invalidateCurrentItemPageCache):
(WebCore::FrameLoader::saveDocumentState):
(WebCore::FrameLoader::loadItem):
(WebCore::FrameLoader::urlsMatchItem):
(WebCore::FrameLoader::goToItem):
(WebCore::FrameLoader::recursiveGoToItem):
(WebCore::FrameLoader::childFramesMatchItem):
(WebCore::FrameLoader::updateHistoryForStandardLoad):
(WebCore::FrameLoader::updateHistoryForClientRedirect):
(WebCore::FrameLoader::updateHistoryForBackForwardNavigation):
(WebCore::FrameLoader::updateHistoryForReload):
(WebCore::FrameLoader::updateHistoryForInternalLoad):
(WebCore::FrameLoader::updateHistoryForCommit):
(WebCore::FrameLoader::saveDocumentAndScrollState):
(WebCore::FrameLoader::currentHistoryItem):
(WebCore::FrameLoader::previousHistoryItem):
(WebCore::FrameLoader::provisionalHistoryItem):
(WebCore::FrameLoader::setCurrentHistoryItem):
(WebCore::FrameLoader::setPreviousHistoryItem):
(WebCore::FrameLoader::setProvisionalHistoryItem):
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* loader/mac/DocumentLoaderMac.mm:
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::getResponseRefreshAndModifiedHeaders):
(WebCore::DocumentLoader::commitIfReady):
(WebCore::DocumentLoader::urlForHistory):
* loader/mac/FrameLoaderMac.mm:
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::startLoading):
(WebCore::FrameLoader::receivedMainResourceError):
(WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
(WebCore::FrameLoader::opened):
(WebCore::FrameLoader::dataURLBaseFromRequest):
(WebCore::FrameLoader::didChangeTitle):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
* page/FrameTree.cpp:
(WebCore::FrameTree::removeChild):
* page/Page.cpp: Transfered a handful of concepts from WebView
(WebCore::Page::Page):
(WebCore::Page::~Page):
(WebCore::Page::backForwardList):
(WebCore::Page::goBack):
(WebCore::Page::goForward):
(WebCore::Page::goToItem):
* page/Page.h:
* page/PageState.h:
* page/mac/FrameMac.h:
* page/mac/FrameMac.mm:
* page/mac/WebCoreFrameBridge.h:
* page/mac/WebCoreFrameBridge.mm:
* platform/KURL.cpp:
(WebCore::KURL::print): Added debug only method for debugging convenience
* platform/KURL.h:
* platform/Logging.cpp:
(WebCore::): Added some logging channels
* platform/Logging.h:
* platform/PlatformString.h:
(WebCore::nsStringNilIfEmpty): Added for WebKit use
* platform/SystemTime.h: Added userIdleTime()
* platform/graphics/svg/SVGImage.cpp:
* platform/graphics/svg/SVGImageEmptyClients.h: Updated for new FrameLoaderClient methods
(WebCore::SVGEmptyFrameLoaderClient::setDocumentViewFromPageCache):
(WebCore::SVGEmptyFrameLoaderClient::updateGlobalHistoryForStandardLoad):
(WebCore::SVGEmptyFrameLoaderClient::updateGlobalHistoryForReload):
(WebCore::SVGEmptyFrameLoaderClient::shouldGoToHistoryItem):
(WebCore::SVGEmptyFrameLoaderClient::saveScrollPositionAndViewStateToItem):
(WebCore::SVGEmptyFrameLoaderClient::saveDocumentViewToPageCache):
(WebCore::SVGEmptyFrameLoaderClient::canCachePage):
(WebCore::SVGEmptyEditorClient::~SVGEmptyEditorClient):
* platform/mac/LoggingMac.mm:
(WebCore::InitializeLoggingChannelsIfNecessary):
* platform/mac/SystemTimeMac.cpp:
(WebCore::userIdleTime):
* platform/mac/WebCoreSystemInterface.h: Added wkSecondsSinceLastInput for use in userIdleTime
* platform/mac/WebCoreSystemInterface.mm:
* platform/network/FormData.cpp:
(WebCore::FormData::FormData):
(WebCore::FormData::copy):
* platform/network/FormData.h:
* platform/network/ResourceHandle.h:
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::willLoadFromCache): For "are you sure you want to resubmit?" nag
* platform/qt/TemporaryLinkStubs.cpp:
(WebCore::userIdleTime):
* rendering/RenderPart.h:
2007-01-02 Darin Adler <darin@apple.com>
Rubber stamped by Mitz.
Rename isRenderSVGContainer to isSVGContainer.
* platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::renderSubtreeToImage):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::containingBlock):
* rendering/RenderObject.h:
(WebCore::RenderObject::isSVGContainer):
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::viewportTransform):
* rendering/RenderSVGContainer.h:
(WebCore::RenderSVGContainer::isSVGContainer):
* rendering/RenderTreeAsText.cpp:
(WebCore::write):
2007-01-03 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Mitz.
Rename isKCanvasContainer to isRenderSVGContainer.
* platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::renderSubtreeToImage):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::containingBlock):
* rendering/RenderObject.h:
(WebCore::RenderObject::isRenderSVGContainer):
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::viewportTransform):
* rendering/RenderSVGContainer.h:
(WebCore::RenderSVGContainer::isRenderSVGContainer):
* rendering/RenderTreeAsText.cpp:
(WebCore::write):
2007-01-02 Beth Dakin <bdakin@apple.com>
Reviewed by Darin.
Fix assertion failure with WebCore context menus by getting "Copy
Image" item added in.
* platform/ContextMenu.cpp:
(WebCore::ContextMenu::populate): Check if the image url is a local
file or if we have an image in the cache.
2007-01-02 Sam Weinig <sam@webkit.org>
Reviewed by Anders.
Patch for http://bugs.webkit.org/show_bug.cgi?id=12072
select with align attribute should not affect contained text
Don't map align for select elements.
Test: fast/forms/select-align.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::parseMappedAttribute):
2007-01-02 Sam Weinig <sam@webkit.org>
Reviewed by Mitz.
Patch for http://bugs.webkit.org/show_bug.cgi?id=12071
button with align attribute should not affect contained text
Don't map align for button elements.
Test: fast/forms/button-align.html
* html/HTMLButtonElement.cpp:
(WebCore::HTMLButtonElement::parseMappedAttribute):
2007-01-02 Sam Weinig <sam@webkit.org>
Reviewed by Mitz and Anders.
Patch for http://bugs.webkit.org/show_bug.cgi?id=7075
textarea with align=right should not cause contained text to
be right-justified
Don't map align for textarea elements.
Test: fast/forms/textarea-align.html
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::parseMappedAttribute):
2007-01-02 Eric Seidel <eric@webkit.org>
Reviewed by mitz.
Implement SVGSVGElement::deselectAll()
* ksvg2/svg/SVGAnimationElement.h:
(WebCore::SVGAnimationElement::updateLastValueWithCurrent): add comment
* ksvg2/svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::deselectAll): implement
(WebCore::SVGSVGElement::setCurrentTime): add comment about bug
* ksvg2/svg/SVGSVGElement.idl: remove unnecessary comment
2007-01-02 Sam Weinig <sam@webkit.org>
Reviewed by Darin.
Patch for http://bugs.webkit.org/show_bug.cgi?id=3360
align="right" on a text input aligns the input field to the right
Don't map align if input type is not 'image'.
Test: fast/forms/input-align-image.html
Test: fast/forms/input-align.html
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setInputType):
(WebCore::HTMLInputElement::mapToEntry):
(WebCore::HTMLInputElement::parseMappedAttribute):
2007-01-02 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Eric.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12013
Fixes: http://bugs.webkit.org/show_bug.cgi?id=11980
Partly fixes: http://bugs.webkit.org/show_bug.cgi?id=6000 (pattern/gradient recursion works now)
Fixed testcases:
coords-units-01-b.svg (<pattern> in objectBoundingBoxMode were broken.)
pattern-in-defs.svg (clip pattern size against target size, to avoid excessive mallocs)
js-update-pattern.svg (live updating really works now!)
js-late-gradient-and-object-creation.svg (objectBoundingBoxMode gradients-on-text work now)
js-late-gradient-creation.svg (same)
Added testcases:
js-late-pattern-and-object-creation.svg (objectBoundingBoxMode patterns-on-text work now)
js-late-pattern-creation.svg (same)
gradient-cycle-detection.svg (tests that cyclic gradients are ignored)
gradient-deep-referencing.svg
pattern-cycle-detection.svg (tests that cyclic patterns are ignored)
pattern-deep-referencing.svg
Rewrite gradient & pattern code, fixing all known bugs & regressions.
-> Remove SVGResourceListener completly (the ugly resourceNotification() hack is gone now)
-> Make patterns operate in all possible combinations of patternUnits / patternContentunits
The SVGPaintServerPattern now asks the SVGPatternElement to build the pattern tile, passing
the target object's bbox rectangle -> objectBoundingBox calculations can be done, so SVGPaintServerPattern
itself doesn't need to know anything about "bounding box mode". Same could be done for gradients.
-> SVGLength::valueAsPercentage() returns again fractional values, saves some "/ 100.0" statements.
-> Deep references (gradientA -> gradientB -> gradientC...) work now. Previously only one reference worked.
Adding GradientAttributes.h / PatternAttributes.h helper structures for the property collection.
Cycle detection is implemented and won't kill us anymore :-)
JS updates on gradients/patterns only cause one repaint of the client's now. Gradient drawing
does not cause the target object to be redrawn immediately afterwards anymore.
* WebCore.xcodeproj/project.pbxproj:
* ksvg2/misc/KCanvasRenderingStyle.cpp:
(WebCore::KSVGPainterFactory::fillPaintServer):
(WebCore::KSVGPainterFactory::strokePaintServer):
* ksvg2/misc/KCanvasRenderingStyle.h:
* ksvg2/misc/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::addPendingResource):
(WebCore::SVGDocumentExtensions::isPendingResource):
(WebCore::SVGDocumentExtensions::removePendingResource):
* ksvg2/misc/SVGDocumentExtensions.h:
* ksvg2/svg/GradientAttributes.h: Added.
(WebCore::GradientAttributes::GradientAttributes):
(WebCore::GradientAttributes::spreadMethod):
(WebCore::GradientAttributes::boundingBoxMode):
(WebCore::GradientAttributes::gradientTransform):
(WebCore::GradientAttributes::stops):
(WebCore::GradientAttributes::setSpreadMethod):
(WebCore::GradientAttributes::setBoundingBoxMode):
(WebCore::GradientAttributes::setGradientTransform):
(WebCore::GradientAttributes::setStops):
(WebCore::GradientAttributes::hasSpreadMethod):
(WebCore::GradientAttributes::hasBoundingBoxMode):
(WebCore::GradientAttributes::hasGradientTransform):
(WebCore::GradientAttributes::hasStops):
* ksvg2/svg/LinearGradientAttributes.h: Added.
(WebCore::LinearGradientAttributes::LinearGradientAttributes):
(WebCore::LinearGradientAttributes::x1):
(WebCore::LinearGradientAttributes::y1):
(WebCore::LinearGradientAttributes::x2):
(WebCore::LinearGradientAttributes::y2):
(WebCore::LinearGradientAttributes::setX1):
(WebCore::LinearGradientAttributes::setY1):
(WebCore::LinearGradientAttributes::setX2):
(WebCore::LinearGradientAttributes::setY2):
(WebCore::LinearGradientAttributes::hasX1):
(WebCore::LinearGradientAttributes::hasY1):
(WebCore::LinearGradientAttributes::hasX2):
(WebCore::LinearGradientAttributes::hasY2):
* ksvg2/svg/PatternAttributes.h: Added.
(WebCore::PatternAttributes::PatternAttributes):
(WebCore::PatternAttributes::x):
(WebCore::PatternAttributes::y):
(WebCore::PatternAttributes::width):
(WebCore::PatternAttributes::height):
(WebCore::PatternAttributes::boundingBoxMode):
(WebCore::PatternAttributes::boundingBoxModeContent):
(WebCore::PatternAttributes::patternTransform):
(WebCore::PatternAttributes::patternContentElement):
(WebCore::PatternAttributes::setX):
(WebCore::PatternAttributes::setY):
(WebCore::PatternAttributes::setWidth):
(WebCore::PatternAttributes::setHeight):
(WebCore::PatternAttributes::setBoundingBoxMode):
(WebCore::PatternAttributes::setBoundingBoxModeContent):
(WebCore::PatternAttributes::setPatternTransform):
(WebCore::PatternAttributes::setPatternContentElement):
(WebCore::PatternAttributes::hasX):
(WebCore::PatternAttributes::hasY):
(WebCore::PatternAttributes::hasWidth):
(WebCore::PatternAttributes::hasHeight):
(WebCore::PatternAttributes::hasBoundingBoxMode):
(WebCore::PatternAttributes::hasBoundingBoxModeContent):
(WebCore::PatternAttributes::hasPatternTransform):
(WebCore::PatternAttributes::hasPatternContentElement):
* ksvg2/svg/RadialGradientAttributes.h: Added.
(WebCore::RadialGradientAttributes::RadialGradientAttributes):
(WebCore::RadialGradientAttributes::cx):
(WebCore::RadialGradientAttributes::cy):
(WebCore::RadialGradientAttributes::r):
(WebCore::RadialGradientAttributes::fx):
(WebCore::RadialGradientAttributes::fy):
(WebCore::RadialGradientAttributes::setCx):
(WebCore::RadialGradientAttributes::setCy):
(WebCore::RadialGradientAttributes::setR):
(WebCore::RadialGradientAttributes::setFx):
(WebCore::RadialGradientAttributes::setFy):
(WebCore::RadialGradientAttributes::hasCx):
(WebCore::RadialGradientAttributes::hasCy):
(WebCore::RadialGradientAttributes::hasR):
(WebCore::RadialGradientAttributes::hasFx):
(WebCore::RadialGradientAttributes::hasFy):
* ksvg2/svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::notifyAttributeChange):
(WebCore::SVGGradientElement::canvasResource):
(WebCore::SVGGradientElement::buildStops):
(WebCore::SVGGradientElement::insertedIntoDocument):
* ksvg2/svg/SVGGradientElement.h:
* ksvg2/svg/SVGLength.cpp:
(WebCore::SVGLength::valueAsPercentage):
* ksvg2/svg/SVGLinearGradientElement.cpp:
(WebCore::SVGLinearGradientElement::buildGradient):
(WebCore::SVGLinearGradientElement::collectGradientProperties):
* ksvg2/svg/SVGLinearGradientElement.h:
* ksvg2/svg/SVGLocatable.cpp:
(WebCore::SVGLocatable::getScreenCTM):
* ksvg2/svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::SVGPatternElement):
(WebCore::SVGPatternElement::buildPattern):
(WebCore::SVGPatternElement::notifyAttributeChange):
(WebCore::SVGPatternElement::canvasResource):
(WebCore::SVGPatternElement::insertedIntoDocument):
(WebCore::SVGPatternElement::collectPatternProperties):
* ksvg2/svg/SVGPatternElement.h:
* ksvg2/svg/SVGRadialGradientElement.cpp:
(WebCore::SVGRadialGradientElement::buildGradient):
(WebCore::SVGRadialGradientElement::collectGradientProperties):
* ksvg2/svg/SVGRadialGradientElement.h:
* platform/graphics/svg/SVGPaintServerGradient.cpp:
(WebCore::SVGPaintServerGradient::SVGPaintServerGradient):
(WebCore::SVGPaintServerGradient::externalRepresentation):
* platform/graphics/svg/SVGPaintServerGradient.h:
(WebCore::):
* platform/graphics/svg/SVGPaintServerLinearGradient.cpp:
(WebCore::SVGPaintServerLinearGradient::SVGPaintServerLinearGradient):
* platform/graphics/svg/SVGPaintServerLinearGradient.h:
* platform/graphics/svg/SVGPaintServerPattern.cpp:
(WebCore::SVGPaintServerPattern::SVGPaintServerPattern):
(WebCore::SVGPaintServerPattern::patternBoundaries):
(WebCore::SVGPaintServerPattern::setPatternBoundaries):
(WebCore::SVGPaintServerPattern::setTile):
(WebCore::SVGPaintServerPattern::externalRepresentation):
* platform/graphics/svg/SVGPaintServerPattern.h:
* platform/graphics/svg/SVGPaintServerRadialGradient.cpp:
(WebCore::SVGPaintServerRadialGradient::SVGPaintServerRadialGradient):
* platform/graphics/svg/SVGPaintServerRadialGradient.h:
* platform/graphics/svg/SVGResource.cpp:
(WebCore::SVGResource::invalidate):
(WebCore::SVGResource::repaintClients):
* platform/graphics/svg/SVGResource.h:
* platform/graphics/svg/SVGResourceListener.h:
* platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
(WebCore::cgGradientCallback):
(WebCore::CGShadingRefForRadialGradient):
(WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
(WebCore::SVGPaintServerGradient::updateQuartzGradientCache):
(WebCore::SVGPaintServerGradient::teardown):
(WebCore::SVGPaintServerGradient::renderPath):
(WebCore::SVGPaintServerGradient::handleBoundingBoxModeAndGradientTransformation):
(WebCore::SVGPaintServerGradient::setup):
(WebCore::SVGPaintServerGradient::invalidate):
* platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
(WebCore::SVGPaintServerPattern::setup):
(WebCore::SVGPaintServerPattern::teardown):
* platform/graphics/svg/qt/SVGPaintServerLinearGradientQt.cpp:
(WebCore::SVGPaintServerLinearGradient::setup):
* platform/graphics/svg/qt/SVGPaintServerPatternQt.cpp:
(WebCore::SVGPaintServerPattern::setup):
* platform/graphics/svg/qt/SVGPaintServerRadialGradientQt.cpp:
(WebCore::SVGPaintServerRadialGradient::setup):
2007-01-02 Zack Rusin <zack@kde.org>
Compilation fix. File names are case-sensitive.
* ksvg2/svg/SVGPathSegList.cpp:
2007-01-02 Zack Rusin <zack@kde.org>
Compilation fixes for the Qt port.
* WebCore.pro:
* platform/qt/FrameQt.cpp:
(WebCore::FrameQt::bindingRootObject):
(WebCore::FrameQt::addPluginRootObject):
2007-01-02 Eric Seidel <eric@webkit.org>
Reviewed by rwlbuis.
Refactor more animation code for better sharing between SVGAnimate*Element classes.
- replace handleEndCondition with resetValues() and updateLastValueWithCurrent()
- move initialTransform() function down into SVGTimer (eventually to AnimationCompositor)
Add non-functional (only parses) SVGAnimateMotionElement
Improve precision of getPointAtLength calculations and add support for "getNormalAtLength" functionality (needed for rotate='auto' support in animateMotion)
Move add getSegmentAtLength functionality to SVGPathSegList, move toPathData into SVGPathSegList as well.
Add SVGAnimationElement::hasValidTarget() for future better/simpler ASSERT checking
change transformMatrix() to currentTransform() to match AffineTransform class name
* WebCore.xcodeproj/project.pbxproj:
* ksvg2/misc/SVGTimer.cpp:
(WebCore::SVGTimer::animationsByElement):
(WebCore::baseValueTransformList):
(WebCore::SVGTimer::applyAnimations):
* ksvg2/svg/SVGAnimateColorElement.cpp:
(WebCore::SVGAnimateColorElement::updateLastValueWithCurrent):
* ksvg2/svg/SVGAnimateColorElement.h:
* ksvg2/svg/SVGAnimateMotionElement.cpp: Added.
(WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):
(WebCore::SVGAnimateMotionElement::~SVGAnimateMotionElement):
(WebCore::SVGAnimateMotionElement::hasValidTarget): added.
(WebCore::SVGAnimateMotionElement::parseMappedAttribute):
(WebCore::SVGAnimateMotionElement::animationPath): fetch path from <mpath> or d attribute
(WebCore::SVGAnimateMotionElement::updateCurrentValue):
(WebCore::SVGAnimateMotionElement::handleStartCondition):
(WebCore::SVGAnimateMotionElement::applyAnimationToValue):
* ksvg2/svg/SVGAnimateMotionElement.h: Added.
(WebCore::SVGAnimateMotionElement::contextElement):
(WebCore::SVGAnimateMotionElement::):
* ksvg2/svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::hasValidTarget): added.
(WebCore::SVGAnimateTransformElement::storeInitialValue):
(WebCore::SVGAnimateTransformElement::updateCurrentValue):
(WebCore::SVGAnimateTransformElement::updateLastValueWithCurrent):
(WebCore::SVGAnimateTransformElement::applyAnimationToValue):
(WebCore::SVGAnimateTransformElement::currentTransform):
* ksvg2/svg/SVGAnimateTransformElement.h:
* ksvg2/svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::hasValidTarget): added.
(WebCore::SVGAnimationElement::parseMappedAttribute):
(WebCore::SVGAnimationElement::isAdditive):
(WebCore::SVGAnimationElement::isAccumulated):
(WebCore::SVGAnimationElement::handleTimerEvent):
* ksvg2/svg/SVGAnimationElement.h:
(WebCore::SVGAnimationElement::updateLastValueWithCurrent):
(WebCore::SVGAnimationElement::resetValues):
* ksvg2/svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::getPointAtLength):
(WebCore::SVGPathElement::getPathSegAtLength):
(WebCore::SVGPathElement::parseMappedAttribute):
(WebCore::SVGPathElement::toPathData):
* ksvg2/svg/SVGPathSegList.cpp:
(WebCore::SVGPathSegList::getPathSegAtLength): added.
(WebCore::SVGPathSegList::toPathData): added.
* ksvg2/svg/SVGPathSegList.h:
* ksvg2/svg/svgtags.in: add animateMotion
* platform/graphics/Path.cpp:
(WebCore::pathLengthApplierFunction): add support for TraversalNormalAngleAtLength
* platform/graphics/PathTraversalState.cpp:
(WebCore::curveLength): support higher precision pointAtLength calculations, and add normalAtLength support
(WebCore::PathTraversalState::quadraticBezierTo):
(WebCore::PathTraversalState::cubicBezierTo):
* platform/graphics/PathTraversalState.h:
(WebCore::PathTraversalState::): add TraversalNormalAngleAtLength mode
2007-01-01 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- WebCore changes for http://bugs.webkit.org/show_bug.cgi?id=11849
REGRESSION (r18182): Google Calendar is broken (a regular expression containing a null character is not parsed correctly)
* platform/RegularExpression.cpp:
(WebCore::RegularExpression::Private::compile): Changed to not null-terminate
the pattern string and instead pass its length to pcre_compile.
2007-01-01 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=11359
Incomplete repaint of table cell's collapsed border when changing only the cell
Test: fast/repaint/table-cell-collapsed-border.html
* rendering/RenderTable.h:
Added needsSectionRecalc() accessor.
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::getAbsoluteRepaintRect): Overloaded to add the
outer half of any collapsed borders. This function checks the cell's borders'
widths but also the widths of the adjoining cells' borders, since they can
contribute to the length of this cell's borders perpendicular to them, making
such a border overflow the cell in both dimensions.
(WebCore::RenderTableCell::borderLeft): Split the collapsing borders case off to
borderHalfLeft().
(WebCore::RenderTableCell::borderRight): Ditto.
(WebCore::RenderTableCell::borderTop): Ditto.
(WebCore::RenderTableCell::borderBottom): Ditto.
(WebCore::RenderTableCell::borderHalfLeft): Added. Takes an 'outer' boolean
parameter. When true, this function returns the width of the part of the border
that is outside the cell (different from the inner width when the total width is odd).
(WebCore::RenderTableCell::borderHalfRight): Ditto.
(WebCore::RenderTableCell::borderHalfTop): Ditto.
(WebCore::RenderTableCell::borderHalfBottom): Ditto.
* rendering/RenderTableCell.h:
2007-01-01 David Kilzer <ddkilzer@webkit.org>
WebCore.vcproj change reviewed by Darin. Additional build files updated by ddkilzer.
* CMakeLists.txt: Removed RenderLineEdit.cpp.
* WebCore.vcproj/WebCore/WebCore.vcproj: Removed RenderLineEdit.cpp and RenderLineEdit.h.
* WebCoreSources.bkl: Removed RenderLineEdit.cpp.
2007-01-01 Mitz Pettel <mitz@webkit.org>
Reviewed by Mark Rowe.
- fix http://bugs.webkit.org/show_bug.cgi?id=12042
Assertion failure in WebCore::RenderObject::drawBorder
Test: fast/borders/outline-offset-min-assert.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::paintOutline): Bail out if the width or height is
smaller than twice the outline inset.
2007-01-01 Mark Rowe <bdash@webkit.org>
Reviewed by Eric.
http://bugs.webkit.org/show_bug.cgi?id=12061
Bug 12061: Crash in WebCore::Shared<WebCore::StringImpl>::deref
* rendering/RenderStyle.cpp:
(WebCore::ContentData::clearContent): Reset _contentType to CONTENT_NONE to ensure repeated calls to clearContent
do not result in derefing deallocated members.
2007-01-01 Eric Seidel <eric@webkit.org>
Reviewed by andersca.
Begin pushing code down into SVGAnimateElement
* ksvg2/svg/SVGAnimateColorElement.cpp:
(WebCore::SVGAnimateColorElement::handleStartCondition):
* ksvg2/svg/SVGAnimateColorElement.h:
* ksvg2/svg/SVGAnimateElement.h:
(WebCore::SVGAnimateElement::updateCurrentValue):
(WebCore::SVGAnimateElement::handleStartCondition):
(WebCore::SVGAnimateElement::handleEndCondition):
* ksvg2/svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::handleStartCondition):
* ksvg2/svg/SVGAnimateTransformElement.h:
* ksvg2/svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::handleTimerEvent):
* ksvg2/svg/SVGAnimationElement.h:
* ksvg2/svg/SVGSetElement.cpp:
(WebCore::SVGSetElement::updateCurrentValue):
(WebCore::SVGSetElement::handleStartCondition):
(WebCore::SVGSetElement::handleEndCondition):
* ksvg2/svg/SVGSetElement.h:
2007-01-01 Eric Seidel <eric@webkit.org>
Reviewed by andersca.
Add static function SVGColor::colorFromRGBColorString to allow parsing Colors from SVG color strings w/o creating an SVGColor object.
* ksvg2/svg/SVGAnimateColorElement.cpp:
(WebCore::SVGAnimateColorElement::storeInitialValue): use colorFromRGBColorString
(WebCore::SVGAnimateColorElement::startIfNecessary): use colorFromRGBColorString
* ksvg2/svg/SVGColor.cpp:
(WebCore::SVGColor::setRGBColor): use colorFromRGBColorString
(WebCore::parseNumberOrPercent): new color parsing helper
(WebCore::SVGColor::colorFromRGBColorString): cleaned up version of setRGBColor parsing logic
* ksvg2/svg/SVGColor.h:
2007-01-01 Eric Seidel <eric@webkit.org>
Reviewed by andersca.
Split handleTimerEvent logic into separate functions in preparation for moving down into SVGAnimationElement
* ksvg2/svg/SVGAnimateColorElement.cpp:
(WebCore::SVGAnimateColorElement::storeInitialValue):
(WebCore::SVGAnimateColorElement::resetValues):
(WebCore::SVGAnimateColorElement::updateCurrentValue):
(WebCore::SVGAnimateColorElement::startIfNecessary):
(WebCore::SVGAnimateColorElement::handleEndCondition):
(WebCore::SVGAnimateColorElement::handleTimerEvent):
* ksvg2/svg/SVGAnimateColorElement.h:
* ksvg2/svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::storeInitialValue):
(WebCore::SVGAnimateTransformElement::resetValues):
(WebCore::SVGAnimateTransformElement::updateCurrentValue):
(WebCore::SVGAnimateTransformElement::startIfNecessary):
(WebCore::SVGAnimateTransformElement::handleEndCondition):
(WebCore::SVGAnimateTransformElement::handleTimerEvent):
* ksvg2/svg/SVGAnimateTransformElement.h:
2007-01-01 Rob Buis <buis@kde.org>
Reviewed by Eric.
Simple cleanups, removing unused color table, copyright and include guard fixes.
* ksvg2/svg/SVGColor.cpp:
* ksvg2/svg/SVGColor.h:
2007-01-01 Eric Seidel <eric@webkit.org>
Reviewed by andersca.
More animation code cleanup.
* ksvg2/svg/SVGAnimateColorElement.cpp:
(WebCore::SVGAnimateColorElement::handleTimerEvent):
* ksvg2/svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::handleTimerEvent):
* ksvg2/svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::SVGAnimationElement):
(WebCore::SVGAnimationElement::connectedToTimer):
(WebCore::SVGAnimationElement::connectTimer):
(WebCore::SVGAnimationElement::disconnectTimer):
(WebCore::SVGAnimationElement::updateForElapsedSeconds):
* ksvg2/svg/SVGAnimationElement.h:
* ksvg2/svg/SVGSetElement.cpp:
(WebCore::SVGSetElement::handleTimerEvent):
* ksvg2/svg/SVGSetElement.h:
2007-01-01 Eric Seidel <eric@webkit.org>
Reviewed by mitz.
More clean-up to animation code.
* ksvg2/svg/SVGAnimateColorElement.cpp:
(WebCore::SVGAnimateColorElement::handleTimerEvent):
* ksvg2/svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::handleTimerEvent):
(WebCore::SVGAnimateTransformElement::parseTransformValue):
(WebCore::SVGAnimateTransformElement::calculateRotationFromMatrix):
2007-01-01 Eric Seidel <eric@webkit.org>
Reviewed by olliej.
Begin pushing more animation logic out of SVGTimer and into the SVGAnimate* classes.
* ksvg2/misc/SVGTimer.cpp:
(WebCore::SVGTimer::animationsByElement): add comment
(WebCore::SVGTimer::notifyAll): push logic into SVGAnimte* classes
* ksvg2/svg/SVGAnimateColorElement.cpp:
(WebCore::SVGAnimateColorElement::applyAnimationToValue): added.
* ksvg2/svg/SVGAnimateColorElement.h:
* ksvg2/svg/SVGAnimateElement.cpp:
* ksvg2/svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::applyAnimationToValue): added.
* ksvg2/svg/SVGAnimateTransformElement.h:
* ksvg2/svg/SVGAnimationElement.cpp:
(WebCore::calculateTimePercentage): logic moved from SVGTimer
(WebCore::SVGAnimationElement::updateForElapsedSeconds): logic moved from SVGTimer
* ksvg2/svg/SVGAnimationElement.h:
* ksvg2/svg/SVGTransformList.cpp:
(SVGTransformList::concatenate): fixed spacing
2007-01-01 Eric Seidel <eric@webkit.org>
Reviewed by olliej.
Split out animationsByElement() logic in preparation for adding AnimationCompositor class
Add addColorsAndClamp helper (since adding and clamping is the common case)
* ksvg2/misc/SVGTimer.cpp:
(WebCore::SVGTimer::animationsByElement): split out from notifyAll
(WebCore::SVGTimer::notifyAll):
* ksvg2/misc/SVGTimer.h:
* ksvg2/svg/SVGAnimateColorElement.cpp:
(WebCore::SVGAnimateColorElement::addColorsAndClamp): added.
* ksvg2/svg/SVGAnimateColorElement.h:
2006-12-31 Eric Seidel <eric@webkit.org>
Reviewed by olliej.
Split KSVGTimeScheduler into SVGTimer and TimeScheduler.
(Basic clean-up before re-working animation system)
* WebCore.xcodeproj/project.pbxproj:
* ksvg2/misc/KSVGTimeScheduler.cpp: Removed.
* ksvg2/misc/KSVGTimeScheduler.h: Removed.
* ksvg2/misc/SVGTimer.cpp: Added.
(WebCore::SVGTimer::SVGTimer):
(WebCore::SVGTimer::calculateTimePercentage):
(WebCore::SVGTimer::notifyAll):
* ksvg2/misc/SVGTimer.h: Added.
* ksvg2/misc/TimeScheduler.cpp: Added.
(WebCore::TimeScheduler::TimeScheduler):
2006-12-31 Eric Seidel <eric@webkit.org>
Reviewed by olliej.
Re-enable animateTransform (now that SVGList is fixed)
(Things are only "less broken" not totally fixed yet.)
* ksvg2/misc/KSVGTimeScheduler.cpp:
(WebCore::SVGTimer::notifyAll):
2006-12-31 Mitz Pettel <mitz@webkit.org>
Reviewed by Hyatt.
- http://bugs.webkit.org/show_bug.cgi?id=12049
RenderBlock::calcMinMaxWidth() should not examine children of fixed-width blocks
No test possible (no change to functionality).
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::calcMinMaxWidth): Call calc{Inline,Block}MinMaxWidth()
only if their result is needed.
== Rolled over to ChangeLog-2006-12-31 ==