Timeline


and

03/01/05:

20:33 Changeset [8747] by hyatt

Fix for 4030890, regression with <sup> on Google. Fix some bogus != comparison checks in verticalPositionHint.

Reviewed by John

(RenderObject::getVerticalPosition):

19:38 Changeset [8746] by cblu

Fixed: <rdar://problem/4030669> smart delete does not delete spaces from pasted content

Reviewed by rjw.

  • khtml/editing/htmlediting.cpp: (khtml::DeleteSelectionCommand::initializePositionData): pass true for treatNBSPAsWhiteSpace to leadingWhitespacePosition and trailingWhitespacePosition when testing whether or not we have to delete those characters as well.
  • khtml/editing/jsediting.cpp: pass true for smartDelete when the selection granularity is WORD. This allows us to write smart delete layout tests.
  • layout-tests/editing/deleting/smart-delete-001-expected.txt: Added.
  • layout-tests/editing/deleting/smart-delete-001.html: Added.
  • layout-tests/editing/deleting/smart-delete-002-expected.txt: Added.
  • layout-tests/editing/deleting/smart-delete-002.html: Added.
18:17 Changeset [8745] by rjw

Fixed <rdar://problem/4027928> Tiger_8A394:Acrobat crashes while tried to remove the subscription errors by clicking on "Would you like to remove the subscription" from Tracker details view pane

The string objects created by KWQHeaderStringFromDictionary() leaked.

Reviewed by John Louch.

  • kwq/KWQLoader.mm: (KWQHeaderStringFromDictionary):
17:38 Changeset [8744] by jens

<rdar://problem/4004531> Simple Sun Signed Applet throws exceptions; doesn't run

17:21 Changeset [8743] by rjw

Re-checkin after previously backing out:

Fixed <rdar://problem/3990258> REGRESSION (125.12-181): top of picture that spans two pages is cut off on print from Safari

The problem was due to incorrect "object truncation" in RenderFlow::paintLines.
We attempt to push objects down if they don't fit on a page at
paint time. If the attempt to push object down failed we just
didn't paint at all.

Reviewed by Hyatt.

  • khtml/rendering/render_flow.cpp: (RenderFlow::paintLines):
17:18 Changeset [8742] by vicki

versioning for TOT, Safari 2.0 (401+) -- the tree is open!

17:12 Changeset [8741]

This commit was manufactured by cvs2svn to create tag 'Safari-301'.

17:12 Changeset [8740] by vicki

versioning for SUPanWheat, Safari 1.3 (v301)

17:07 Changeset [8739]

This commit was manufactured by cvs2svn to create tag
'Safari-401-test'.

17:07 Changeset [8738]

This commit was manufactured by cvs2svn to create tag 'Safari-401'.

17:07 Changeset [8737] by vicki

Safari-401 stamp

17:00 Changeset [8736] by cblu

Backed out my patch since the tree was closed.

  • khtml/editing/htmlediting.cpp: (khtml::DeleteSelectionCommand::initializePositionData):
  • khtml/editing/jsediting.cpp:
16:49 Changeset [8735] by rjw

Backed out change. Tree is closed.

16:47 Changeset [8734] by rjw

Fixed <rdar://problem/3990258> REGRESSION (125.12-181): top of picture that spans two pages is cut off on print from Safari

The problem was due to incorrect "object truncation" in RenderFlow::paintLines.
We attempt to push objects down if they don't fit on a page at
paint time. If the attempt to push object down failed we just
didn't paint at all.

Reviewed by Hyatt.

  • khtml/rendering/render_flow.cpp: (RenderFlow::paintLines):
15:26 Changeset [8733] by cblu

Fixed: <rdar://problem/4030669> smart delete does not delete spaces from pasted content

Reviewed by rjw.

  • khtml/editing/htmlediting.cpp: (khtml::DeleteSelectionCommand::initializePositionData): pass true for treatNBSPAsWhiteSpace to leadingWhitespacePosition and trailingWhitespacePosition when testing whether or not we have to delete those characters as well.
  • khtml/editing/jsediting.cpp: pass true for smartDelete when the selection granularity is WORD. This allows us to write smart delete layout tests.
  • layout-tests/editing/deleting/smart-delete-001-expected.txt: Added.
  • layout-tests/editing/deleting/smart-delete-001.html: Added.
  • layout-tests/editing/deleting/smart-delete-002-expected.txt: Added.
  • layout-tests/editing/deleting/smart-delete-002.html: Added.
