Timeline



Nov 10, 2005:

10:39 PM Changeset in webkit [11144] by thatcher
  • 15 edits in branches/Safari-2-0-branch/WebCore

Merged fix from TOT to Safari-2-0-branch

2005-06-22 Kevin Ballard <Lily Ballard>

Reviewed by Darin.

Test cases added:

  • crlf.html
  • text-selection.html Both of these are attached to the bug separately from the patch, because I can't cvs add. Reviewer: feel free to remove this comment and tweak the test cases added lines to reflect wherever you place these cases in the hierarchy
  • khtml/ecma/kjs_html.cpp: (KJS::getInputSelectionStart): (KJS::getInputSelectionEnd): (KJS::KJS::HTMLElement::getValueProperty): (KJS::KJS::HTMLElement::hasProperty): (KJS::KJS::HTMLElementFunction::tryCall): (KJS::HTMLElement::putValue):
  • khtml/ecma/kjs_html.h: (KJS::HTMLElement::):
  • khtml/html/html_formimpl.cpp: (DOM::HTMLInputElementImpl::canHaveSelection): (DOM::HTMLInputElementImpl::selectionStart): (DOM::HTMLInputElementImpl::selectionEnd): (DOM::HTMLInputElementImpl::setSelectionStart): (DOM::HTMLInputElementImpl::setSelectionEnd): (DOM::HTMLInputElementImpl::setSelectionRange): (DOM::HTMLInputElementImpl::setValue): (DOM::HTMLTextAreaElementImpl::selectionStart): (DOM::HTMLTextAreaElementImpl::selectionEnd): (DOM::HTMLTextAreaElementImpl::setSelectionStart): (DOM::HTMLTextAreaElementImpl::setSelectionEnd): (DOM::HTMLTextAreaElementImpl::setSelectionRange): (DOM::HTMLTextAreaElementImpl::setValue):
  • khtml/html/html_formimpl.h:
  • khtml/rendering/render_form.cpp: (RenderLineEdit::selectionStart): (RenderLineEdit::selectionEnd): (RenderLineEdit::setSelectionStart): (RenderLineEdit::setSelectionEnd): (RenderLineEdit::setSelectionRange): (RenderTextArea::selectionStart): (RenderTextArea::selectionEnd): (RenderTextArea::setSelectionStart): (RenderTextArea::setSelectionEnd): (RenderTextArea::select): (RenderTextArea::setSelectionRange):
  • khtml/rendering/render_form.h:
  • kwq/KWQLineEdit.h:
  • kwq/KWQLineEdit.mm: (QLineEdit::setCursorPosition): (QLineEdit::cursorPosition): (QLineEdit::selectAll): (QLineEdit::selectionStart): (QLineEdit::selectedText): (QLineEdit::setSelection):
  • kwq/KWQTextArea.h:
  • kwq/KWQTextArea.mm: (-[KWQTextArea setSelectedRange:]): (-[KWQTextArea selectedRange]): (-[KWQTextArea getCursorPositionAsIndex:inParagraph:]): (RangeOfParagraph):
  • kwq/KWQTextEdit.h:
  • kwq/KWQTextEdit.mm: (QTextEdit::getCursorPosition): (QTextEdit::selectionStart): (QTextEdit::selectionEnd): (QTextEdit::setSelectionStart): (QTextEdit::setSelectionEnd): (QTextEdit::selectAll): (QTextEdit::setSelectionRange):
  • kwq/KWQTextField.h:
  • kwq/KWQTextField.mm: (-[KWQTextFieldController selectedRange]): (-[KWQTextFieldController setSelectedRange:]):
10:08 PM Changeset in webkit [11143] by mjs
  • 1 edit
    1 add in trunk/WebKit

Build fix, not reviewed.

  • Plugins.subproj/WebBaseNetscapePluginViewInternal.h: Added.
9:58 PM Changeset in webkit [11142] by thatcher
  • 3 edits in branches/Safari-2-0-branch/WebCore

Merged fix from TOT to Safari-2-0-branch
All the changes were applied to khtml/editing/htmlediting.[m|h]
None of the other files exist on the branch, they were split off later.

2005-11-09 David Harrison <harrison@apple.com>

Reviewed by Justin.

<rdar://problem/4313925> Denver Regression: Mail: "TAB+paste+insert before" actually inserts after the pasted text

  • added tab span editing functions in composite_edit_command.cpp
  • called them from insertText, insertLineBreak, and replaceSelection commands
  • also exposed some handy tab span funcs from htmlediting.cpp

Tests added in editing/insertion and editing/pasteboard.

  • khtml/editing/composite_edit_command.cpp: (khtml::CompositeEditCommand::positionOutsideTabSpan): (khtml::CompositeEditCommand::insertNodeAtTabSpanPosition):
  • khtml/editing/composite_edit_command.h:
  • khtml/editing/htmlediting.cpp: (khtml::positionBeforeNode): (khtml::positionAfterNode): (khtml::tabSpanNode): (khtml::positionBeforeTabSpan):
  • khtml/editing/htmlediting.h:
  • khtml/editing/insert_line_break_command.cpp: (khtml::InsertLineBreakCommand::doApply):
  • khtml/editing/insert_text_command.cpp: (khtml::InsertTextCommand::prepareForTextInsertion):
  • khtml/editing/replace_selection_command.cpp: (khtml::ReplaceSelectionCommand::doApply):
9:15 PM Changeset in webkit [12212] by ggaren
  • 3 edits in trunk/JavaScriptGlue

Reviewed by Maciej.

  • Fixed <rdar://problem/4334445> installer crashed on my dual g4 450Mhz after clicking language
  • Reversed backwards NULL check.
  • Inserted guards against NULL fJSUserObject data member.
  • Cleaned up some style.
  • JSUtils.cpp: (KJSValueToCFTypeInternal):
  • UserObjectImp.cpp: (UserObjectImp::~UserObjectImp): (UserObjectImp::callAsFunction): (UserObjectImp::userObjectGetter): (UserObjectImp::getOwnPropertySlot): (UserObjectImp::put): (UserObjectImp::mark):
9:12 PM Changeset in webkit [11141] by thatcher
  • 2 edits in branches/Safari-1-3-branch/WebKit

Merged fix from TOT to Safari-1-3-branch

2005-10-12 Vicki Murley <vicki@apple.com>

Reviewed by Darin.

fix <rdar://problem/4043643> iframe swallows events for overlapping elements (3449)

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView hitTest:]): (-[WebHTMLView _updateMouseoverWithEvent:]): eliminate _hitViewForEvent hackery and self dependency from this function
9:09 PM Changeset in webkit [11140] by thatcher
  • 2 edits in branches/Safari-2-0-branch/WebKit

Merged fix from TOT to Safari-2-0-branch

2005-10-12 Vicki Murley <vicki@apple.com>

Reviewed by Darin.

fix <rdar://problem/4043643> iframe swallows events for overlapping elements (3449)

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView hitTest:]): (-[WebHTMLView _updateMouseoverWithEvent:]): eliminate _hitViewForEvent hackery and self dependency from this function
9:06 PM Changeset in webkit [11139] by thatcher
  • 4 edits in branches/Safari-2-0-branch/WebCore

Merged fix from TOT to Safari-2-0-branch

2005-11-02 Vicki Murley <vicki@apple.com>

Reviewed by Darin.

fix <rdar://problem/4303587> REGRESSION (TOT): Scrollwheel doesn't work on frameset pages (5450)

  • kwq/KWQKHTMLPart.h:
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::wheelEvent): set _currentEvent to the wheel event (KWQKHTMLPart::passWheelEventToChildWidget): New. Pass the event to the child widget, if we haven't already handled the event
  • khtml/khtmlview.cpp: (KHTMLView::viewportWheelEvent): add passWheelEventToChildWidget check, and accept the event if we're passing to the child widget
8:32 PM Changeset in webkit [11138] by thatcher
  • 2 edits in branches/Safari-1-3-branch/WebCore

Merged fix from TOT to Safari-1-3-branch

2005-11-10 Adele Peterson <adele@apple.com>

Reviewed by Maciej.

  • fixed <rdar://problem/4327363> GAP: tabs not treated as whitespace in option element
  • khtml/rendering/render_form.cpp: (RenderSelect::updateFromElement): call simplifyWhiteSpace() on the itemText or label to collapse whitespace.
8:29 PM Changeset in webkit [11137] by thatcher
  • 2 edits in branches/Safari-2-0-branch/WebCore

Merged fix from TOT to Safari-2-0-branch

2005-11-10 Adele Peterson <adele@apple.com>

