Timeline



Jan 26, 2005:

6:01 PM Changeset in webkit [8454] by darin
  • 4 edits in trunk/WebKit

Reviewed by John.

  • fixed <rdar://problem/3829517> WebView still draws white when setDrawsBackground set to NO and no content loaded yet
  • WebView.subproj/WebFrameView.m: (-[WebFrameView drawRect:]): Check drawsBackground, and don't draw the white "no document" background if it's NO. This fixes things for frames with no document.
  • WebView.subproj/WebImageView.m: (-[WebImageView drawRect:]): Same as above. This fixes things for frames with just an image.
  • WebView.subproj/WebFrame.m: (-[WebFrame _updateDrawsBackground]): Call setDrawsBackground: on the document view if it implements it. This fixes things for frames with plain text.
1:38 PM Changeset in webkit [8453] by rjw
  • 12 edits in trunk

JavaScriptCore:

Fixed <rdar://problem/3972522> (179-180) 40% slowdown on iBench JavaScript test

I added a member variable to ObjectImp. This changed it's size and consequently
hampered the optimizations built into the garbage collector. Objects no longer
fit within the allocators cell size, and thus allocation fell back to a slower
allocator.

As a result of this fix I also dramatically cleaned up how runtime objects are
accessed. The path mostly *removes* code.

Reviewed by Chris.

  • bindings/runtime_method.cpp: (RuntimeMethodImp::call):
  • bindings/runtime_object.cpp: (RuntimeObjectImp::get): (RuntimeObjectImp::put): (RuntimeObjectImp::canPut): (RuntimeObjectImp::hasProperty): (RuntimeObjectImp::defaultValue):
  • bindings/runtime_object.h:
  • kjs/object.cpp: (KJS::ObjectImp::ObjectImp):
  • kjs/object.h:

WebCore:

Fixed <rdar://problem/3972522> (179-180) 40% slowdown on iBench JavaScript test

I added a member variable to ObjectImp. This changed it's size and consequently
hampered the optimizations built into the garbage collector. Objects no longer
fit within the allocators cell size, and thus allocation fell back to a slower
allocator.

As a result of this fix I also dramatically cleaned up how runtime objects are
accessed. The path mostly *removes* code.

Reviewed by Chris.

  • khtml/ecma/kjs_dom.cpp: (DOMDocumentProtoFunc::tryCall): (DOMElementProtoFunc::tryCall): (KJS::getRuntimeObject):
  • khtml/ecma/kjs_dom.h:
  • khtml/ecma/kjs_html.cpp: (KJS::HTMLDocument::tryGet): (KJS::HTMLElement::tryGet): (KJS::HTMLElement::implementsCall): (KJS::HTMLElement::call): (KJS::HTMLElement::tryPut): (KJS::HTMLCollection::tryGet): (KJS::HTMLCollection::getNamedItems):
  • khtml/ecma/kjs_html.h:
  • khtml/ecma/kjs_window.cpp: (Window::get):
1:26 PM Changeset in webkit [8452] by rjw
  • 2 edits in trunk/WebCore

Fixed <rdar://problem/3757712> REGRESSION (Mail): WebCore does not allow Devanagari ligature input

For now we are using ICU UBreakIterator to determine grapheme boundaries for
cursor and deletion. This does not match what Cocoa does exactly, but does match
what Carbon does. The areas are difference are obscure, but, according to
Deborah Goldsmith, using the UBreakIterator is the reasonable approach.

Reviewed by Ken.

  • khtml/rendering/render_text.cpp: (RenderText::previousOffset): (RenderText::nextOffset):

Jan 25, 2005:

4:28 PM Changeset in webkit [8451] by harrison
  • 2 edits in trunk/WebCore

Reviewed by Maciej and Richard.

<rdar://problem/3963731> AX VO: Changing window sizes causes a crash using with Voice Over - KWQPtrDictImpl::clear

  • khtml/html/html_miscimpl.cpp: (HTMLCollectionImpl::HTMLCollectionImpl): Ensure that isHTMLDocument before calling HTMLDocument-only method.
2:51 PM Changeset in webkit [8450] by rjw
  • 9 edits in trunk/WebCore

Part one of fix for <rdar://problem/3757712> REGRESSION (Mail): WebCore does not allow Devanagari ligature input