14:46 Changeset [8732] by kocienda

Reviewed by Vicki

Fix for this bug:

<rdar://problem/4030068> Trailing <return> gets eaten when pasted at the end of a document

  • khtml/editing/htmlediting.cpp: (khtml::ReplaceSelectionCommand::doApply): Add code to handle formerly-unhandled end-of-document case.
14:42 Changeset [8731] by mjs

Reviewed by Vicki.

<rdar://problem/4003774> REGRESSION(125-181): JavaScript problems @ Yankee/Dixie quiz

Reworked how scopes are set up for event handlers to match other
browser. This includes the following changes:

  • Special scope entries are set up at the time the event handler is created, not at the time it fires.
  • Special scope is only set up for event handlers set in the html source through an html attribute, not for handlers set using addEventHandler or setting JS properties like onclick through JavaScript.
  • Special scope is based on the DOM node on which the handler is an attribute, not the event target.

This fixes the regression while allowing the fix to
<rdar://problem/3798453> (DIG: getting variable with same name as
DOM element attribute gets attribute value instead) to keep
working correctly.

  • khtml/ecma/kjs_events.cpp: (JSEventListener::handleEvent): (JSLazyEventListener::JSLazyEventListener): (JSLazyEventListener::parseCode):
  • khtml/ecma/kjs_events.h:
  • khtml/ecma/kjs_proxy.cpp: (KJSProxyImpl::createHTMLEventHandler):
  • khtml/ecma/kjs_proxy.h:
  • khtml/ecma/kjs_window.cpp: (Window::getJSLazyEventListener):
  • khtml/ecma/kjs_window.h:
  • khtml/html/html_baseimpl.cpp: (HTMLBodyElementImpl::parseHTMLAttribute): (HTMLFrameElementImpl::parseHTMLAttribute): (HTMLFrameSetElementImpl::parseHTMLAttribute):
  • khtml/html/html_elementimpl.cpp: (HTMLElementImpl::parseHTMLAttribute):
  • khtml/html/html_formimpl.cpp: (DOM::HTMLFormElementImpl::parseHTMLAttribute): (DOM::HTMLButtonElementImpl::parseHTMLAttribute): (DOM::HTMLInputElementImpl::parseHTMLAttribute): (DOM::HTMLLabelElementImpl::parseHTMLAttribute): (DOM::HTMLSelectElementImpl::parseHTMLAttribute): (DOM::HTMLTextAreaElementImpl::parseHTMLAttribute):
  • khtml/html/html_imageimpl.cpp: (HTMLImageElementImpl::parseHTMLAttribute):
  • khtml/html/html_objectimpl.cpp: (HTMLObjectElementImpl::parseHTMLAttribute):
  • khtml/khtml_part.cpp: (KHTMLPart::createHTMLEventListener):
  • khtml/khtml_part.h:
  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::createHTMLEventListener):
  • khtml/xml/dom_docimpl.h:
14:27 Changeset [8730] by sullivan

Reviewed by Darin.

  • fixed <rdar://problem/3987482> Format>Style>Italic is not enabled when a compose window is empty (works in Blot)
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView becomeFirstResponder]): call _updateFontPanel here so NSFontManager knows the right font for the menu items and the font panel
13:53 Changeset [8729] by harrison

Reviewed by Chris.

<rdar://problem/3915560> Mail would like an SPI to enable "smart" text paste/drop

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _smartDeleteRangeForProposedRange:]): (-[WebHTMLView _smartInsertForString:replacingRange:beforeString:afterString:]): New.
13:53 Changeset [8728] by harrison

Reviewed by Chris.

<rdar://problem/3915560> Mail would like an SPI to enable "smart" text paste/drop

  • kwq/WebCoreBridge.h:
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge smartDeleteRangeForProposedRange:]): (-[WebCoreBridge smartInsertForString:replacingRange:beforeString:afterString:]): New.
13:15 Changeset [8727] by cblu

Fixed: <rdar://problem/4030404> selection granularity should be set when extending selection via JS