Reviewed by Maciej.

  • fixed <rdar://problem/4327363> GAP: tabs not treated as whitespace in option element
  • khtml/rendering/render_form.cpp: (RenderSelect::updateFromElement): call simplifyWhiteSpace() on the itemText or label to collapse whitespace.
7:16 PM Changeset in webkit [11136] by adele
  • 3 edits
    4 adds in trunk

LayoutTests:

Reviewed by Maciej.

Layout test for <rdar://problem/4327363> GAP: tabs not treated as whitespace in option element

  • fast/forms/option-strip-whitespace-expected.checksum: Added.
  • fast/forms/option-strip-whitespace-expected.png: Added.
  • fast/forms/option-strip-whitespace-expected.txt: Added.
  • fast/forms/option-strip-whitespace.html: Added.

WebCore:

Reviewed by Maciej.

  • fixed <rdar://problem/4327363> GAP: tabs not treated as whitespace in option element

Added

  • fast/forms/option-strip-whitespace.html
  • khtml/rendering/render_form.cpp: (RenderSelect::updateFromElement): call simplifyWhiteSpace() on the itemText or label to collapse whitespace.
6:15 PM Changeset in webkit [11135] by adele
  • 6 edits
    4 adds in trunk

LayoutTests:

Reviewed by Maciej.

Layout test for <rdar://problem/4228997> selecting a new radio button does not automatically clear the previous selected (outside <form> element)

  • fast/forms/radio_checked-expected.checksum: Added.
  • fast/forms/radio_checked-expected.png: Added.
  • fast/forms/radio_checked-expected.txt: Added.
  • fast/forms/radio_checked.html: Added.

WebCore:

Reviewed by Maciej.

-fixed <rdar://problem/4228997> selecting a new radio button does not automatically clear the previous selected (outside <form> element)

Moved the radio button checking code to the document, since we shouldn't need a form to keep track of grouped radio buttons.

Added

  • fast/forms/radio_checked.html
  • khtml/xml/dom_docimpl.h: Added m_selectedRadioButtons (now a two level hash table to account for forms and group names), radioButtonChecked, checkedRadioButtonForGroup, and removeRadioButtonGroup
  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::DocumentImpl): initialize m_selectedRadioButtons (DocumentImpl::~DocumentImpl): delete m_selectedRadioButtons, and any of the inner hashtables if necessary (DocumentImpl::radioButtonChecked): moved from HTMLFormElementImpl. (DocumentImpl::checkedRadioButtonForGroup): ditto. (DocumentImpl::removeRadioButtonGroup): ditto.
  • khtml/html/html_formimpl.cpp: (DOM::HTMLFormElementImpl::HTMLFormElementImpl): removed initialization of m_selectedRadioButtons. (DOM::HTMLFormElementImpl::~HTMLFormElementImpl): removed deletion of m_selectedRadioButtons. (DOM::HTMLFormElementImpl::removeFormElement): now calls document's radio button functions (DOM::HTMLInputElementImpl::isKeyboardFocusable): ditto. (DOM::HTMLInputElementImpl::setInputType): ditto. (DOM::HTMLInputElementImpl::parseMappedAttribute): ditto. (DOM::HTMLInputElementImpl::setChecked): ditto. (DOM::HTMLInputElementImpl::preDispatchEventHandler): ditto.
  • khtml/html/html_formimpl.h: removed m_selectedRadioButtons, radioButtonChecked, checkedRadioButtonForGroup, and removeRadioButtonGroup
5:51 PM Changeset in webkit [11134] by thatcher
  • 4 edits in branches/Safari-1-3-branch/WebCore

Merged fix from TOT to Safari-1-3-branch

2005-09-21 Vicki Murley <vicki@apple.com>

Changes by Romain Brestac, reviewed by Darin.

  • khtml/misc/loader.cpp: (CachedXSLStyleSheet::CachedXSLStyleSheet): (CachedXSLStyleSheet::data):
  • khtml/misc/loader.h:
  • khtml/xsl/xslt_processorimpl.cpp: (DOM::XSLTProcessorImpl::addToResult): (DOM::XSLTProcessorImpl::documentFromXMLDocPtr):
5:45 PM Changeset in webkit [11133] by thatcher
  • 5 edits in branches/Safari-2-0-branch/WebCore

Merged fix from TOT to Safari-2-0-branch

2005-09-21 Vicki Murley <vicki@apple.com>

Changes by Romain Brestac, reviewed by Darin.

  • khtml/misc/loader.cpp: (CachedXSLStyleSheet::CachedXSLStyleSheet): (CachedXSLStyleSheet::data):
  • khtml/misc/loader.h:
  • khtml/xsl/xslt_processorimpl.cpp: (DOM::XSLTProcessorImpl::addToResult): (DOM::XSLTProcessorImpl::documentFromXMLDocPtr):
5:28 PM Changeset in webkit [11132] by thatcher
  • 1 edit in branches/Safari-2-0-branch/WebCore/kwq/KWQTextArea.mm

Removing an ASSERT since this file doesn't use them.

5:27 PM Changeset in webkit [11131] by thatcher
  • 1 edit in branches/Safari-1-3-branch/WebCore/kwq/KWQTextArea.mm

Removing an ASSERT since this file doesn't use them.

5:18 PM Changeset in webkit [11130] by thatcher
  • 6 edits in branches/Safari-2-0-branch/WebCore

Merged fix from TOT to Safari-2-0-branch

2005-10-03 Beth Dakin <Beth Dakin>

Reviewed by Darin.

Fix for <rdar://problem/4235722> line-height style settings not reflected in
textarea.

  • khtml/rendering/render_form.cpp: (RenderTextArea::setStyle): Make setStyle call new setLineHeight function and computer correct line height using RenderObject::lineHeight
  • kwq/KWQTextArea.h:
  • kwq/KWQTextArea.mm: (-[KWQTextAreaTextView setFont:]): setFont updates lineHeight if necessary. (-[KWQTextAreaTextView setLineHeight:]): sets the line height (-[NSTextView _KWQ_updateTypingAttributes:forLineHeight:fontHeight:]): Applies the new line height to the paragraph style attributes.
  • kwq/KWQTextEdit.h:
  • kwq/KWQTextEdit.mm: (QTextEdit::setLineHeight): calls setLineHeight in KWQTextAreaTextView
5:17 PM Changeset in webkit [11129] by thatcher
  • 6 edits in branches/Safari-1-3-branch/WebCore

Merged fix from TOT to Safari-1-3-branch

2005-10-03 Beth Dakin <Beth Dakin>

Reviewed by Darin.

Fix for <rdar://problem/4235722> line-height style settings not reflected in
textarea.

  • khtml/rendering/render_form.cpp: (RenderTextArea::setStyle): Make setStyle call new setLineHeight function and computer correct line height using RenderObject::lineHeight
  • kwq/KWQTextArea.h:
  • kwq/KWQTextArea.mm: (-[KWQTextAreaTextView setFont:]): setFont updates lineHeight if necessary. (-[KWQTextAreaTextView setLineHeight:]): sets the line height (-[NSTextView _KWQ_updateTypingAttributes:forLineHeight:fontHeight:]): Applies the new line height to the paragraph style attributes.
  • kwq/KWQTextEdit.h:
  • kwq/KWQTextEdit.mm: (QTextEdit::setLineHeight): calls setLineHeight in KWQTextAreaTextView
5:15 PM Changeset in webkit [11128] by tomernic
  • 6 edits in trunk/WebKit

Reviewed by Geoff.

<rdar://problem/4237941> Dashboard needs a way to stop Netscape plug-ins from getting null events

  • Plugins.subproj/WebBaseNetscapePluginViewInternal.h: Added. Added WebInternal category, with -stopNullEvents and -restartNullEvents. These methods already exist on WebBaseNetscapePluginView. I am just exposing them to callers elsewhere within WebKit.
  • WebKit.xcodeproj/project.pbxproj: Added WebBaseNetscapePluginViewInternal.h.
  • WebView.subproj/WebFrame.m: (-[WebFrame _recursive_pauseNullEventsForAllNetscapePlugins]): Walks down the web frame hierarchy and calls -_pauseNullEventsForAllNetscapePlugins on each WebHTMLView. (-[WebFrame _recursive_resumeNullEventsForAllNetscapePlugins]): Same as above, but calls -_resumeNullEventsForAllNetscapePlugins.
  • WebView.subproj/WebFramePrivate.h: Declared -_recursive_pauseNullEventsForAllNetscapePlugins and -_recursive_pauseNullEventsForAllNetscapePlugins.
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _pauseNullEventsForAllNetscapePlugins]): Checks subviews for WebBaseNetscapePluginViews, and calls -stopNullEvents on them. (-[WebHTMLView _resumeNullEventsForAllNetscapePlugins]): Same as above, but calls -restartNullEvents.
  • WebView.subproj/WebHTMLViewInternal.h: Declared -_pauseNullEventsForAllNetscapePlugins and -_resumeNullEventsForAllNetscapePlugins.