This patch changes the semantics of next() and previous() on
VisiblePosition to move a grapheme (character cluster) at a
time. This means that cursor navigation with correctly move
over an entire cluster.

However, the expected behavior for deleting a grapheme is to
delete individual code points, thus decomposing the grapheme
into it constituent parts. That will be addressed in the next
part of the fix.

Reviewed by Ken.

  • khtml/editing/visible_position.cpp: (khtml::VisiblePosition::previousPosition): (khtml::VisiblePosition::nextPosition):
  • khtml/editing/visible_position.h:
  • khtml/rendering/render_object.cpp: (RenderObject::previousOffset): (RenderObject::nextOffset):
  • khtml/rendering/render_object.h:
  • khtml/rendering/render_text.cpp: (RenderText::previousOffset): (RenderText::nextOffset): (RenderText::findNextInlineTextBox):
  • khtml/rendering/render_text.h:
  • khtml/xml/dom_nodeimpl.cpp: (NodeImpl::previousOffset): (NodeImpl::nextOffset):
  • khtml/xml/dom_nodeimpl.h:
2:41 PM Changeset in webkit [8449] by sullivan
  • 4 edits in trunk/WebKit

Reviewed by Chris.

  • WebKit part of fix for: <rdar://problem/3970670> Text context menu in WebKit needs "Look Up in Dictionary" item
  • WebView.subproj/WebDefaultContextMenuDelegate.m: (localizedMenuTitleFromAppKit): return English string in the case where AppKit bundle is found but doesn't contain the expected string. This case will be hit by people testing with an older AppKit. (-[WebDefaultUIDelegate menuItemWithTag:]): create Look Up in Dictionary item (-[WebDefaultUIDelegate contextMenuItemsForElement:]): add Look Up in Dictionary item and separator (-[WebDefaultUIDelegate editingContextMenuItemsForElement:]): ditto
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _lookUpInDictionaryFromMenu:]): new method, handles bringing up the Dictionary window. Includes FIXMEs for a couple of the known loose ends. (-[WebHTMLView validateUserInterfaceItem:]): handle Look Up in Dictionary item like the other new items
  • WebView.subproj/WebUIDelegatePrivate.h: added SPI constant for Look Up in Dictionary menu item
2:03 PM Changeset in webkit [8448] by harrison
  • 2 edits in trunk/WebCore

Reviewed by Maciej.

<rdar://problem/3973067> AXWebArea for http://apple.netscape.com/ has an empty AXLinkUIElements

  • kwq/KWQAccObject.mm: (-[KWQAccObject accessibilityAttributeValue:]): Omit ignored AXLinks from AXLinkUIElements result
1:34 PM Changeset in webkit [8447] by kocienda
  • 2 edits in trunk/WebCore

Reviewed by John

Fix for this bug:

<rdar://problem/3972851> REGRESSION (179-180+): Repro crash in ApplyStyleCommand::cleanUpEmptyStyleSpans

  • khtml/editing/htmlediting.cpp: (khtml::ApplyStyleCommand::cleanUpEmptyStyleSpans): Added two null checks.
1:21 PM Changeset in webkit [8446] by kocienda
  • 3 edits in trunk/WebCore

Reviewed by John

Fix for this bug:

<rdar://problem/3954710> Mail crashed while editing signatures - NodeImpl::isBlockFlow

The fix is more general than for this one bug, and may work to fix many crashers. The problem
is that the ReplaceSelectionCommand never checked whether its starting selection is empty. If
it is, then we need to bail before doing the work of the command, which we need to deref the
start and end points of the selection in order to do its work. I think you can see the crash
potential.

  • khtml/editing/htmlediting.cpp: (khtml::ReplaceSelectionCommand::doApply): Assert selection is not empty.
  • kwq/WebCoreBridge.mm: (partHasSelection): New helper function to test that bridge has a part with a selection.

Use new helper function to test part and selection; return from these function if this test fails.