Reviewed by kocienda.

  • khtml/ecma/kjs_window.cpp: (SelectionFunc::tryCall): set the granularity on the part. This will allow us to write smart paste layout tests.
  • layout-tests/editing/pasteboard/smart-paste-001-expected.txt: Added.
  • layout-tests/editing/pasteboard/smart-paste-001.html: Added.
  • layout-tests/editing/pasteboard/smart-paste-002-expected.txt: Added.
  • layout-tests/editing/pasteboard/smart-paste-002.html: Added.
  • layout-tests/editing/pasteboard/smart-paste-003-expected.txt: Added.
  • layout-tests/editing/pasteboard/smart-paste-003.html: Added.
  • layout-tests/editing/pasteboard/smart-paste-004-expected.txt: Added.
  • layout-tests/editing/pasteboard/smart-paste-004.html: Added.
  • layout-tests/editing/pasteboard/smart-paste-005-expected.txt: Added.
  • layout-tests/editing/pasteboard/smart-paste-005.html: Added.
  • layout-tests/editing/pasteboard/smart-paste-006-expected.txt: Added.
  • layout-tests/editing/pasteboard/smart-paste-006.html: Added.
  • layout-tests/editing/pasteboard/smart-paste-007-expected.txt: Added.
  • layout-tests/editing/pasteboard/smart-paste-007.html: Added.
11:16 Changeset [8726] by cblu

Fixed: <rdar://problem/4029934> smart paste with plain text can add too many spaces

Reviewed by kocienda.

  • khtml/editing/htmlediting.cpp: (khtml::ReplaceSelectionCommand::doApply): pass true for treatNBSPAsWhitespace to leadingWhitespacePosition and trailingWhitespacePosition
  • khtml/xml/dom_position.cpp: (DOM::isWS): take treatNBSPAsWhitespace param (DOM::Position::leadingWhitespacePosition): ditto (DOM::Position::trailingWhitespacePosition): ditto
  • khtml/xml/dom_position.h:
09:48 Changeset [8725] by kocienda

Reviewed by John

Fix for this bug:

<rdar://problem/3996605> Insert paragraph command puts new block in wrong place, creating difficult-to-handle HTML

  • khtml/editing/htmlediting.cpp: (khtml::InsertParagraphSeparatorCommand::doApply): Look for the upstream-most block to insert after when at the visible end of a block. This helps to avoid some undesirable sequences of markup which Dave says will be vary hard to render. Changing the command in this way avoids the "limitations" of the render tree by not asking it to render markup we do not want to make anyway.

All these tests change, but either in insignificant ways, or for the better.

  • layout-tests/editing/deleting/delete-3959464-fix-expected.txt:
  • layout-tests/editing/inserting/insert-div-001-expected.txt:
  • layout-tests/editing/inserting/insert-div-002-expected.txt:
  • layout-tests/editing/inserting/insert-div-004-expected.txt:
  • layout-tests/editing/inserting/insert-div-005-expected.txt:
  • layout-tests/editing/inserting/insert-div-009-expected.txt:
  • layout-tests/editing/inserting/insert-div-024-expected.txt:
  • layout-tests/editing/pasteboard/paste-text-011-expected.txt:
  • layout-tests/editing/pasteboard/paste-text-013-expected.txt:
  • layout-tests/editing/pasteboard/paste-text-015-expected.txt:
  • layout-tests/editing/style/block-style-004-expected.txt:
  • layout-tests/editing/style/block-style-005-expected.txt:
  • layout-tests/editing/style/block-style-006-expected.txt:
  • layout-tests/editing/style/remove-underline-across-paragraph-expected.txt:
  • layout-tests/editing/style/remove-underline-across-paragraph-in-bold-expected.txt:
  • layout-tests/editing/style/remove-underline-after-paragraph-expected.txt:
  • layout-tests/editing/style/remove-underline-after-paragraph-in-bold-expected.txt:

New test to check specific problem mentioned in the bug.

  • layout-tests/editing/inserting/insert-div-026-expected.txt: Added.
  • layout-tests/editing/inserting/insert-div-026.html: Added.

02/28/05:

17:58 Changeset [8724] by mjs

Reviewed by Darin.

<rdar://problem/4002864> REGRESSION(125-146) getElementById in onload fails in a test case involving external resources

Moved management of elementById hashtable from attach/detach to
insertedIntoDocument/removedFromDocument, to avoid being thrown
off by temporary detaches due to style recalcs.

  • khtml/xml/dom_elementimpl.cpp: (ElementImpl::insertedIntoDocument): (ElementImpl::removedFromDocument): (ElementImpl::attach): (ElementImpl::updateId):
  • khtml/xml/dom_elementimpl.h:

Make sure that insertedIntoDocument is called before firing any
DOM events.

  • khtml/xml/dom_nodeimpl.cpp: (NodeBaseImpl::dispatchChildInsertedEvents):
17:45 Changeset [8723] by hyatt

Fix for 4028999, safari crashes when resetting if mallocsribble is on. Clip rects were being cleared using dead
render objects. Change the ordering.

Reviewed by rjw

  • khtml/rendering/render_box.cpp: (RenderBox::detach):
  • khtml/rendering/render_layer.cpp: (RenderLayer::~RenderLayer):
16:49 Changeset [8722] by cblu

Fixed: <rdar://problem/4024786> REGRESSION (Mail): "Smart paste" plain-text word into Blot leaves insertion point misplaced

Reviewed by kocienda.

  • khtml/editing/htmlediting.cpp: (khtml::ReplaceSelectionCommand::completeHTMLReplacement): Call updateLayout so caretMinOffset and caretMaxOffset return correct values.
16:07 Changeset [8721] by sullivan

WebCore:

Reviewed by Ken.

  • WebCore part of fix for <rdar://problem/4023490> REGRESSION (125-185): Tabbing through links on frameset page gets stuck at end (tivofaq.com)
  • kwq/WebCoreBridge.h: add nextValidKeyViewOutsideWebFrameViews (code is in WebKit)

WebKit:

Reviewed by Ken.

  • WebKit part of fix for <rdar://problem/4023490> REGRESSION (125-185): Tabbing through links on frameset page gets stuck at end (tivofaq.com)

This tab-to-links stuff has been in shaky condition ever since AppKit futzed with
tabbing behavior in Tiger to add support for including the toolbar in the key loop.
I made some changes months ago to compensate for that, but some cases, such as this
one, still weren't fixed.

  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge _nextKeyViewOutsideWebFrameViewsWithValidityCheck:]): new bottleneck method, extracted from nextKeyViewOutsideWebFrameViews; handles nextKeyView or nextValidKeyView depending on parameter. (-[WebBridge nextKeyViewOutsideWebFrameViews]): now calls extracted method (-[WebBridge nextValidKeyViewOutsideWebFrameViews]): new method, calls new bottleneck method
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView nextValidKeyView]): when we're stuck at the end of a nextKeyView chain inside a nexted frame, use nextValidKeyViewOutsideWebFrameViews. Make sure we don't end up looking inside the web frame views while doing this.
15:43 Changeset [8720] by kocienda

Reviewed by John

Fix for this bug:

<rdar://problem/3972665> 8A360: HTML message partially truncated on left hand side, text-indent from Script Editor

  • khtml/css/css_computedstyle.cpp: inheritableProperties array now defined in css_valueimpl.cpp.
  • khtml/css/css_valueimpl.cpp: Define inheritableProperties array here. (DOM::CSSMutableStyleDeclarationImpl::copyBlockProperties): Use new name for blockProperties, and use the new constant for the number of items in the array. (DOM::CSSMutableStyleDeclarationImpl::removeBlockProperties): Ditto. (DOM::CSSMutableStyleDeclarationImpl::removeInheritableProperties): New function.
  • khtml/css/css_valueimpl.h: Declare inheritableProperties array and numInheritableProperties extern so they can be defined in css_valueimpl.cpp and used in css_computedstyle.cpp.
  • khtml/editing/htmlediting.cpp: (khtml::ReplacementFragment::removeStyleNodes): This code was misguided, and removed too much style from HTML elements. Now, it removes from HTML elements only the styles that we replace later with a call to applyStyle(). Also, add ID_B to list of inline "style" nodes we are willing to remove. Leaving it off was an oversight.
  • layout-tests/editing/pasteboard/paste-text-011-expected.txt: ID_B fix made this result change, without any visible change in the test.

New test:

  • layout-tests/editing/style/smoosh-styles-003.html
  • layout-tests/editing/style/smoosh-styles-003-expected.txt
15:10 Changeset [8719] by rjw

Fixed <rdar://problem/4026985> CrashTracer: ...14 crashes at com.apple.WebCore: -[KWQPageState invalidate] + 32

Added more nil checking and ASSERTS.
Without a reproducible case this is hard to definitively resolve.

Reviewed by John Sullivan.

  • kwq/KWQPageState.mm: (-[KWQPageState invalidate]):
14:51 Changeset [8718] by rjw

Fixed <rdar://problem/4027702> 3.5% performance regression btwn Safari-188 and Safari-400