4:52 PM Changeset in webkit [11127] by thatcher
  • 1 edit in branches/Safari-1-3-branch/WebCore/khtml/ecma/kjs_html.cpp

Build fix.

4:51 PM Changeset in webkit [11126] by thatcher
  • 1 edit in branches/Safari-2-0-branch/WebCore/khtml/ecma/kjs_html.cpp

Build fix.

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

Reviewed by Tim Omernick.

<rdar://problem/3766883> AX: Should be able to tell whether an AXLink has been visited to or not

No test cases because this does not affect layout.

  • kwq/KWQAccObject.mm: (-[KWQAccObject accessibilityAttributeNames]): (-[KWQAccObject accessibilityAttributeValue:]): Added "AXVisited" attribute.
4:23 PM Changeset in webkit [11124] by thatcher
  • 1 edit in branches/Safari-2-0-branch/WebCore/khtml/ecma/kjs_html.cpp

Build fix.

4:21 PM Changeset in webkit [11123] by thatcher
  • 1 edit in branches/Safari-1-3-branch/WebCore/khtml/ecma/kjs_html.cpp

Build fix.

3:51 PM Changeset in webkit [11122] by thatcher
  • 2 edits in branches/Safari-1-3-branch/WebCore

Merged fix from TOT to Safari-1-3-branch

2005-11-10 Eric Seidel <eseidel@apple.com>

Reviewed by ggaren.

3:50 PM Changeset in webkit [11121] by thatcher
  • 2 edits in branches/Safari-2-0-branch/WebCore

Merged fix from TOT to Safari-2-0-branch

2005-11-10 Eric Seidel <eseidel@apple.com>

Reviewed by ggaren.

3:40 PM Changeset in webkit [11120] by thatcher
  • 6 edits in branches/Safari-2-0-branch/WebCore

Merged fix from TOT to Safari-2-0-branch

2005-11-01 Mitz Pettel <opendarwin.org@mitzpettel.com>

Reviewed by Dave Hyatt.
Commited by Tim Hatcher.

Fixes http://bugzilla.opendarwin.org/show_bug.cgi?id=5256
Relayout during load causes duplicate plugin part.

This was a problem with <OBJECT>s that contain an <EMBED>, if
layout happened in the middle of the OBJECT but before the EMBED.

No test case added, requires manual testing.

  • khtml/html/html_objectimpl.cpp: (DOM::HTMLObjectElementImpl::HTMLObjectElementImpl): (DOM::HTMLObjectElementImpl::closeRenderer): (DOM::HTMLObjectElementImpl::setComplete):
  • khtml/html/html_objectimpl.h: (DOM::HTMLObjectElementImpl::isComplete):
  • khtml/html/htmlfactory.cpp: (DOM::objectConstructor):
  • khtml/rendering/render_frames.cpp: (RenderPartObject::updateWidget):
3:29 PM Changeset in webkit [11119] by thatcher
  • 3 edits in branches/Safari-2-0-branch/WebKit

Merged fix from TOT to Safari-2-0-branch

2005-07-12 Geoffrey Garen <ggaren@apple.com>

Patch by Mitz Pettel

Added layout test for
http://bugzilla.opendarwin.org/show_bug.cgi?id=3435
Parentheses are backwards in Hebrew text (no bidi mirroring?)

Test is manual because results only reflect visually -
the layout is the same either way.

Test cases added:

  • manual-tests/bidi-parens.html: Added.
3:04 PM Changeset in webkit [11118] by thatcher
  • 3 edits in branches/Safari-2-0-branch/WebCore

Merged fix from TOT to Safari-2-0-branch

2005-11-09 Dave Hyatt <hyatt@apple.com>

Fixed <rdar://problem/4237617> selects should be in the tab order
in all keyboard modes

Reviewed by Vicki

  • kwq/KWQComboBox.mm: (QComboBox::focusPolicy):
  • kwq/KWQListBox.mm: (QListBox::focusPolicy):
3:02 PM Changeset in webkit [11117] by thatcher
  • 3 edits in branches/Safari-1-3-branch/WebCore

Merged fix from TOT to Safari-1-3-branch

2005-11-09 Dave Hyatt <hyatt@apple.com>

Fixed <rdar://problem/4237617> selects should be in the tab order
in all keyboard modes

Reviewed by Vicki

  • kwq/KWQComboBox.mm: (QComboBox::focusPolicy):
  • kwq/KWQListBox.mm: (QListBox::focusPolicy):
2:55 PM Changeset in webkit [11116] by eseidel
  • 2 edits in trunk/WebCore

Bug #: 3473
Submitted by: eseidel
Reviewed by: ggaren

2:54 PM Changeset in webkit [11115] by eseidel
  • 1 edit
    3 adds in trunk/LayoutTests

Bug #: 3473
Submitted by: eseidel
Reviewed by: ggaren

  • fast/dom/HTMLImageElement/image-src-absolute-url-expected.txt: Added.
  • fast/dom/HTMLImageElement/image-src-absolute-url.html: Added. http://bugzilla.opendarwin.org/show_bug.cgi?id=3473 <rdar://problem/3787988> Preloaded Image objects .src field is not a fully resolved path (3473)
2:38 PM Changeset in webkit [11114] by eseidel
  • 2 edits in trunk/WebKitTools

Bug #: none
Submitted by: eseidel
Reviewed by: ggaren

  • Scripts/build-webkit: Pass through options to xcodebuild
12:28 PM Changeset in webkit [11113] by thatcher
  • 2 edits in branches/Safari-2-0-branch/WebCore

Merged fix from TOT to Safari-2-0-branch

2005-10-10 Geoffrey Garen <ggaren@apple.com>

  • Fixed <rdar://problem/4245682> Regression: CrashTracer: 923 crashes in Safari at com.apple.WebCore: KJS::Window::clear + 132

Reviewed by mjs.

No test case because this crash isn't reliably reproducible.

  • khtml/ecma/kjs_window.cpp: (KJS::Window::Window): Initialize m_returnValueSlot to 0, so that we know not to write to it until it's explicitly set to a valid address.
12:28 PM Changeset in webkit [11112] by thatcher
  • 2 edits in branches/Safari-1-3-branch/WebCore

Merged fix from TOT to Safari-1-3-branch

2005-10-10 Geoffrey Garen <ggaren@apple.com>

  • Fixed <rdar://problem/4245682> Regression: CrashTracer: 923 crashes in Safari at com.apple.WebCore: KJS::Window::clear + 132

Reviewed by mjs.

No test case because this crash isn't reliably reproducible.

  • khtml/ecma/kjs_window.cpp: (KJS::Window::Window): Initialize m_returnValueSlot to 0, so that we know not to write to it until it's explicitly set to a valid address.
12:22 PM Changeset in webkit [11111] by thatcher
  • 2 edits in branches/Safari-2-0-branch/WebKit

Merged fix from TOT to Safari-2-0-branch

2005-09-16 John Sullivan <sullivan@apple.com>

Reviewed by Tim Omernick

  • fixed <rdar://problem/4256557> CrashTracer: 238 crashes in Safari at com.apple.AppKit: -[NSPasteboard setData:forType:] + 188
  • WebView.subproj/WebImageView.m: (-[WebImageView copy:]): declare types to pasteboard before starting to set their data (-[WebImageView writeSelectionToPasteboard:types:]): ditto
10:38 AM Changeset in webkit [11110] by thatcher
  • 2 edits in branches/Safari-2-0-branch/WebCore

Merged fix from TOT to Safari-2-0-branch

2005-10-03 Justin Garcia <justin.garcia@apple.com>

Reviewed by darin

<rdar://problem/4060947> Safari crashes trying to save PDF file as web archive (NULL KHTMLPart)

  • kwq/WebCoreBridge.mm: (+[WebCoreBridge bridgeForDOMDocument:]): Added a check for a null part.
10:22 AM Changeset in webkit [11109] by thatcher
  • 6 edits in branches/Safari-2-0-branch/WebCore

Merged fix from TOT to Safari-2-0-branch

2005-10-28 Beth Dakin <Beth Dakin>

Reviewed by John

Fix for <rdar://problem/4098083> REGRESSION (125-312): crash
in [KWQTableView resignFirstResponder] selecting from JS menu
(car4you.at, etc.)