(-[WebCoreBridge rangeByExpandingSelectionWithGranularity:])
(-[WebCoreBridge rangeByAlteringCurrentSelection:direction:granularity:])
(-[WebCoreBridge alterCurrentSelection:direction:granularity:])
(-[WebCoreBridge rangeByAlteringCurrentSelection:verticalDistance:])
(-[WebCoreBridge alterCurrentSelection:verticalDistance:])
(-[WebCoreBridge documentFragmentWithText:])
(-[WebCoreBridge replaceSelectionWithFragment:selectReplacement:smartReplace:])
(-[WebCoreBridge insertLineBreak])
(-[WebCoreBridge insertParagraphSeparator])
(-[WebCoreBridge insertParagraphSeparatorInQuotedContent])
(-[WebCoreBridge insertText:selectInsertedText:])
(-[WebCoreBridge deleteSelectionWithSmartDelete:])
(-[WebCoreBridge ensureSelectionVisible])

Jan 24, 2005:

7:56 PM Changeset in webkit [8445] by kdecker
  • 2 edits in trunk/WebCore

Reviewed by Darin.

Fixed <rdar://problem/3932374> REGRESSION: 'ReferenceError - Can't find variable' JavaScript error at webxpress.fidelity.com

  • khtml/html/html_miscimpl.h: Missing virtual identifiers for namedItem() and nextNamedItem() exposed a flaw that prevented finding variables in form [HTMLFormCollectionImpl] scopes.
5:18 PM Changeset in webkit [8444] by mjs
  • 2 edits in trunk/WebKit

Fixed Panther build (missing ifdef)

  • WebView.subproj/WebDefaultContextMenuDelegate.m:
4:46 PM Changeset in webkit [8443] by sullivan
  • 5 edits in trunk/WebKit

Reviewed by Darin.

  • WebKit part of fix for <rdar://problem/3960231> Text context menu in WebKit needs Spotlight and Google items
  • WebView.subproj/WebDefaultContextMenuDelegate.m: (localizedMenuTitleFromAppKit): new function, gets localized string from AppKit so we can avoid adding localized strings to WebKit at this late date in Tiger. Returns the non-localized English string if we can't find the localized string in AppKit. (-[WebDefaultUIDelegate menuItemWithTag:]): handle the two new menu items by tag name (-[WebDefaultUIDelegate contextMenuItemsForElement:]): add menu items for Search in Google and Search in Spotlight to selected-text menu item for the noneditable case (-[WebDefaultUIDelegate editingContextMenuItemsForElement:]): add menu items for Search in Google and Search in Spotlight to selected-text menu item for the editable case
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _searchWithGoogleFromMenu:]): implement this menu item action method, using same method name and implementation as NSTextView (-[WebHTMLView _searchWithSpotlightFromMenu:]): implement this menu item action method, using same basic implementation as NSTextView (-[WebHTMLView validateUserInterfaceItem:]): validate new menu items
  • WebView.subproj/WebUIDelegatePrivate.h: define new tags for new menu items
  • English.lproj/StringsNotToBeLocalized.txt: updated for these changes
4:35 PM Changeset in webkit [8442] by vicki
  • 2 edits in trunk/WebCore

Reviewed by kocienda.

  • fix <rdar://problem/3810661> computed style not handled for Apple extensions
  • khtml/css/css_computedstyle.cpp: (DOM::): (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): add -apple-line-clamp and -apple-text-size-adjust
2:21 PM Changeset in webkit [8441] by darin
  • 2 edits in trunk/WebCore

Reviewed by Kevin.

  • fixed <rdar://problem/3969884> REGRESSION (179-180): Typing password not echoed as "bullets" at paypal.com when field is first focused
  • kwq/KWQTextField.mm: (-[KWQTextFieldController initWithTextField:QLineEdit:]): Sizing up the form editor, which fixes things for normal fields and search fields, screws things up for password fields. Eventually, I'll need to figure out why this is and file a bug so that the AppKit team fixes it. In the mean time, just check for the case of the secure text field, and don't size up in that case.
2:20 PM Changeset in webkit [8440] by kocienda
  • 2 edits in trunk/WebCore

Reviewed by Hyatt

Fix for this bug:

<rdar://problem/3963560> 8A354: Inserting Japanese text to the line head causes line break

  • khtml/editing/htmlediting.cpp: (khtml::ReplaceSelectionCommand::doApply): Add one more case where we merge content into the existing line. This covers the situation see using the steps to reproduce this bug.