I inadvertently checked in some debugging code that disabled
style sharing. Backed out that change.

  • khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::styleForElement):
13:16 Changeset [8717] by cblu

Fixed: <rdar://problem/4026639> www.bmw.ca configurator does not work with Safari

Reviewed by john.

  • khtml/ecma/kjs_html.cpp: (KJS::HTMLElement::tryGet): when frameset.<name of frame child> is called, return the window object of the frame child
09:51 Changeset [8716] by kocienda

Reviewed by Chris

Fix for this bug:

<rdar://problem/4026906> Paste of HTML table content can break table structure

  • khtml/editing/htmlediting.cpp: (khtml::ReplacementFragment::pruneEmptyNodes): Call new isProbablyTableStructureNode() function to prevent removal of empty table structure nodes. (khtml::ReplacementFragment::removeUnrenderedNodesUsingTestRendering): Ditto. (khtml::isProbablyTableStructureNode): New helper function.
  • khtml/editing/htmlediting.h: Declare new helper.
09:11 Changeset [8715] by cblu

Fixed: <rdar://problem/4023566> Stickies: Crash in ReplacementFragment::insertFragmentForTestRendering on paste

Reviewed by kocienda.

  • khtml/editing/htmlediting.cpp: (khtml::ApplyStyleCommand::addInlineStyleIfNeeded): ref and deref the element while it is "floating" (khtml::ReplacementFragment::insertFragmentForTestRendering): ditto (khtml::floatRefdElement): new, keeps an element alive while its ref count is 0 (khtml::createDefaultParagraphElement): removed commented out code (khtml::createBlockPlaceholderElement): ref the element and return it as "floating" (khtml::createFontElement): ditto (khtml::createStyleSpanElement): ditto
  • khtml/editing/htmlediting.h:

02/27/05:

20:21 Changeset [8714] by mjs

Reviewed by Vicki.

<rdar://problem/3993557> REGRESSION (125-180-ish): getElementsByTagName no longer works with namespace designations

  • khtml/xml/dom_nodeimpl.cpp: (NodeBaseImpl::getElementsByTagNameNS): When no namespace is specified, find elements of the specified name in any namespace to match Mozilla and earlier Safari behavior.

02/25/05:

17:41 Changeset [8713] by darin

Reviewed by Adele.

  • fixed <rdar://problem/4025618> Crash while searching at hollywoodvideo.com
  • khtml/html/html_formimpl.h: Added valueWithDefault.
  • khtml/html/html_formimpl.cpp: (DOM::HTMLInputElementImpl::appendFormData): Call valueWithDefault instead of going at the render object to try to get the default value; there may be no render object if this is display:none. (DOM::HTMLInputElementImpl::valueWithDefault): Added. Knows about the defaults for "submit" and "reset" buttons; otherwise just returns the value as-is.
  • khtml/rendering/render_form.h: Removed the defaultLabel member functions.
  • khtml/rendering/render_form.cpp: (RenderSubmitButton::rawText): Call valueWithDefault instead of using defaultLabel function here on the render side. The DOM needs to know how to deal with the default anyway for form submission. (RenderSubmitButton::defaultLabel): Removed. (RenderResetButton::defaultLabel): Removed. (RenderPushButton::defaultLabel): Removed.
17:03 Changeset [8712] by darin

WebCore:

Reviewed by John.

  • fixed <rdar://problem/4025088> window onblur and onfocus don't fire when text field has focus
  • kwq/KWQKHTMLPart.h: Added setWindowHasFocus function and m_windowHasFocus data member.
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::setDisplaysWithFocusAttributes): Took out the code that sends the focus and blur events. (KWQKHTMLPart::setWindowHasFocus): Put that code here instead.
  • kwq/WebCoreBridge.h: Added setWindowHasFocus: method to the bridge.
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge setWindowHasFocus:]): Added. Calls method on the part.

WebKit:

Reviewed by John.

  • fixed <rdar://problem/4025088> window onblur and onfocus don't fire when text field has focus
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView updateFocusState]): Renamed from updateFocusDisplay. Added call to setWindowHasFocus: method. (-[WebHTMLView viewDidMoveToWindow]): Call method by new name. (-[WebHTMLView windowDidBecomeKey:]): Ditto. (-[WebHTMLView windowDidResignKey:]): Ditto. (-[WebHTMLView becomeFirstResponder]): Ditto. (-[WebHTMLView resignFirstResponder]): Ditto.
16:43 Changeset [8711] by darin