Since it is possible that a render widget's eventFilterObject
has been destroyed even though the render widget is still ref-ed,
we need to nil-check the eventFilterObject before we use it to get
the eventFilter.

  • kwq/KWQComboBox.mm: (-[KWQPopUpButton becomeFirstResponder]): Added nil check. (-[KWQPopUpButton resignFirstResponder]): Added nil check.
  • kwq/KWQListBox.mm: (-[KWQTableView becomeFirstResponder]): Added nil check. (-[KWQTableView resignFirstResponder]): Added nil check.
  • kwq/KWQTextArea.mm: (-[KWQTextAreaTextView becomeFirstResponder]): Added nil check. (-[KWQTextAreaTextView resignFirstResponder]): Added nil check.
  • kwq/KWQTextField.mm: (-[KWQTextFieldController setHasFocus:]): Added nil check.
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge elementForView:]): Added nil check.
9:36 AM Changeset in webkit [11108] by thatcher
  • 2 edits in branches/Safari-2-0-branch/JavaScriptCore

Merges fixes from Ti-2005-009-branch to Safari-2-0-branch

2005-11-04 Geoffrey Garen <ggaren@apple.com>

Reviewed by darin.

  • Fixed <rdar://problem/4317701> *SecUpd: Tiger* PCRE heap overflow in Safari JavaScriptCore
  • pcre/pcre.c: (read_repeat_counts): We now return an error for negative repeat counts in regular expressions. This matches Firefox exactly, and Win IE by effect (Win IE doesn't return an error, but it does refuse to match anything).
9:26 AM Changeset in webkit [11107] by thatcher
  • 2 edits in branches/Safari-2-0-branch/JavaScriptCore

Reviewed by Darin.

  • Fixed <rdar://problem/4323773> REGRESSION (412.2-416.12): xxx appears on page due to JS regexp with char > 255 (5597) (tiddlywiki.com)

Previously, we fixed a buffer overflow by returning an error when
compiling character classes with characters > 255. But that broke
the internet.

Plan B here is to work around such classes, skipping single characters

255, skipping character ranges beginning > 255, and truncating

character ranges at 255.

I removed the early returns we added and the early returns in the
original library. Now, funky expressions compile normally, tweaked
by our special rules.

I also merged the UTF8 and UTF16 checks for out of range characters.
I remember we kept them separate before because we were purist about
marking off our code changes inside UTF16 #ifdefs. Since this patch
applies equally to UTF8 and UTF16, we've already lost that innocence,
so why not have a little fun?

  • ChangeLog:
  • pcre/pcre.c: (compile_branch):
  • tests/mozilla/jsDriver.pl: Oh, by the way, I modified this to look inside of $SYMROOTS/Development. Not perfect, but certainly better than $SYMROOTS/, which is always wrong with XCode 2.1.

Nov 9, 2005:

3:05 PM Changeset in webkit [11106] by thatcher
  • 2 edits in branches/Safari-2-0-branch/WebCore

Merged fix from TOT to Safari-2-0-branch

2005-09-21 Vicki Murley <vicki@apple.com>

Reviewed by Darin.

  • fix these bugs <rdar://problem/3579812> HTMLTableElement.insertRow(n) inserts row at the beginning of the table (4043) <rdar://problem/3711188> HTMLTableElement.insertRow() doesn't respect passed index
  • khtml/html/html_tableimpl.cpp: (DOM::HTMLTableElementImpl::insertRow): if the index is the same as the number of rows in the section, we should append

Update test results for /fast/dynamic/013.html. In the old version the the rows
and cells were children of the first table section, a tfoot. They are now children
of the second table section, a tbody. Our rendering now matches Gecko and Win IE
(according to yusufg on #webkit, comparing with 013-expected.png) for this case.

  • layout-tests/fast/dynamic/013-expected.checksum:
  • layout-tests/fast/dynamic/013-expected.png:
  • layout-tests/fast/dynamic/013-expected.txt:

Test cases added:

  • layout-tests/fast/dynamic/014-expected.checksum: Added.
  • layout-tests/fast/dynamic/014-expected.png: Added.
  • layout-tests/fast/dynamic/014-expected.txt: Added.
  • layout-tests/fast/dynamic/014.html: Added.
  • layout-tests/fast/dynamic/015-expected.checksum: Added.
  • layout-tests/fast/dynamic/015-expected.png: Added.
  • layout-tests/fast/dynamic/015-expected.txt: Added.
  • layout-tests/fast/dynamic/015.html: Added.
3:05 PM Changeset in webkit [11105] by hyatt
  • 4 edits in trunk/WebCore

Fix hit testing of relative positioned inline flows inside
clipped overflow blocks so that they aren't mistakenly included
in hit testing.

Reviewed by Beth.

  • khtml/rendering/render_layer.cpp: (khtml::RenderLayer::containsPoint):
  • kwq/KWQComboBox.mm: (QComboBox::focusPolicy):
  • kwq/KWQListBox.mm: (QListBox::focusPolicy):
3:00 PM Changeset in webkit [11104] by thatcher
  • 2 edits in branches/Safari-1-3-branch/WebCore

Merged fix from TOT to Safari-1-3-branch

2005-09-21 Vicki Murley <vicki@apple.com>

Reviewed by Darin.

  • fix these bugs <rdar://problem/3579812> HTMLTableElement.insertRow(n) inserts row at the beginning of the table (4043) <rdar://problem/3711188> HTMLTableElement.insertRow() doesn't respect passed index
  • khtml/html/html_tableimpl.cpp: (DOM::HTMLTableElementImpl::insertRow): if the index is the same as the number of rows in the section, we should append

Update test results for /fast/dynamic/013.html. In the old version the the rows
and cells were children of the first table section, a tfoot. They are now children
of the second table section, a tbody. Our rendering now matches Gecko and Win IE
(according to yusufg on #webkit, comparing with 013-expected.png) for this case.

  • layout-tests/fast/dynamic/013-expected.checksum:
  • layout-tests/fast/dynamic/013-expected.png:
  • layout-tests/fast/dynamic/013-expected.txt:

Test cases added:

  • layout-tests/fast/dynamic/014-expected.checksum: Added.
  • layout-tests/fast/dynamic/014-expected.png: Added.
  • layout-tests/fast/dynamic/014-expected.txt: Added.
  • layout-tests/fast/dynamic/014.html: Added.
  • layout-tests/fast/dynamic/015-expected.checksum: Added.
  • layout-tests/fast/dynamic/015-expected.png: Added.
  • layout-tests/fast/dynamic/015-expected.txt: Added.
  • layout-tests/fast/dynamic/015.html: Added.
2:51 PM Changeset in webkit [11103] by thatcher
  • 2 edits in branches/Safari-1-3-branch/WebCore

Merged fix from TOT to Safari-1-3-branch

2005-09-16 Tim Omernick <tomernick@apple.com>

Reviewed by Dave Hyatt. Test case reviewed by Vicki Murley.

<rdar://problem/3572507> Flash in div with display:none style will not redraw when style changed to display:block (3479)

Test cases added:

  • manual-tests/show-hide-object.html: Added.
  • manual-tests/resources/spinbox.swf: Added.
  • khtml/html/html_objectimpl.cpp: (DOM::HTMLObjectElementImpl::detach): Set needWidgetUpdate to true so that the widget is updated on the next attach().
2:37 PM Changeset in webkit [11102] by thatcher
  • 2 edits in branches/Safari-2-0-branch/WebCore

Merged fix from TOT to Safari-2-0-branch

2005-09-16 Tim Omernick <tomernick@apple.com>

Reviewed by Dave Hyatt. Test case reviewed by Vicki Murley.

<rdar://problem/3572507> Flash in div with display:none style will not redraw when style changed to display:block (3479)

Test cases added:

  • manual-tests/show-hide-object.html: Added.
  • manual-tests/resources/spinbox.swf: Added.
  • khtml/html/html_objectimpl.cpp: (DOM::HTMLObjectElementImpl::detach): Set needWidgetUpdate to true so that the widget is updated on the next attach().
11:57 AM Changeset in webkit [11101] by harrison
  • 1 edit
    36 adds in trunk/LayoutTests

Layout tests for <rdar://problem/4313925>
Denver Regression: Mail: "TAB+paste+insert before" actually inserts after the pasted text

  • editing/inserting/insert-br-at-tabspan-001-expected.checksum: Added.
  • editing/inserting/insert-br-at-tabspan-001-expected.png: Added.
  • editing/inserting/insert-br-at-tabspan-001-expected.txt: Added.
  • editing/inserting/insert-br-at-tabspan-001.html: Added.
  • editing/inserting/insert-br-at-tabspan-002-expected.checksum: Added.
  • editing/inserting/insert-br-at-tabspan-002-expected.png: Added.
  • editing/inserting/insert-br-at-tabspan-002-expected.txt: Added.
  • editing/inserting/insert-br-at-tabspan-002.html: Added.
  • editing/inserting/insert-br-at-tabspan-003-expected.checksum: Added.
  • editing/inserting/insert-br-at-tabspan-003-expected.png: Added.
  • editing/inserting/insert-br-at-tabspan-003-expected.txt: Added.
  • editing/inserting/insert-br-at-tabspan-003.html: Added.
  • editing/inserting/insert-text-at-tabspan-001-expected.checksum: Added.
  • editing/inserting/insert-text-at-tabspan-001-expected.png: Added.
  • editing/inserting/insert-text-at-tabspan-001-expected.txt: Added.
  • editing/inserting/insert-text-at-tabspan-001.html: Added.
  • editing/inserting/insert-text-at-tabspan-002-expected.checksum: Added.
  • editing/inserting/insert-text-at-tabspan-002-expected.png: Added.
  • editing/inserting/insert-text-at-tabspan-002-expected.txt: Added.
  • editing/inserting/insert-text-at-tabspan-002.html: Added.
  • editing/inserting/insert-text-at-tabspan-003-expected.checksum: Added.
  • editing/inserting/insert-text-at-tabspan-003-expected.png: Added.
  • editing/inserting/insert-text-at-tabspan-003-expected.txt: Added.
  • editing/inserting/insert-text-at-tabspan-003.html: Added.
  • editing/pasteboard/paste-text-at-tabspan-001-expected.checksum: Added.
  • editing/pasteboard/paste-text-at-tabspan-001-expected.png: Added.
  • editing/pasteboard/paste-text-at-tabspan-001-expected.txt: Added.
  • editing/pasteboard/paste-text-at-tabspan-001.html: Added.
  • editing/pasteboard/paste-text-at-tabspan-002-expected.checksum: Added.
  • editing/pasteboard/paste-text-at-tabspan-002-expected.png: Added.
  • editing/pasteboard/paste-text-at-tabspan-002-expected.txt: Added.
  • editing/pasteboard/paste-text-at-tabspan-002.html: Added.
  • editing/pasteboard/paste-text-at-tabspan-003-expected.checksum: Added.
  • editing/pasteboard/paste-text-at-tabspan-003-expected.png: Added.
  • editing/pasteboard/paste-text-at-tabspan-003-expected.txt: Added.
  • editing/pasteboard/paste-text-at-tabspan-003.html: Added.
11:56 AM Changeset in webkit [11100] by harrison
  • 8 edits in trunk/WebCore

Reviewed by Justin.

<rdar://problem/4313925> Denver Regression: Mail: "TAB+paste+insert before" actually inserts after the pasted text

  • added tab span editing functions in composite_edit_command.cpp
  • called them from insertText, insertLineBreak, and replaceSelection commands
  • also exposed some handy tab span funcs from htmlediting.cpp

Tests added in editing/insertion and editing/pasteboard.

  • khtml/editing/composite_edit_command.cpp: (khtml::CompositeEditCommand::positionOutsideTabSpan): (khtml::CompositeEditCommand::insertNodeAtTabSpanPosition):
  • khtml/editing/composite_edit_command.h:
  • khtml/editing/htmlediting.cpp: (khtml::positionBeforeNode): (khtml::positionAfterNode): (khtml::tabSpanNode): (khtml::positionBeforeTabSpan):
  • khtml/editing/htmlediting.h:
  • khtml/editing/insert_line_break_command.cpp: (khtml::InsertLineBreakCommand::doApply):
  • khtml/editing/insert_text_command.cpp: (khtml::InsertTextCommand::prepareForTextInsertion):
  • khtml/editing/replace_selection_command.cpp: (khtml::ReplaceSelectionCommand::doApply):

Nov 8, 2005:

10:34 PM Changeset in webkit [11099] by ggaren
  • 2 edits in trunk/JavaScriptCore

Reviewed by Darin.

This patch fixes some naughty naughty code -- 5 crashes and 2
may-go-haywire-in-the-futures.

One such crash is <rdar://problem/4247330> 8C46 Crash with with
incomplete parameter list to webScript object function.

I replaced early returns from within NS_DURINGs with calls to
NS_VALUERETURN because the doc says, "You cannot use goto or
return to exit an exception handling domain -- errors will result."

I replaced hard-coded analyses of -[NSMethodSignature
methodReturnType] with more abstracted alternatives, since
the documentation says "This encoding is implementation-specific,
so applications should use it with caution," and then emits an
evil cackle.

I removed the early return in the case where a JavaScript caller
supplies an insufficient number of arguments, because the right
thing to do in such a case is to use JavaScript's defined behavior
of supplying "undefined" for any missing arguments.

I also changed ObjcInstance::invokeMethod so that it no longer
deletes the method passed to it. It doesn't create the method,
so it shouldn't delete it. A friend of mine named
KERNEL_PROTECTION_FAILURE agrees with me on this point.

Finally, I changed an assert(true) to assert(false) because
all the other asserts were making fun of it.

  • bindings/objc/objc_instance.mm: (ObjcInstance::invokeMethod): (ObjcInstance::invokeDefaultMethod):
6:46 PM Changeset in webkit [11098] by tomernic
  • 12 edits in trunk/WebCore

<http://bugzilla.opendarwin.org/show_bug.cgi?id=5665> (REGRESSION: Crash in deleteTimer)

Rolled back Darin's timer changes from 2005-11-07, as they caused a couple of regressions.

1:54 PM Changeset in webkit [11097] by adele
  • 2 edits in trunk/WebCore

Reviewed by Darin.

  • kwq/KWQObject.mm: (sendDeferredTimerEvents): Added nil check for timers.
12:11 AM Changeset in webkit [11096] by mjs
  • 57 edits
    5 adds in trunk

LayoutTests:

Reviewed by Eric, Geoff and Darin.

  • added test cases for <rdar://problem/4118258> XML DOM trees freed prematurely unless reference held to document node (causes crash)

Also updated the GC tests to try a little harder to trigger GC,
the old way might not work as well with the reworking of SimpleNumber.

  • fast/dom/gc-1.html:
  • fast/dom/gc-2.html:
  • fast/dom/gc-3.html:
  • fast/dom/gc-5.html:
  • fast/dom/gc-6-expected.txt: Added.
  • fast/dom/gc-6.html: Added.
  • fast/dom/gc-7-expected.txt: Added.
  • fast/dom/gc-7.html: Added.

WebCore:

Reviewed by Eric, Geoff and Darin.

  • fixed <rdar://problem/4118258> XML DOM trees freed prematurely unless reference held to document node (causes crash)

I changed the design for how DOM nodes maintain their reference to
the document. Instead of using DocumentPtr, an indirect reference
which would go null in a clean way when the document is destroyed,
they now have a different strategy.

Nodes that belong to the document now hold a special kind of
reference on the document - a "self only reference". When a
document has no regular references but still has self-only
references, it won't be destroyed, but it will drop all its
children. This allows detached nodees to still have a valid
document reference, but they won't keep the rest of the DOM alive
or cause circular references.

  • khtml/editing/SelectionController.cpp: (khtml::SelectionController::toRange):
  • khtml/editing/visible_position.cpp: (khtml::makeRange):
  • khtml/editing/visible_text.cpp: (khtml::TextIterator::range): (khtml::SimplifiedBackwardsTextIterator::range):
  • khtml/html/html_baseimpl.cpp: (HTMLBodyElementImpl::HTMLBodyElementImpl): (HTMLFrameElementImpl::HTMLFrameElementImpl): (HTMLFrameSetElementImpl::HTMLFrameSetElementImpl): (HTMLHeadElementImpl::HTMLHeadElementImpl): (HTMLHtmlElementImpl::HTMLHtmlElementImpl): (HTMLIFrameElementImpl::HTMLIFrameElementImpl):
  • khtml/html/html_baseimpl.h:
  • khtml/html/html_blockimpl.cpp: (HTMLBlockquoteElementImpl::HTMLBlockquoteElementImpl): (HTMLDivElementImpl::HTMLDivElementImpl): (HTMLHRElementImpl::HTMLHRElementImpl): (HTMLHeadingElementImpl::HTMLHeadingElementImpl): (HTMLParagraphElementImpl::HTMLParagraphElementImpl): (HTMLPreElementImpl::HTMLPreElementImpl): (HTMLMarqueeElementImpl::HTMLMarqueeElementImpl):
  • khtml/html/html_blockimpl.h:
  • khtml/html/html_canvasimpl.cpp: (HTMLCanvasElementImpl::HTMLCanvasElementImpl):
  • khtml/html/html_canvasimpl.h:
  • khtml/html/html_documentimpl.cpp: (DOM::HTMLDocumentImpl::createTokenizer): (DOM::HTMLDocumentImpl::determineParseMode):
  • khtml/html/html_elementimpl.cpp: (HTMLElementImpl::HTMLElementImpl): (HTMLElementImpl::createContextualFragment): (HTMLElementImpl::setInnerText): (HTMLElementImpl::setOuterText):
  • khtml/html/html_elementimpl.h:
  • khtml/html/html_formimpl.cpp: (DOM::HTMLFormElementImpl::HTMLFormElementImpl): (DOM::HTMLGenericFormElementImpl::HTMLGenericFormElementImpl): (DOM::HTMLButtonElementImpl::HTMLButtonElementImpl): (DOM::HTMLFieldSetElementImpl::HTMLFieldSetElementImpl): (DOM::HTMLInputElementImpl::HTMLInputElementImpl): (DOM::HTMLLabelElementImpl::HTMLLabelElementImpl): (DOM::HTMLLegendElementImpl::HTMLLegendElementImpl): (DOM::HTMLSelectElementImpl::HTMLSelectElementImpl): (DOM::HTMLKeygenElementImpl::HTMLKeygenElementImpl): (DOM::HTMLOptGroupElementImpl::HTMLOptGroupElementImpl): (DOM::HTMLOptionElementImpl::HTMLOptionElementImpl): (DOM::HTMLOptionElementImpl::setText): (DOM::HTMLTextAreaElementImpl::HTMLTextAreaElementImpl): (DOM::HTMLIsIndexElementImpl::HTMLIsIndexElementImpl):
  • khtml/html/html_formimpl.h:
  • khtml/html/html_headimpl.cpp: (HTMLBaseElementImpl::HTMLBaseElementImpl): (HTMLLinkElementImpl::HTMLLinkElementImpl): (HTMLMetaElementImpl::HTMLMetaElementImpl): (HTMLScriptElementImpl::HTMLScriptElementImpl): (HTMLStyleElementImpl::HTMLStyleElementImpl): (HTMLTitleElementImpl::HTMLTitleElementImpl):
  • khtml/html/html_headimpl.h:
  • khtml/html/html_imageimpl.cpp: (HTMLImageElementImpl::HTMLImageElementImpl): (HTMLMapElementImpl::HTMLMapElementImpl): (HTMLAreaElementImpl::HTMLAreaElementImpl):
  • khtml/html/html_imageimpl.h:
  • khtml/html/html_inlineimpl.cpp: (DOM::HTMLAnchorElementImpl::HTMLAnchorElementImpl): (DOM::HTMLBRElementImpl::HTMLBRElementImpl): (DOM::HTMLFontElementImpl::HTMLFontElementImpl): (DOM::HTMLModElementImpl::HTMLModElementImpl): (DOM::HTMLQuoteElementImpl::HTMLQuoteElementImpl):
  • khtml/html/html_inlineimpl.h:
  • khtml/html/html_listimpl.h: (DOM::HTMLUListElementImpl::HTMLUListElementImpl): (DOM::HTMLDirectoryElementImpl::HTMLDirectoryElementImpl): (DOM::HTMLMenuElementImpl::HTMLMenuElementImpl): (DOM::HTMLOListElementImpl::HTMLOListElementImpl): (DOM::HTMLLIElementImpl::HTMLLIElementImpl): (DOM::HTMLDListElementImpl::HTMLDListElementImpl):
  • khtml/html/html_miscimpl.cpp: (DOM::HTMLBaseFontElementImpl::HTMLBaseFontElementImpl):
  • khtml/html/html_miscimpl.h:
  • khtml/html/html_objectimpl.cpp: (DOM::HTMLAppletElementImpl::HTMLAppletElementImpl): (DOM::HTMLEmbedElementImpl::HTMLEmbedElementImpl): (DOM::HTMLObjectElementImpl::HTMLObjectElementImpl): (DOM::HTMLParamElementImpl::HTMLParamElementImpl):
  • khtml/html/html_objectimpl.h:
  • khtml/html/html_tableimpl.cpp: (DOM::HTMLTableElementImpl::HTMLTableElementImpl): (DOM::HTMLTableElementImpl::createTHead): (DOM::HTMLTableElementImpl::createTFoot): (DOM::HTMLTableElementImpl::createCaption): (DOM::HTMLTableElementImpl::insertRow): (DOM::HTMLTableSectionElementImpl::HTMLTableSectionElementImpl): (DOM::HTMLTableSectionElementImpl::insertRow): (DOM::HTMLTableRowElementImpl::insertCell): (DOM::HTMLTableCellElementImpl::HTMLTableCellElementImpl): (DOM::HTMLTableColElementImpl::HTMLTableColElementImpl):
  • khtml/html/html_tableimpl.h: (DOM::HTMLTablePartElementImpl::HTMLTablePartElementImpl): (DOM::HTMLTableRowElementImpl::HTMLTableRowElementImpl): (DOM::HTMLTableCaptionElementImpl::HTMLTableCaptionElementImpl):
  • khtml/html/htmlfactory.cpp: (DOM::htmlConstructor): (DOM::headConstructor): (DOM::bodyConstructor): (DOM::baseConstructor): (DOM::linkConstructor): (DOM::metaConstructor): (DOM::styleConstructor): (DOM::titleConstructor): (DOM::frameConstructor): (DOM::framesetConstructor): (DOM::iframeConstructor): (DOM::formConstructor): (DOM::buttonConstructor): (DOM::inputConstructor): (DOM::isindexConstructor): (DOM::fieldsetConstructor): (DOM::labelConstructor): (DOM::legendConstructor): (DOM::optgroupConstructor): (DOM::optionConstructor): (DOM::selectConstructor): (DOM::textareaConstructor): (DOM::dlConstructor): (DOM::ulConstructor): (DOM::olConstructor): (DOM::dirConstructor): (DOM::menuConstructor): (DOM::liConstructor): (DOM::blockquoteConstructor): (DOM::divConstructor): (DOM::headingConstructor): (DOM::hrConstructor): (DOM::paragraphConstructor): (DOM::preConstructor): (DOM::basefontConstructor): (DOM::fontConstructor): (DOM::modConstructor): (DOM::anchorConstructor): (DOM::imageConstructor): (DOM::mapConstructor): (DOM::areaConstructor): (DOM::canvasConstructor): (DOM::appletConstructor): (DOM::embedConstructor): (DOM::objectConstructor): (DOM::paramConstructor): (DOM::scriptConstructor): (DOM::tableConstructor): (DOM::tableCaptionConstructor): (DOM::tableColConstructor): (DOM::tableRowConstructor): (DOM::tableCellConstructor): (DOM::tableSectionConstructor): (DOM::brConstructor): (DOM::quoteConstructor): (DOM::marqueeConstructor): (DOM::HTMLElementFactory::createHTMLElement):
  • khtml/html/htmlparser.cpp: (HTMLParser::HTMLParser): (HTMLParser::~HTMLParser):
  • khtml/html/htmlparser.h: (HTMLParser::doc):
  • khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::HTMLTokenizer): (khtml::HTMLTokenizer::parseTag): (khtml::parseHTMLDocumentFragment):
  • khtml/html/htmltokenizer.h:
  • khtml/misc/loader.h:
  • khtml/misc/shared.h: (khtml::TreeShared::~TreeShared): (khtml::TreeShared::destroy): (khtml::TreeShared::deref):
  • khtml/xbl/xbl_tokenizer.cpp: (XBL::XBLTokenHandler::XBLTokenHandler):
  • khtml/xbl/xbl_tokenizer.h: (XBL::):
  • khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::RangeImpl): (DOM::RangeImpl::setStart): (DOM::RangeImpl::setEnd): (DOM::RangeImpl::processContents): (DOM::RangeImpl::cloneRange): (DOM::RangeImpl::setStartAfter): (DOM::RangeImpl::setEndBefore): (DOM::RangeImpl::setEndAfter): (DOM::RangeImpl::setStartBefore): (DOM::rangeOfContents):
  • khtml/xml/dom2_rangeimpl.h:
  • khtml/xml/dom_docimpl.cpp: (DOMImplementationImpl::createDocumentType): (DOMImplementationImpl::createDocument): (DocumentImpl::DocumentImpl): (DocumentImpl::destroy): (DocumentImpl::~DocumentImpl): (DocumentImpl::createDocumentFragment): (DocumentImpl::createTextNode): (DocumentImpl::createComment): (DocumentImpl::createCDATASection): (DocumentImpl::createProcessingInstruction): (DocumentImpl::createEntityReference): (DocumentImpl::createEditingTextNode): (DocumentImpl::createElementNS): (DocumentImpl::setTitle): (DocumentImpl::removeTitle): (DocumentImpl::createRange): (DocumentImpl::createTokenizer): (DocumentImpl::implicitClose): (DocumentImpl::setHoverNode): (DocumentImpl::setActiveNode): (DocumentImpl::setFocusNode): (DocumentImpl::createAttributeNS): (DocumentFragmentImpl::DocumentFragmentImpl): (DocumentFragmentImpl::cloneNode): (DocumentTypeImpl::DocumentTypeImpl):
  • khtml/xml/dom_docimpl.h: (DOM::DocumentImpl::selfOnlyRef): (DOM::DocumentImpl::selfOnlyDeref): (DOM::DocumentImpl::focusNode): (DOM::DocumentImpl::hoverNode): (DOM::DocumentImpl::activeNode):
  • khtml/xml/dom_elementimpl.cpp: (AttributeImpl::allocateImpl): (AttrImpl::AttrImpl): (AttrImpl::cloneNode): (ElementImpl::ElementImpl): (StyledElementImpl::StyledElementImpl):
  • khtml/xml/dom_elementimpl.h:
  • khtml/xml/dom_nodeimpl.cpp: (DOM::NodeImpl::NodeImpl): (DOM::NodeImpl::setDocument): (DOM::NodeImpl::~NodeImpl): (DOM::NodeImpl::dispatchEvent): (DOM::NodeImpl::dispatchWindowEvent): (DOM::NodeImpl::dispatchMouseEvent): (DOM::NodeImpl::checkAddChild): (DOM::ContainerNodeImpl::ContainerNodeImpl): (DOM::ContainerNodeImpl::removeAllChildren): (DOM::ContainerNodeImpl::~ContainerNodeImpl):
  • khtml/xml/dom_nodeimpl.h: (DOM::NodeImpl::inDocument): (DOM::NodeImpl::getDocument):
  • khtml/xml/dom_textimpl.cpp: (CharacterDataImpl::CharacterDataImpl): (CommentImpl::CommentImpl): (TextImpl::TextImpl): (TextImpl::createNew): (CDATASectionImpl::CDATASectionImpl): (CDATASectionImpl::createNew): (EditingTextImpl::EditingTextImpl):
  • khtml/xml/dom_textimpl.h:
  • khtml/xml/dom_xmlimpl.cpp: (DOM::EntityImpl::EntityImpl): (DOM::EntityReferenceImpl::EntityReferenceImpl): (DOM::EntityReferenceImpl::cloneNode): (DOM::NotationImpl::NotationImpl): (DOM::ProcessingInstructionImpl::ProcessingInstructionImpl): (DOM::ProcessingInstructionImpl::cloneNode):
  • khtml/xml/dom_xmlimpl.h:
  • khtml/xml/xml_tokenizer.cpp: (khtml::XMLTokenizer::XMLTokenizer): (khtml::XMLTokenizer::startElementNs): (khtml::XMLTokenizer::enterText): (khtml::XMLTokenizer::processingInstruction): (khtml::XMLTokenizer::cdataBlock): (khtml::XMLTokenizer::comment): (khtml::XMLTokenizer::internalSubset): (khtml::XMLTokenizer::finish): (khtml::XMLTokenizer::insertErrorMessageBlock): (khtml::XMLTokenizer::executeScripts): (khtml::newXMLTokenizer):
  • khtml/xml/xml_tokenizer.h:
  • khtml/xsl/xslt_processorimpl.cpp: (DOM::createFragmentFromSource):

Nov 7, 2005:

4:49 PM Changeset in webkit [11095] by harrison
  • 1 edit
    4 adds in trunk/LayoutTests

Layout test for http://bugzilla.opendarwin.org/show_bug.cgi?id=3739
Unreproducible - Assertion failure in isEqualIgnoringAffinity on double-click

  • editing/selection/doubleclick-crash-expected.checksum: Added.
  • editing/inserting/doubleclick-crash-expected.png: Added.
  • editing/inserting/doubleclick-crash-expected.txt: Added.
  • editing/inserting/doubleclick-crash.html: Added.
4:49 PM Changeset in webkit [11094] by harrison
  • 3 edits in trunk/WebCore

Reviewed by Justin and Hyatt.

http://bugzilla.opendarwin.org/show_bug.cgi?id=3739
Unreproducible - Assertion failure in isEqualIgnoringAffinity on double-click

Test case added:

  • editing/inserting/doubleclick-crash.html
  • khtml/rendering/render_text.cpp: (RenderText::atLineWrap): New utility function. (RenderText::caretRect): Use atLineWrap. Remove dead code. (RenderText::inlineBox): Use atLineWrap.
  • khtml/rendering/render_text.h: Add atLineWrap.
3:24 PM Changeset in webkit [11093] by hyatt
  • 3 edits in trunk/WebCore

Fix for sluggish loading of large pages due to excessive
repaints. Large pages still need a lot of work while
loading, but this helps.

Reviewed by darin

  • khtml/rendering/render_object.cpp: (RenderObject::mustRepaintBackgroundOrBorder): (RenderObject::repaintAfterLayoutIfNeeded):
  • khtml/rendering/render_object.h:
2:30 PM Changeset in webkit [11092] by adele
  • 3 edits
    4 adds in trunk

Reviewed by Darin Adler.
Committed by Adele Peterson.

Added:

  • fast/forms/option-select.html
  • khtml/html/html_formimpl.h: (DOM::HTMLOptionElementImpl::checkDTD): Allow <script> tags to be children of option elements
  • khtml/html/html_formimpl.cpp: (DOM::HTMLOptionElementImpl::text): Skip the script content when creating text string
1:32 PM Changeset in webkit [11091] by darin
  • 2 edits in trunk/WebKitTools
  • Scripts/cvs-apply: Fix case where the patch has files at the top level.
1:21 PM Changeset in webkit [11090] by ggaren
  • 1 edit
    3 adds in trunk/WebCore
  • Added manual test cases for <rdar://problem/4161660> window.close followed by window.print in onload handler crashes Safari in KJS::ScopeChain::bottom (redmccombstoyota.com)
  • manual-tests/resources/window-close-during-parsing-popup1.html: Added.
  • manual-tests/resources/window-close-during-parsing-popup2.html: Added.
  • manual-tests/window-close-during-parsing.html: Added.
1:18 PM Changeset in webkit [11089] by ggaren
  • 2 edits in trunk/WebKit

Darin reviewed this a while back.

  • Fixed <rdar://problem/4161660> window.close followed by window.print in onload handler crashes Safari in KJS::ScopeChain::bottom (redmccombstoyota.com)

Added a call to stopLoading inside closeWindowSoon to prevent load
events from firing after a window has torn down.

Manual test case: WebCore/manual-tests/window-close-during-parsing.html

  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge closeWindowSoon]):