2:06 PM Changeset in webkit [8439] by mjs
  • 3 edits
    2 adds in trunk

Reviewed by Darin.

<rdar://problem/3967572> Editing should split elements before removing style

  • khtml/editing/htmlediting.cpp: (khtml::CompositeEditCommand::splitElement): (khtml::CompositeEditCommand::mergeIdenticalElements): (khtml::CompositeEditCommand::wrapContentsInDummySpan): (khtml::CompositeEditCommand::splitTextNodeContainingElement): (khtml::ApplyStyleCommand::applyInlineStyle): (khtml::ApplyStyleCommand::splitTextAtStartIfNeeded): (khtml::ApplyStyleCommand::splitTextAtEndIfNeeded): (khtml::ApplyStyleCommand::splitTextElementAtStartIfNeeded): (khtml::ApplyStyleCommand::splitTextElementAtEndIfNeeded): (khtml::areIdenticalElements): (khtml::ApplyStyleCommand::mergeStartWithPreviousIfIdentical): (khtml::ApplyStyleCommand::mergeEndWithNextIfIdentical): (khtml::ApplyStyleCommand::cleanUpEmptyStyleSpans): (khtml::ApplyStyleCommand::addInlineStyleIfNeeded): (khtml::InsertParagraphSeparatorCommand::doApply): (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): (khtml::InsertTextCommand::prepareForTextInsertion): (khtml::SplitTextNodeCommand::doUnapply): (khtml::SplitElementCommand::SplitElementCommand): (khtml::SplitElementCommand::~SplitElementCommand): (khtml::SplitElementCommand::doApply): (khtml::SplitElementCommand::doUnapply): (khtml::MergeIdenticalElementsCommand::MergeIdenticalElementsCommand): (khtml::MergeIdenticalElementsCommand::~MergeIdenticalElementsCommand): (khtml::MergeIdenticalElementsCommand::doApply): (khtml::MergeIdenticalElementsCommand::doUnapply): (khtml::WrapContentsInDummySpanCommand::WrapContentsInDummySpanCommand): (khtml::WrapContentsInDummySpanCommand::~WrapContentsInDummySpanCommand): (khtml::WrapContentsInDummySpanCommand::doApply): (khtml::WrapContentsInDummySpanCommand::doUnapply): (khtml::SplitTextNodeContainingElementCommand::SplitTextNodeContainingElementCommand): (khtml::SplitTextNodeContainingElementCommand::~SplitTextNodeContainingElementCommand): (khtml::SplitTextNodeContainingElementCommand::doApply):
  • khtml/editing/htmlediting.h:

New layout test that shows the side benefit of this.

  • layout-tests/editing/style/unbold-in-bold-expected.txt: Added.
  • layout-tests/editing/style/unbold-in-bold.html: Added.
1:07 PM Changeset in webkit [8438] by darin
  • 2 edits in trunk/WebKit
  • WebView.subproj/WebDataSource.m: (+[WebDataSource _repTypesAllowImageTypeOmission:]): Do the same check as for view types, so the representation types are consistent.
12:48 PM Changeset in webkit [8437] by darin
  • 7 edits in trunk/WebCore

