blob: 3e846a5ff3317b6a9615ec818dcc79093f97e86c [file] [log] [blame]
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 <larsnaesbye@stud.ku.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 ==