12:52 PM Changeset in webkit [11088] by darin
  • 12 edits in trunk/WebCore

Reviewed by Tim Omernick.

  • speed up timers by using CFTimerRunLoopRef instead of NSTimer
  • kwq/KWQObject.h: Removed pauseTimer, resumeTimers, and _addTimer, added timerIntervals and restartTimer. Made KWQObjectSenderScope functions be inline.
  • kwq/KWQObject.mm: (timerFired): Added. Function called when the CFRunLoopTimerRef fires. Puts the timer into the deferred timer array if timers are deferred, otherwise makes a QTimerEvent and calls timerEvent on the target. (QObject::startTimer): Moved most of the code inside restartTimer. This now just picks a new timer ID and calls restartTimer. (QObject::restartTimer): Added. Creates a KWQObjectTimer and puts it in a timers dictionary. That includes creating a CFRunLoopTimer and scheduling it on the current run loop. (QObject::timerIntervals): Added. Looks up a timer and returns the intervals for next time to fire and the "fire again" interval. (deleteTimer): Added. Invalidates and then removes a timer. (QObject::killTimer): Changed to use deleteTimer to do most of its work. (deleteOneTimer): Added. Calls deleteTimer. (QObject::killTimers): Changed to use deleteOneTimer to do most of its work. (sendDeferredTimerEvent): Added. Creates a QTimerEvent and calls timerEvent on the target. (sendDeferredTimerEvents): Added. Calls sendDeferredTimerEvent in a loop on all the deferred timers. (QObject::setDefersTimers): Updated to call sendDeferredTimerEvents as needed.
  • kwq/KWQTimer.h: (QTimer::QTimer): Made constructor inline and removed the optional parameter. (QTimer::isActive): Made inline. (QTimer::fireDate): Added. Inline function. Got rid of the NSTimer and added a CFRunLoopTimer.
  • kwq/KWQTimer.mm: (timerFired): Added. Calls fire on the QTimer object. (QTimer::start): Changed to create a CFRunLoopTimer. (QTimer::stop): Changed to use CFRunLoopTimer functions. (QTimer::fire): Ditto. (deleteKWQSlot): Added. Used as delete function for the CFRunLoopTimerContext below. (singleShotTimerFired): Added. Used as the fire function for the CFRunLoopTimerContext below. (QTimer::singleShot): Changed to create, schedule, and release a CFRunLoopTimer.
  • khtml/ecma/kjs_window.h: Added PausedTimeouts class. Moved WindowQObject class up in the file so it can be used inline in the implementation of the Window class, and changed to use the PausedTimeouts class intead of a QMap to store the paused timeouts.
  • khtml/ecma/kjs_window.cpp: (KJS::ScheduledAction::execute): Put a check for nil part at the start; this replaces a check in the caller and a check partway down this function (after the part was already dereferenced). Fixed message handling so the message is not converted to ascii and back. Added an isObject() check so we won't crash if the passed function is a value that's not an object. Changed check for function vs. script to check for a function of nil instead of using a separate boolean. (KJS::WindowQObject::pauseTimeouts): Updated to create the new PausedTimeouts object, using the new QObject::timerIntervals function rather than the old QObject::pauseTimer function. This means that the paused timers are entirely stored in the PausedTimeouts object instead of being half in a QMap and the other half inside the QObject itself. (KJS::WindowQObject::resumeTimeouts): Ditto, using the new QObject::restartTimer function. (KJS::PausedTimeouts::~PausedTimeouts): Added. Deletes the stored timeouts, including the scheduled actions, unless the timeouts have already been resumed (in which case the m_array field will be 0).
  • kwq/KWQKHTMLPart.h: Renamed pause/resumeActions to pause/resumeTimeouts and made them use the PausedTimeouts class and no longer take a key parameter.
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::redirectionTimerStartedOrStopped): Use the new fireDate() function rathe than the old getNSTimer() function to get the fire date. (KWQKHTMLPart::pauseTimeouts): Remove the call to hasTimeouts and the key parameter. (KWQKHTMLPart::resumeTimeouts): Remove the key parameter. (KWQKHTMLPart::openURLFromPageCache): Change the timeout handling to use PausedTimeouts instead of a QMap for the paused timeouts.
  • kwq/KWQPageState.h: Changed to use PausedTimeouts instead of a QMap for timeouts. Added a pausedTimeouts parameter to the initializer and removed the setPausedActions: method.
  • kwq/KWQPageState.mm: (-[KWQPageState initWithDocument:URL:windowProperties:locationProperties:interpreterBuiltins:pausedTimeouts:]): Added code where it sets the pausedTimouts. (-[KWQPageState pausedTimeouts]): Added. (-[KWQPageState clear]): Added code to delete the pausedTimeouts and to deref mousePressNode. (-[KWQPageState invalidate]): Fixed bug where document would not be deref'd if the view was 0. (-[KWQPageState dealloc]): Removed code to deref mousePressNode since that's now handled in the clear method. (-[KWQPageState finalize]): Set document to 0 after deref for consistency.
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge saveDocumentToPageCache]): Changed to pass in the paused timeouts using the new pauseTimeouts function.
11:59 AM Changeset in webkit [11087] by justing
  • 6 edits
    8 adds in trunk/LayoutTests