Reviewed by John.

  • fixed <rdar://problem/3933435> -[DOMRange cloneContents] sometimes alters the original DOMRange
  • khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::processContents): Fixed code that was collapsing the range after processing the contents. That's right for extract and delete, but not clone.
  • fixed <rdar://problem/3714184> inline input works incorrectly when I type Korean slowly in textfield in form on www.google.co.kr
  • fixed <rdar://problem/3193848> Can't enter SSN to sign up for Chase visa online account (changing focus inside key press handler)
  • fixed <rdar://problem/3874683> REGRESSION (161-162): Crash after typing command-Z to undo after pasting text with newline in it into a text field <input type=text>
  • kwq/KWQLineEdit.mm: (QLineEdit::text): Changed to call a new string method on the controller instead of calling stringValue, since stringValue has a bad side effect of ending inline input. (QLineEdit::selectAll): Changed to only call selectText: when the field is already selected. When you are giving the field focus, it automatically gets all selected, and this change is required in the case where we defer the focus change.
  • kwq/KWQTextField.h: Added a new string method to the controller.
  • kwq/KWQTextField.mm: (-[KWQTextFieldController setMaximumLength:]): Call the new string method instead of using stringValue. (-[KWQTextFieldController controlTextDidChange:]): Removed the code to truncate at the first CR or LF. That's now handled in the shouldChangeTextInRange method instead. (-[KWQTextFieldController textView:shouldHandleEvent:]): Add new logic to defer responder changes until after the event is handled. This makes sure the key gets into the field that's already handling it at rather than ending up in the newly-focused field if the key press handler focuses a different element. (-[KWQTextFieldController textView:didHandleEvent:]): Turn off deferral here, now that the key press has been handled. (-[KWQTextFieldController string]): Added. Calls stringValue only if there's no editor. If there is an editor, calls string on that instead. (-[KWQTextFieldController textView:shouldChangeTextInRange:replacementString:]): Added. Called by the three field subclasses. Truncates incoming strings at the first CR or LF character. This works properly with Undo, and the old technique did not. (-[KWQTextFieldController preprocessString:]): Added. Helper used for all the setStringValue methods so they all truncate at the first CR or LF as well as truncating to the appropriate length. (-[KWQTextField setStringValue:]): Changed to call the controller. (-[KWQTextField textView:shouldChangeTextInRange:replacementString:]): Added. Calls the controller. (-[KWQSecureTextField setStringValue:]): More of the same. (-[KWQSecureTextField textView:shouldChangeTextInRange:replacementString:]): Ditto. (-[KWQSearchField setStringValue:]): Ditto. (-[KWQSearchField textView:shouldChangeTextInRange:replacementString:]): Ditto.
  • kwq/KWQWidget.h: Added the new setDeferFirstResponderChanges function.
  • kwq/KWQWidget.mm: (QWidget::~QWidget): Clear out the deferredFirstResponder global just in case we are destroyed while we "have the ball". (QWidget::hasFocus): If we are in the deferred mode, use the global to decide who to say is focused. (QWidget::setFocus): If we are in the deferred mode, set the global instead of making something be the first responder. (QWidget::setDeferFirstResponderChanges): Set the boolean. If the boolean is being cleared, then get the deferred first responder and call setFocus on it again, which will do the work we didn't want to do earlier.
12:48 PM Changeset in webkit [8436] by darin
  • 4 edits in trunk/WebKit

Reviewed by John.

  • fixed <rdar://problem/3791158> REGRESSION (Mail): copyFont: and pasteFont: copy and paste only the NSFont, not other attributes
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _styleFromFontAttributes:]): Added the last few loose ends here: strikethrough and underline.
  • fixed <rdar://problem/3967393> add a user default that lets you turn off WebKit PDF support
  • WebView.subproj/WebFrameView.m: (+[WebFrameView _viewTypesAllowImageTypeOmission:]): Leave the PDF-handling classes out of the dictionary if the secret default is set.
  • English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
10:28 AM Changeset in webkit [8435] by kocienda
  • 2 edits in trunk/WebCore

Reviewed by John

Fix for this bug:

<rdar://problem/3964350> Deleting all content and typing in a message gets one letter, then beeps

This is a problem with the way we turn key events, when a user starts typing, into editing commands.
Right now, that initial delete key in an empty window is turned into an editing command, and much
editing code runs that need not run. What's more, this is confusing the selection machinery. The
solution is to detect the "delete in an empty window" case and don't turn this into an editing
command at all.

  • khtml/editing/htmlediting.cpp: (khtml::TypingCommand::deleteKeyPressed)

Jan 23, 2005:

5:09 PM Changeset in webkit [8434] by adele
  • 4 edits in trunk/WebCore

Fixed <rdar://problem/3964286> REGRESSION (178-179): menus and "go to old site" link at Ameritrade's new site don't work

Removed check for document from checkCompleted. In this case, WebCore never knew that a WebImageView was complete because
it fell into this document check case in checkCompleted.
Added check for document to tokenizerProcessedData (see <rdar://problem/3807144>)

Reviewed by Darin.

  • khtml/khtml_part.cpp: (KHTMLPart::stop): (KHTMLPart::checkCompleted):
  • khtml/khtml_part.h:
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::tokenizerProcessedData):
Note: See TracTimeline for information about the timeline view.