Reviewed by John.

  • re-fixed <rdar://problem/3665430> horizontal scroll bar of text area does not show, even when text is wide in "no wrap" mode
  • kwq/KWQTextArea.mm: (-[KWQTextArea _updateTextViewWidth]): Don't change the text view width to match the text area's width in the "wrap" case.
15:51 Changeset [8710] by kocienda

Reviewed by Hyatt

Fix for this bug:

<rdar://problem/4021518> 8A394 Mail crashes during paste: khtml::RootInlineBox::closestLeafChildForXPos

  • khtml/editing/visible_units.cpp: (khtml::previousLinePosition): Adding an updateLayout call at the start of the function fixes the crash, since we caught line boxes in a not-completely-updated state. (khtml::nextLinePosition): Ditto.
15:49 Changeset [8709] by hyatt

Fix for 4010774, make sure to avoid an O(N2) algorithm in nextRenderer() that is triggered when large
DOM subtrees are inserted into documents via one insert/append call.

Reviewed by kocienda

  • khtml/xml/dom_nodeimpl.cpp: (NodeImpl::nextRenderer):
15:41 Changeset [8708] by rjw

Fixed <rdar://problem/3382926> Bidi neutrals at RTL/LTR boundaries not handled correctly.

Second pass at fixing 3382926 w/o causing layout regressions. Same concept:
if directionality of text's element is RTL and first character has neutral directionality
then set the initial directionality to RTL.

Reviewed by Hyatt.

  • khtml/rendering/bidi.cpp: (khtml::RenderBlock::bidiReorderLine): (khtml::RenderBlock::determineStartPosition):
14:16 Changeset [8707] by vicki

versioning for TOT, Safari 2.0 (400+)

14:10 Changeset [8706]

This commit was manufactured by cvs2svn to create tag 'Safari-300'.

14:10 Changeset [8705] by vicki

Safari 1.3 (300) stamp, for 10.3 Panther

14:05 Changeset [8704]

This commit was manufactured by cvs2svn to create tag 'Safari-400'.

14:05 Changeset [8703] by vicki

Safari-400 stamp

This is our first build with the new versioning scheme. Versions are Safari 2.0 (400) on 10.4, and Safari (1.3) 300 for 10.3. See this bug for details:

<rdar://problem/3962707> upgrade install of Tiger over SUPanWheat leaves Panther version of WebKit (need new version numbering scheme)

13:33 Changeset [8702] by kocienda

Reviewed by me

Roll out Chris' change to fix this bug:

<rdar://problem/4023566> Stickies: Crash in ReplacementFragment::insertFragmentForTestRendering on paste

That code change is responsible for all these new crashers:

<rdar://problem/4025177> crash copying safari.apple.com into Blot document
<rdar://problem/4025184> crash in DOM::NodeImpl::parentNode copying "New!" from google.com to Blot
<rdar://problem/4025214> crash in DOM::NodeImpl::getRect loading paste-match-style-001.html

Since we wish to close the tree for a build right now, I am rolling out rather than investigating.

  • khtml/editing/htmlediting.cpp: (khtml::ApplyStyleCommand::addInlineStyleIfNeeded) (khtml::ReplacementFragment::insertFragmentForTestRendering) (khtml::createDefaultParagraphElement) (khtml::createBlockPlaceholderElement) (khtml::createFontElement) (khtml::createStyleSpanElement)
  • khtml/editing/htmlediting.h
12:54 Changeset [8701] by rjw

Fixed <rdar://problem/4000962> 8A375: Help Viewer displays voiced sound and semi-voiced characters strangely (characters don't seem to be composed)

Added special case for voiced marks.

Reviewed by John.

  • WebCoreSupport.subproj/WebTextRenderer.m: (widthForNextCharacter):
11:42 Changeset [8700] by kocienda

Reviewed by John

Fix for this bug:

<rdar://problem/4020108> Pasting text into message makes Mail crash reproducibly

Note that, even with this fix, development build will crash until this bug is fixed:
<rdar://problem/4024996> Applying block styles can cause assertion failure in inline style removal

This will not crash deployment builds, so I am going to land.

  • khtml/editing/htmlediting.cpp: (khtml::ApplyStyleCommand::applyBlockStyle): Applying block styles can make the loop to reach beyondEnd fail since the structure of the document can change. Cache the next node first before operating on it, as we do elsewhere.