Reviewed by harrison

New/updated layout tests for fixes for:

<rdar://problem/4125131> REGRESSION (Mail): after certain steps,
extra blank line appears when typing past end of reply-quoted text
<rdar://problem/4024996> Applying block styles can cause assertion
failure in inline style removal

  • editing/deleting/delete-at-paragraph-boundaries-011-expected.txt:
  • editing/deleting/delete-br-011-expected.checksum:
  • editing/deleting/delete-br-011-expected.png:
  • editing/deleting/delete-br-011-expected.txt:
  • editing/inserting/insert-3786362-fix-expected.txt:
  • editing/inserting/insert-at-end-01-expected.checksum: Added.
  • editing/inserting/insert-at-end-01-expected.png: Added.
  • editing/inserting/insert-at-end-01-expected.txt: Added.
  • editing/inserting/insert-at-end-01.html: Added.
  • editing/inserting/insert-at-end-02-expected.checksum: Added.
  • editing/inserting/insert-at-end-02-expected.png: Added.
  • editing/inserting/insert-at-end-02-expected.txt: Added.
  • editing/inserting/insert-at-end-02.html: Added.
11:59 AM Changeset in webkit [11086] by justing
  • 6 edits in trunk/WebCore

Reviewed by harrison

<rdar://problem/4125131> REGRESSION (Mail): after certain steps,
extra blank line appears when typing past end of reply-quoted text
<rdar://problem/4024996> Applying block styles can cause assertion
failure in inline style removal

Prevent VisiblePositions at [br, 1] at the end of root editable elements.

Layout tests added:

  • inserting/insert-at-end-01.html
  • inserting/insert-at-end-02.html

Layout tests changed (fixed):

  • editing/deleting/delete-br-011.html
  • editing/deleting/delete-at-paragraph-boundaries-011.html
  • editing/inserting/insert-3786362-fix.html
  • khtml/editing/apply_style_command.cpp: (khtml::ApplyStyleCommand::applyInlineStyle): Do the layout before calculating start/end positions, not after, since upstream/downstream need to know who is rendered/unrendered. Don't do equivalentRangeCompliantPosition() on the start position in addition to downstream(), since it a) is confusing, b) frequently causes start/end to be equal, making removeInlineStyle a no-op and c) causes an assertion to fire. Only reset start/end using endingSelection() if splitTextElement was needed, since reseting start/end negates the work done above to swap start/end if they are backwards. When the start position points off the end of a node, that node should be skipped in all cases, not just the start.node() != end.node() case.
  • khtml/editing/composite_edit_command.cpp: (khtml::CompositeEditCommand::appendBlockPlaceholder): (khtml::CompositeEditCommand::insertBlockPlaceholder): Placeholders should be allowed in nodes that aren't blockFlow, for example, deleting the b in <div><span>b</span></div> should insert a placeholder.