11:38 Changeset [8699] by vicki
  • recommit this change, since rolling it out did NOT fix the performance regression!

2005-02-23 Darin Adler <darin@apple.com>

Reviewed by John.

  • fixed <rdar://problem/4011405> REGRESSION (180-181): Unconfirmed text disappears when text focus moves

The key was to change things around so that we don't push text from the DOM to the widget
unless the DOM has actually been changed. This prevents the code path that wipes out inline input
during the blur process.

  • khtml/html/html_formimpl.cpp: (DOM::HTMLInputElementImpl::HTMLInputElementImpl): Start m_valueMatchesRenderer as false. (DOM::HTMLInputElementImpl::parseHTMLAttribute): Set m_valueMatchesRenderer to false when a new value is set here. (DOM::HTMLInputElementImpl::setValue): Set m_valueMatchesRenderer to false when a new value is set here. (DOM::HTMLInputElementImpl::setValueFromRenderer): Added. Sets m_value, sets m_valueMatchesRenderer to true, and also sends out the input event. It's better to have this here than in the renderer code. (DOM::HTMLTextAreaElementImpl::HTMLTextAreaElementImpl): Start m_valueIsValid as false (replaces m_dirtyvalue) and m_valueMatchesRenderer as false. (DOM::HTMLTextAreaElementImpl::updateValue): Added. Factored this out from the value function. Uses the new booleans and keeps them up to date, specifically setting m_valueMatchesRenderer based on where the value came from. (DOM::HTMLTextAreaElementImpl::value): Updated to call updateValue to do most of the work. (DOM::HTMLTextAreaElementImpl::setValue): Set both m_valueIsValid and m_valueMatchesRenderer. (DOM::HTMLTextAreaElementImpl::setDefaultValue): Take parameter by reference.
  • khtml/html/html_formimpl.h: Added setValueFromRenderer, valueMatchesRenderer, setValueMatchesRenderer, and m_valueMatchesRenderer to input element. For textarea element, made some parameters pass DOMString by reference, and added invalidateValue, updateValue, valueMatchesRenderer, and setValueMatchesRenderer.
  • khtml/rendering/render_form.cpp: (RenderLineEdit::updateFromElement): Don't re-get the value from the DOM if valueMatchesRenderer is true. (RenderLineEdit::slotTextChanged): Call setValueFromRenderer instead of manipulating the DOM directly. (RenderTextArea::detach): Call updateValue instead of calling value for its side effect. (RenderTextArea::handleFocusOut): Ditto. (RenderTextArea::updateFromElement): Call updateValue and then not re-get the value from the DOM if valueMatchesRenderer is true. (RenderTextArea::slotTextChanged): Call invalidateValue instead of directly setting m_dirtyvalue to true.
11:34 Changeset [8698] by cblu

Fixed: <rdar://problem/4023566> Stickies: Crash in ReplacementFragment::insertFragmentForTestRendering on paste

Reviewed by darin.

  • khtml/editing/htmlediting.cpp: (khtml::ApplyStyleCommand::addInlineStyleIfNeeded): (khtml::ReplacementFragment::insertFragmentForTestRendering): (khtml::floatRefdElement): (khtml::createDefaultParagraphElement): (khtml::createBlockPlaceholderElement): (khtml::createFontElement): (khtml::createStyleSpanElement):
  • khtml/editing/htmlediting.h:
10:48 Changeset [8697] by darin

Reviewed by John.

  • fixed <rdar://problem/4019823> Seed: Control-Y doesn't work
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]): Call _handleKillRing after setting the selection, since it uses the selection to get the text. (-[WebHTMLView _insertText:selectInsertedText:]): Check for empty string to avoid an assertion on the other side of the bridge when you yank the empty string.
10:38 Changeset [8696] by darin
  • kwq/character-sets.txt: Checked in updated file. This new file has no effect, because none of the changes affect character sets that we support, but it's good to have the latest file in here, and completely safe because I checked that the generated files have not changed.
10:36 Changeset [8695] by vicki

Reviewed by Darin.

  • back out this change, since it causes a 3.5% performance regression

2005-02-23 Darin Adler <darin@apple.com>

Reviewed by John.

  • fixed <rdar://problem/4011405> REGRESSION (180-181): Unconfirmed text disappears when text focus moves