The assertion here should really be something like isBlockFlow

isInlineFlow, but I can't assert those until deletion improves (4244964).

  • khtml/editing/delete_selection_command.cpp: (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete): Don't try to select the placeholder when applying style to it. It isn't necessary, and it's now impossible to do at the end of the document in any case.
  • khtml/editing/visible_position.cpp: (khtml::VisiblePosition::initDownstream): Don't create VisiblePositions at [br, 1] at the end of editable blocks, it produces strange/inconsistent editing behavior at the end of the document.
  • khtml/khtml_part.cpp: Fixed a comment.

Nov 6, 2005:

7:07 PM Changeset in webkit [11085] by ggaren
  • 1 edit in trunk/JavaScriptCore/ChangeLog

changelog fixup

1:47 PM Changeset in webkit [11084] by andersca
  • 3 edits in trunk/WebCore

2005-11-06 Anders Carlsson <andersca@mac.com>

Reviewed by Darin.

  • kwq/KWQClipboard.mm: (KWQClipboard::dragNSImage): Get the NSImage from the image renderer.
  • kwq/WebCoreImageRenderer.h: Add image method. This already exists in WebImageRenderer in WebKit.
12:44 PM Changeset in webkit [11083] by ggaren
  • 1 edit
    4 adds
    2 deletes in trunk/LayoutTests

Layout test for http://bugzilla.opendarwin.org/show_bug.cgi?id=5571
REGRESSION (412.5-TOT): duplicated words/sentences at
shakespeer.sourceforge.net

Also renamed previous test for consistency.

  • fast/js/regexp-big-unicode-ranges-expected.txt: Removed.
  • fast/js/regexp-big-unicode-ranges.html: Removed.
  • fast/js/regexp-extended-characters-crash-expected.txt: Added.
  • fast/js/regexp-extended-characters-crash.html: Added.
  • fast/js/regexp-extended-characters-match-expected.txt: Added.
  • fast/js/regexp-extended-characters-match.html: Added.
12:41 PM Changeset in webkit [11082] by ggaren
  • 3 edits in trunk/JavaScriptCore

Reviewed by Darin.

Our UTF16-modified PCRE didn't work with extended character classes
(classes involving characters > 255) because it used the GETCHARINC
macro to read through them. In UTF16 mode, GETCHARINC expects UTF16
input, but PCRE encodes character classes in UTF8 regardless of the
input mode of the subject string.

The fix is to explicitly define GETUTF8CHARINC, and to use it,
rather than GETCHARINC, when reading extended character classes.

In UTF8 mode, we simply define GETCHARINC to be GETUTF8CHARINC.

  • pcre/pcre_internal.h:
  • pcre/pcre_xclass.c: (_pcre_xclass):
Note: See TracTimeline for information about the timeline view.