The key was to change things around so that we don't push text from the DOM to the widget
unless the DOM has actually been changed. This prevents the code path that wipes out inline input
during the blur process.

  • khtml/html/html_formimpl.cpp: (DOM::HTMLInputElementImpl::HTMLInputElementImpl): Start m_valueMatchesRenderer as false. (DOM::HTMLInputElementImpl::parseHTMLAttribute): Set m_valueMatchesRenderer to false when a new value is set here. (DOM::HTMLInputElementImpl::setValue): Set m_valueMatchesRenderer to false when a new value is set here. (DOM::HTMLInputElementImpl::setValueFromRenderer): Added. Sets m_value, sets m_valueMatchesRenderer to true, and also sends out the input event. It's better to have this here than in the renderer code. (DOM::HTMLTextAreaElementImpl::HTMLTextAreaElementImpl): Start m_valueIsValid as false (replaces m_dirtyvalue) and m_valueMatchesRenderer as false. (DOM::HTMLTextAreaElementImpl::updateValue): Added. Factored this out from the value function. Uses the new booleans and keeps them up to date, specifically setting m_valueMatchesRenderer based on where the value came from. (DOM::HTMLTextAreaElementImpl::value): Updated to call updateValue to do most of the work. (DOM::HTMLTextAreaElementImpl::setValue): Set both m_valueIsValid and m_valueMatchesRenderer. (DOM::HTMLTextAreaElementImpl::setDefaultValue): Take parameter by reference.
  • khtml/html/html_formimpl.h: Added setValueFromRenderer, valueMatchesRenderer, setValueMatchesRenderer, and m_valueMatchesRenderer to input element. For textarea element, made some parameters pass DOMString by reference, and added invalidateValue, updateValue, valueMatchesRenderer, and setValueMatchesRenderer.
  • khtml/rendering/render_form.cpp: (RenderLineEdit::updateFromElement): Don't re-get the value from the DOM if valueMatchesRenderer is true. (RenderLineEdit::slotTextChanged): Call setValueFromRenderer instead of manipulating the DOM directly. (RenderTextArea::detach): Call updateValue instead of calling value for its side effect. (RenderTextArea::handleFocusOut): Ditto. (RenderTextArea::updateFromElement): Call updateValue and then not re-get the value from the DOM if valueMatchesRenderer is true. (RenderTextArea::slotTextChanged): Call invalidateValue instead of directly setting m_dirtyvalue to true.
10:29 Changeset [8694] by darin

Reviewed by Chris.

  • fixed <rdar://problem/4024786> REGRESSION (Mail): "Smart paste" plain-text word into Blot leaves insertion point misplaced
  • khtml/editing/htmlediting.cpp: (khtml::ReplaceSelectionCommand::doApply): Use the insertNodeAfterAndUpdateNodesInserted and insertNodeBeforeAndUpdateNodesInserted functions to add the leading and trailing spaces for smart paste.
09:43 Changeset [8693] by hyatt

Back out fix for 3382926, since it breaks LTR text inside RTL contexts.

Reviewed by john

  • khtml/rendering/bidi.cpp: (khtml::BidiIterator::direction):
09:33 Changeset [8692] by hyatt

Fix for 3975039, scrolling is slow in huge RSS views. Optimize the calculation of clip rects for overflow:hidden
layers. Also optimize layer movement when scrolling overflow sections.

Reviewed by darin

  • khtml/rendering/render_layer.cpp: (throw): (ClipRects::operator delete): (ClipRects::detach): (RenderLayer::RenderLayer): (RenderLayer::~RenderLayer): (RenderLayer::updateLayerPosition): (RenderLayer::removeOnlyThisLayer): (RenderLayer::insertOnlyThisLayer): (RenderLayer::scrollToOffset): (RenderLayer::hitTest): (RenderLayer::calculateClipRects): (RenderLayer::calculateRects): (RenderLayer::containsPoint): (RenderLayer::clearClipRects): (RenderLayer::clearClipRect):
  • khtml/rendering/render_layer.h: (khtml::ClipRects::m_refCnt): (khtml::ClipRects::overflowClipRect): (khtml::ClipRects::fixedClipRect): (khtml::ClipRects::posClipRect): (khtml::ClipRects::ref): (khtml::ClipRects::deref): (khtml::RenderLayer::clipRects):
  • khtml/rendering/render_object.cpp: (RenderObject::setStyle):
Note: See TracTimeline for information about the timeline view.