Timeline



Oct 21, 2005:

9:38 PM Changeset in webkit [10908] by hyatt
  • 1 edit in trunk/WebCore/khtml/khtml_part.cpp

Put back in the hasRef() check for jumping to anchors to fix the regression (bug 5457)

8:07 PM Changeset in webkit [10907]
  • 210 copies
    15 deletes in tags/WebCore-416~13

This commit was manufactured by cvs2svn to create tag
'WebCore-416~13'.

8:07 PM Changeset in webkit [10906] by thatcher
  • 2 edits in branches/Safari-Den-branch/WebCore

Versioning just in case to WebCore-416.13

8:06 PM Changeset in webkit [10905] by thatcher
  • 2 edits in branches/Safari-Den-branch/WebCore

Reviewed by Justin Garcia.

If node is an ancestor of refNode, use the highest non-common ancestor instead
(otherwise we would be trying to append refNode's ancestor after refNode)

  • khtml/editing/htmlediting.cpp: (khtml::DeleteSelectionCommand::moveNodesAfterNode):
6:42 PM Changeset in webkit [10904] by ggaren
  • 2 edits in trunk/WebKit

Reviewed by darin.

WebKit side of the fix for <rdar://problem/4184719> window.print() followed by
window.close() causes world leak

No test case added because I have another reviewed patch that will include a test
for this bug as well as many others.

Under some conditions, [WebDataSource stopLoading] did not set [WebDataSource isLoading]
to false, so the didFInishLoad delegates never fired.

The reason isLoading didn't become false was that the tokenizer was still running.
The fix here is to move the call to [WebCoreBridge stopLoading] above the early return
inside [WebDataSource stopLoading] -- since the tokenizer may still be running even if the
loader is finished loading -- and then to call [WebFrame _checkLoadComplete] to
give the frame a chance to fire its delegates.

  • WebView.subproj/WebDataSource.m: (-[WebDataSource _stopLoadingInternal]):
6:41 PM Changeset in webkit [10903] by ggaren
  • 7 edits in trunk/WebCore

Reviewed by darin.

WebCore side of fix for <rdar://problem/4184719> window.print() followed by window.close()
causes world leak

No test case added because I have another reviewed patch that will include a test
for this bug as well as many others.

Under some conditions, [WebDataSource stopLoading] did not set [WebDataSource isLoading]
to false, so the didFInishLoad delegates never fired.

The reason isLoading didn't become false was that the tokenizer was still running.
The fix here is to add a call to Tokenizer::stopParsing inside HTMLPart::stopLoading.

Since the WebKit side of the fix eliminates an early return that used to protect
HTMLPart::stopLoading from multiple calls, I added an early return inside
HTMLPart::stopLoading.

I also merged stopped and stopLoading, and merged the way XMLTokenizer and HTMLTokenizer
track whether they're in a stopped state, because anything less would be uncivilized.

  • khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::HTMLTokenizer): (khtml::HTMLTokenizer::write): (khtml::HTMLTokenizer::stopParsing): (khtml::HTMLTokenizer::processToken):
  • khtml/html/htmltokenizer.h:
  • khtml/khtml_part.cpp: (KHTMLPart::stopLoading): (KHTMLPart::endIfNotLoading): (KHTMLPart::stop):
  • khtml/xml/xml_tokenizer.cpp: (khtml::Tokenizer::Tokenizer): (khtml::Tokenizer::finishedParsing): (khtml::XMLTokenizer::XMLTokenizer): (khtml::XMLTokenizer::endElementNs): (khtml::XMLTokenizer::characters): (khtml::XMLTokenizer::error): (khtml::XMLTokenizer::processingInstruction): (khtml::XMLTokenizer::cdataBlock): (khtml::XMLTokenizer::comment): (khtml::XMLTokenizer::stopParsing):
  • khtml/xml/xml_tokenizer.h: (khtml::Tokenizer::stopParsing):
  • kwq/KWQSignalStubs.mm: (Loader::requestStarted):
6:10 PM Changeset in webkit [10902] by bdakin
  • 3 edits
    4 adds in trunk

* empty log message *

5:11 PM Changeset in webkit [10901] by bdakin
  • 2 edits
    4 adds in trunk

* empty log message *

5:06 PM Changeset in webkit [10900] by mjs
  • 3 edits in trunk/LayoutTests

Reviewed by Eric, landed by Maciej.

  • fixed xmlhttprequest test to not depend on property enumeration order
  • fast/js/xmlhttprequest-get-expected.txt:
  • fast/js/xmlhttprequest-get.xhtml:
4:35 PM Changeset in webkit [10899] by mjs
  • 8 edits
    2 deletes in trunk/LayoutTests
  • temporarily reverted test changes corresponding to reverted changes
  • dom/xhtml/level3/core/nodeissamenode01-expected.txt:
  • dom/xhtml/level3/core/nodeissamenode02-expected.txt:
  • dom/xhtml/level3/core/nodeissamenode03-expected.txt:
  • dom/xhtml/level3/core/nodeissamenode04-expected.txt:
  • dom/xhtml/level3/core/nodeissamenode05-expected.txt:
  • dom/xhtml/level3/core/nodeissamenode06-expected.txt:
  • dom/xhtml/level3/core/nodeissamenode10-expected.txt:
  • fast/js/for-in-expected.txt: Removed.
  • fast/js/for-in.html: Removed.
4:13 PM Changeset in webkit [10898] by vicki
  • 1 add in trunk/WebCore/manual-tests/linkjump-1.html

forgot to add this file in my previous commit

4:11 PM Changeset in webkit [10897] by vicki
  • 2 edits in trunk/WebCore

Reviewed by John.

  • fixed <rdar://problem/4304213> sometimes have to click twice to jump to top, on href=""
  • manual-tests/linkjump-1.html: Added.
  • khtml/khtml_part.cpp: (KHTMLPart::gotoAnchor): remove check for m_url.hasRef() - encodedHtmlRef and gotoAnchor handle empty strings for scrolling to the top of the document
3:55 PM Changeset in webkit [10896] by bdakin
  • 1 edit
    4 adds in trunk/LayoutTests

Bug #:
Submitted by:
Reviewed by:

3:49 PM Changeset in webkit [10895] by bdakin
  • 2 edits in trunk/WebCore

Bug #:
Submitted by:
Reviewed by:

3:45 PM Changeset in webkit [10894] by sullivan
  • 2 edits in trunk/WebCore

No test cases added.

  • khtml/rendering/render_theme_mac.mm: (khtml::RenderThemeMac::setButtonPaddingFromControlSize): fix deployment build by adding default: statement to button-size switch statement
3:17 PM Changeset in webkit [10893]
  • 52 copies
    22 deletes in tags/WebKit-417~3

This commit was manufactured by cvs2svn to create tag 'WebKit-417~3'.

3:17 PM Changeset in webkit [10892] by thatcher
  • 2 edits in branches/Safari-2-0-branch/WebKit

Versioning WebKit to 417.3

3:04 PM Changeset in webkit [10891] by bdakin
  • 2 edits in trunk/WebCore

Bug #:
Submitted by:
Reviewed by:

2:43 PM Changeset in webkit [10890] by hyatt
  • 2 adds in trunk/LayoutTests/fast/forms

add new test of html4 button font sizes.

2:41 PM Changeset in webkit [10889] by hyatt
  • 8 edits in trunk/LayoutTests/fast

Update the fast layout tests to have the new buttons.

2:27 PM Changeset in webkit [10888] by hyatt
  • 19 edits
    2 adds
    5 deletes in trunk/WebCore

Land the new "NSView-less" buttons. With this landing both
<input type=button> and <button> will now look like OS X-style
widgets. Customization of background and border is not yet
enabled, but this is still a big improvement over the old
AppKit widgets.

Reviewed by mjs

  • ForwardingHeaders/qpushbutton.h: Removed.
  • WebCore.xcodeproj/project.pbxproj:
  • khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::adjustRenderStyle):
  • khtml/css/cssstyleselector.h: (khtml::CSSStyleSelector::paintMetrics):
  • khtml/css/cssvalues.in:
  • khtml/css/html4.css:
  • khtml/html/html_formimpl.cpp: (DOM::HTMLButtonElementImpl::createRenderer): (DOM::HTMLInputElementImpl::click): (DOM::HTMLInputElementImpl::createRenderer):
  • khtml/html/html_formimpl.h: (DOM::HTMLInputElementImpl::isTextButton):
  • khtml/rendering/render_button.cpp: Added. (khtml::m_inner): (khtml::RenderButton::~RenderButton): (khtml::RenderButton::addChild): (khtml::RenderButton::removeChild): (khtml::RenderButton::setStyle): (khtml::RenderButton::updateFromElement):
  • khtml/rendering/render_button.h: Added. (khtml::RenderButton::removeLeftoverAnonymousBoxes): (khtml::RenderButton::renderName):
  • khtml/rendering/render_form.cpp:
  • khtml/rendering/render_form.h: (khtml::RenderFileButton::calcReplacedHeight): (khtml::RenderFileButton::isEditable):
  • khtml/rendering/render_style.h: (khtml::):
  • khtml/rendering/render_theme.cpp: (khtml::RenderTheme::adjustStyle): (khtml::RenderTheme::paint): (khtml::RenderTheme::adjustCheckboxStyle): (khtml::RenderTheme::adjustRadioStyle): (khtml::RenderTheme::adjustButtonStyle):
  • khtml/rendering/render_theme.h: (khtml::RenderTheme::setButtonSize):
  • khtml/rendering/render_theme_mac.h:
  • khtml/rendering/render_theme_mac.mm: (khtml::RenderThemeMac::setSizeFromFont): (khtml::RenderThemeMac::setFontFromControlSize): (khtml::RenderThemeMac::addIntrinsicMargins): (khtml::RenderThemeMac::setButtonPaddingFromControlSize): (khtml::RenderThemeMac::adjustButtonStyle): (khtml::RenderThemeMac::buttonSizes): (khtml::RenderThemeMac::buttonMargins): (khtml::RenderThemeMac::setButtonSize): (khtml::RenderThemeMac::setButtonCellState): (khtml::RenderThemeMac::paintButton):
  • kwq/KWQAccObject.mm: (-[KWQAccObject actionElement]): (-[KWQAccObject role]): (-[KWQAccObject title]):
  • kwq/KWQButton.h: Removed.
  • kwq/KWQButton.mm: Removed.
  • kwq/KWQComboBox.mm:
  • kwq/KWQLineEdit.h:
  • kwq/KWQLineEdit.mm:
  • kwq/KWQPushButton.h: Removed.
  • kwq/KWQPushButton.mm: Removed.
2:20 PM Changeset in webkit [10887]
  • 203 copies
    15 deletes in tags/WebCore-417~4

This commit was manufactured by cvs2svn to create tag
'WebCore-417~4'.

2:20 PM Changeset in webkit [10886]
  • 69 copies
    5 deletes in tags/JavaScriptCore-417~3

This commit was manufactured by cvs2svn to create tag
'JavaScriptCore-417~3'.

2:20 PM Changeset in webkit [10885] by thatcher
  • 4 edits in branches/Safari-2-0-branch

Versioning WebCore and JavaScriptCore-417.3

2:04 PM Changeset in webkit [10884] by thatcher
  • 1 edit in branches/Safari-2-0-branch/WebCore/khtml/ecma/kjs_binding.cpp

Rolling out some local test changes that CVS wasn't suppose to commit.

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

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

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

Reviewed by Hyatt.

Fixed <rdar://problem/4243807> Denver Regression: DOM returns lower case strings for tags in empty document

  • khtml/html/html_documentimpl.cpp: (HTMLDocumentImpl::HTMLDocumentImpl): initialize hMode to Html4.
11:43 AM Changeset in webkit [10882] by ggaren
  • 2 edits in trunk/WebKit

Patch by TimO, Reviewed by hyatt, tested and landed by me.

Found what appears to be a misguided optimization that actually causes a measurable performance problem.
A fixed-size buffer was allocated on the stack to pass into CFURLGetBytes(), presumably to avoid malloc()
for URLs less than 2048 bytes. There was also a fallback which malloc()'ed a buffer in case the fixed-size
buffer was too small to hold the URL's bytes. This malloc()'ed buffer was then wrapped in an NSData using
+dataWithBytesNoCopy:length:, avoiding a memory copy (yay!)

The problem with this approach is two-fold:

  1. Regardless of how the buffer was allocated and filled, it is immediately wrapped in an NSData using +dataWithBytes:length:, which copies the input bytes. This is pretty much unavoidable; we need to get the data into a malloc()'ed buffer to return it to the caller, unless the caller provides its own storage (which would be super inconvenient).
  1. The size of the fixed buffer was large enough that it fit most (if not all) URLs involved in our Page Load Test. This means the unintentionally-inefficient case was by far the most *common* case!

My fix is to malloc() the buffer from the start, and then use +[NSData dataWithBytes:length:freeWhenDone:]
to wrap the buffer in an NSData. This avoids a memory copy for the normal case where a URL is less than
2048 bytes, and keeps the efficient behavior for the uncommon long URL case.

  • Misc.subproj/WebNSURLExtras.m: (-[NSURL _web_originalData]):
9:35 AM Changeset in webkit [10881] by darin
  • 2 edits in trunk/WebKit

Reviewed and landed by Darin.

  • WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer CG_drawHighlightForRun:style:geometry:]): Compute background width correctly, by subtracting position after run from position before run. (addDirectionalOverride): Make the range include only the characters between the directional override characters, not the directional override characters themselves. (initializeWidthIterator): Correctly compute "widthToStart" based on the offset to the beginning of the run, not to the end of the run!

Oct 19, 2005:

11:02 PM Changeset in webkit [10880] by darin
  • 17 edits in trunk

WebCore:

Reviewed by Maciej.

  • optimizations for a total of about 1% speed-up on PLT
  • khtml/html/htmltokenizer.cpp: (khtml::fixUpChar): Changed to be more inlinable. (khtml::HTMLTokenizer::processListing): Simplified the skipLF handling. (khtml::HTMLTokenizer::parseSpecial): Changed to call the new fixUpChar. (khtml::HTMLTokenizer::parseText): Simplified the skipLF handling and changed to call the new fixUpChar. (khtml::HTMLTokenizer::parseEntity): Changed to call the new fixUpChar. (khtml::HTMLTokenizer::parseTag): Changed to call the new fixUpChar. (khtml::HTMLTokenizer::write): Changed to call the new fixUpChar.
  • khtml/rendering/font.h: Removed the floatCharacterWidths function, since it's never needed. Made some more functions inline.
  • khtml/rendering/font.cpp: Removed lots of stuff that was only for the !APPLE_CHANGES case.
  • kwq/KWQFontMetrics.h: Removed the single-character width overloads, charWidth, and floatCharacterWidths.
  • kwq/KWQFontMetrics.mm: (QFontMetrics::width): Use lroundf instead of the ROUND_TO_INT macro. (QFontMetrics::floatWidth): Removed the bogus unneeded call to the ROUND_TO_INT macro.
  • khtml/rendering/render_text.cpp: (RenderText::cacheWidths): Use floatWidth instead of floatCharacterWidths.
  • kwq/KWQComboBox.mm: (QComboBox::sizeHint): Update since the floatWidthForRun method no longer takes a widths parameter.
  • kwq/KWQLineEdit.mm: (QLineEdit::sizeForCharacterWidth): Ditto.
  • kwq/KWQListBox.mm: (QListBox::sizeForNumberOfLines): Ditto. (-[KWQTableView drawRow:clipRect:]): Ditto.
  • kwq/KWQPainter.mm: (QPainter::drawText): Ditto. Also use lroundf instead of the ROUND_TO_INT macro.
  • kwq/WebCoreTextRenderer.h: Removed the ROUND_TO_INT macro. Changed to use bool instead of bit fields. Removed the widths parameter from the floatWidthForRun method.

WebKit:

Reviewed by Maciej.

  • optimizations for a total of about 1% speed-up on PLT
  • WebCoreSupport.subproj/WebTextRenderer.h: Updated to use bool instead of BOOL, since BOOL is a signed char (which is not so efficient, at least on PPC).
  • WebCoreSupport.subproj/WebTextRenderer.m: (isSpace): Changed BOOL to bool and UniChar to UChar32. This actually fixes a potential bug when the passed-in character is a non-BMP character (> FFFF). (isRoundingHackCharacter): Ditto. (widthForGlyph): Merged getUncachedWidth, widthFromMap, and widthForGlyph into one function. Marked it inline. Changed to include syntheticBoldOffset in the cached widths to save an add in the cached case. Instead of the special constant UNINITIALIZED_GLYPH_WIDTH, just check for a width >= 0. This allows us to use a negative number or NAN for the uninitialized width value -- I chose NAN. (overrideLayoutOperation): Use bool instead of Boolean in one place. (-[WebTextRenderer initWithFont:]): Use lroundf instead of ROUND_TO_INT. (-[WebTextRenderer floatWidthForRun:style:]): Put the code to choose the ATSU vs. CG code path back in here, because there are no callers inside the class that need to call both. (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]): Use bool instead of BOOL. (+[WebTextRenderer setAlwaysUseATSU:]): Ditto. (fontContainsString): Ditto. (-[WebTextRenderer computeWidthForSpace]): Ditto. Also use roundf instead of using ROUND_TO_INT. (-[WebTextRenderer setUpFont]): Use bool instead of BOOL. (drawGlyphs): Ditto. (-[WebTextRenderer CG_drawHighlightForRun:style:geometry:]): Restructure the code so it can use the new advanceWidthIterator function instead of the old widthForNextCharacter function. (-[WebTextRenderer CG_drawRun:style:geometry:]): Use malloc instead of calloc since we don't need initialization. Call CG_floatWidthForRun instead of floatWidthForRun -- no need to re-check whether to use the CG or ATSU code path. Removed code to handle a renderer of 0 since we no longer generate that in the renderers array in advanceWidthIterator. (CG_floatWidthForRun): Changed to call the new advanceWidthIterator instead of the old widthForNextCharacter. (-[WebTextRenderer extendCharacterToGlyphMapToInclude:]): Use malloc instead of calloc and explicitly initialize the one field that needs it. Fixed a potential storage leak by adding a call to WKClearGlyphVector. Initialize the renderers to self instead of to 0. (-[WebTextRenderer extendGlyphToWidthMapToInclude:]): Initialize the widths to NAN instead of UNINITIALIZED_GLYPH_WIDTH. (addDirectionalOverride): Fixed bug where the first and last character in the buffer could be uninitialized and where characters before and after the direction override could be incorrect. (-[WebTextRenderer ATSU_drawRun:style:geometry:]): Use bool instead of BOOL. (-[WebTextRenderer ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]): Ditto. (advanceWidthIteratorOneCharacter): Added new helper function for CG_pointToOffset. (-[WebTextRenderer CG_pointToOffset:style:position:reversed:includePartialGlyphs:]): Reimplemented to use advanceWidthIteratorOneCharacter instead of widthForNextCharacter. Also call CG_floatWidthForRun instead of floatWidthForRun since we don't need to reconsider whether to use CG or ATSU. (glyphForCharacter): Removed the map parameter and changed the renderer parameter to be an in-out one. Removed uneeded special case for when map is 0 and always get the renderer from the map. Also call extendCharacterToGlyphMapToInclude in here instead of making that the caller's responsibility. (initializeWidthIterator): Renamed to make the name shorter (removed "Character"). Streamlned common cases like "no padding" and removed some unneeded casts. Changed to use advanceWidthIterator to compute width fo the first part of the run. (normalizeVoicingMarks): Factored this out into a separate function, since it's not part of the common case. (advanceWidthIterator): Changed widthForNextCharacter to this, eliminating per-character function overhead for iterating past a few characters. Merged the handling of surrogate pairs and of voicing marks so that we typically only have to do one "if" to rule out both. Merged the mirroring for RTL and uppercasing for small caps into a single boolean so that we only need one "if" to rule out both. Call the new glyphForCharacter. Check for the character '\t' first since that's cheaper than looking at tabWidth. Check tabWidth for 0 first so that we don't have to convert it to floating point when not using it. Changed the special case for spaces to first check width, so that we don't bother with the rest of the code for glyphs not the same width as spaces. Fixed substitution code to call CG_floatWidthForRun -- no need to reconsider whether to use CG or ATSU. Also changed to properly get width from the result of that function. Merged the handling of letter spacing, padding, and word spacing into a single boolean so that we typically only have to do one "if" to rule out all three. Check for letterSpacing of 0 first so that we don't have to convert it to floating point when not using it. Same for padding and wordSpacing. Move the work from ceilCurrentWidth in line into this function. Assume that either we have all three pointers (widths, renderers, glyphs), or none of the three, to cut down on branches. (fillStyleWithAttributes): Use bool instead of BOOL. (shouldUseATSU): Ditto.
  • Misc.subproj/WebKitNSStringExtras.m: (-[NSString _web_widthWithFont:]): Update since the floatWidthForRun method no longer takes a widths parameter.
  • Misc.subproj/WebStringTruncator.m: (stringWidth): Ditto.
10:03 PM Changeset in webkit [10879] by eseidel
  • 2 edits in trunk/WebKit

Bug #: none
Submitted by: timo
Reviewed by: eseidel & darin

Changed some of the run measurement methods to C functions
to avoid overhead associated with objc_msgSend().

  • WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer floatWidthForRun:style:widths:]): Updated to call new run measurement functions instead of calling ObjC methods. (-[WebTextRenderer CG_drawRun:style:geometry:]): ditto (floatWidthForRun): ditto (CG_floatWidthForRun): ditto (ATSU_floatWidthForRun): ditto (widthForNextCharacter): ditto
12:30 PM Changeset in webkit [10878]
  • 209 copies
    15 deletes in tags/WebCore-416~12

This commit was manufactured by cvs2svn to create tag
'WebCore-416~12'.

12:30 PM Changeset in webkit [10877] by adele
  • 2 edits in branches/Safari-Den-branch/WebCore

Versioning for Safari-Den-branch - WebCore-416.12

12:27 PM Changeset in webkit [10876] by adele
  • 2 edits in branches/Safari-Den-branch/WebCore

Reviewed by Hyatt.

Fixed <rdar://problem/4243807> Denver Regression: DOM returns lower case strings for tags in empty document

  • khtml/html/html_documentimpl.cpp: (HTMLDocumentImpl::HTMLDocumentImpl): initialize hMode to Html4.
11:38 AM Changeset in webkit [10875]
  • 52 copies
    22 deletes in tags/WebKit-416~11

This commit was manufactured by cvs2svn to create tag
'WebKit-416~11'.

11:38 AM Changeset in webkit [10874] by thatcher
  • 2 edits in branches/Safari-Den-branch/WebKit

Versioning to WebKit-416.11

11:35 AM Changeset in webkit [10873] by thatcher
  • 2 edits in branches/Safari-2-0-branch/WebKit

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

2005-10-18 Tim Omernick <tomernick@apple.com>

Reviewed by John Sullivan.

<rdar://problem/4301852> Denver Regression: Text is invisible as you type in text fields in SimpleCarbonWeb

This regression was caused by the fix to <rdar://problem/4141161> REGRESSION (Tiger): WebKit does not display in composited Carbon windows.
Before that change, the dirty rect was obtained after calling -setNeedsDisplayInRect:, which intersects the dirty rect with the view's bounds.
The change in question subtly removed the bounds-intersection step, resulting in very large NSRects being converted to QuickDraw Rects with
sometimes disastrous results.

  • Carbon.subproj/HIViewAdapter.m: Added quickDrawRectForRect(), which returns a QuickDraw Rect derived from the passed CGRect. The Rect's values are clamped so that they do not overflow when cast to the short integer data type. (-[NSView setNeedsDisplay:]): NSTextView will occasionally pass a very large rect to -setNeedsDisplayInRect:. Maybe it's passing the bounds of its NSTextContainer, or something like that. Who knows? What's important here is that when we convert that NSRect to a QuickDraw Rect, the Rect's values are overflowed, which leads to unpredictable results. The solution is to use quickDrawRectForRect() to clamp the NSRect's values to the limits imposed by Rect's short int type. (-[NSView setNeedsDisplayInRect:]): ditto
11:34 AM Changeset in webkit [10872] by thatcher
  • 2 edits in branches/Safari-Den-branch/WebKit

Merged fix from TOT to Safari-Den-branch

2005-10-18 Tim Omernick <tomernick@apple.com>

Reviewed by John Sullivan.

<rdar://problem/4301852> Denver Regression: Text is invisible as you type in text fields in SimpleCarbonWeb

This regression was caused by the fix to <rdar://problem/4141161> REGRESSION (Tiger): WebKit does not display in composited Carbon windows.
Before that change, the dirty rect was obtained after calling -setNeedsDisplayInRect:, which intersects the dirty rect with the view's bounds.
The change in question subtly removed the bounds-intersection step, resulting in very large NSRects being converted to QuickDraw Rects with
sometimes disastrous results.

  • Carbon.subproj/HIViewAdapter.m: Added quickDrawRectForRect(), which returns a QuickDraw Rect derived from the passed CGRect. The Rect's values are clamped so that they do not overflow when cast to the short integer data type. (-[NSView setNeedsDisplay:]): NSTextView will occasionally pass a very large rect to -setNeedsDisplayInRect:. Maybe it's passing the bounds of its NSTextContainer, or something like that. Who knows? What's important here is that when we convert that NSRect to a QuickDraw Rect, the Rect's values are overflowed, which leads to unpredictable results. The solution is to use quickDrawRectForRect() to clamp the NSRect's values to the limits imposed by Rect's short int type. (-[NSView setNeedsDisplayInRect:]): ditto
2:15 AM Changeset in webkit [10871] by mjs
  • 11 edits in trunk/WebCore

Reviewed by Dave.

  • instead of walking the render tree to update widget positions, instead keep a set of widgets per canvas, maintained by the constructor and destroy method for RenderWidget. About a .5% speedup.
  • khtml/khtmlview.cpp: (KHTMLView::layout):
  • khtml/rendering/render_canvas.cpp: (RenderCanvas::updateWidgetPositions): (RenderCanvas::addWidget): (RenderCanvas::removeWidget):
  • khtml/rendering/render_canvas.h:
  • khtml/rendering/render_frames.cpp: (RenderPart::updateWidgetPosition): (RenderPart::needWidgetPositionUpdating):
  • khtml/rendering/render_frames.h:
  • khtml/rendering/render_layer.cpp: (khtml::RenderLayer::scrollToOffset):
  • khtml/rendering/render_object.cpp: (RenderObject::updateWidgetPosition): (RenderObject::needWidgetPositionUpdating):
  • khtml/rendering/render_object.h:
  • khtml/rendering/render_replaced.cpp: (RenderWidget::RenderWidget): (RenderWidget::destroy): (RenderWidget::updateWidgetPosition): (RenderWidget::needWidgetPositionUpdating):
  • khtml/rendering/render_replaced.h:

Oct 18, 2005:

5:03 PM Changeset in webkit [10870] by mjs
  • 6 edits in trunk/WebCore

Reviewed and landed by Maciej.

  • some simple changes that amount to a < 1% speedup.
  • khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::applyProperty):
  • khtml/rendering/bidi.cpp: (khtml::BidiIterator::direction):
  • kwq/KWQKURL.mm: (hasSlashDotOrDotDot):
  • kwq/KWQString.mm: (QString::~QString):
  • kwq/WebCoreTextRendererFactory.h:
1:45 PM Changeset in webkit [10869] by mjs
  • 10 edits in trunk/WebCore
  • back out the last change, it caused a regression with painting of offscreen plugins
  • khtml/khtmlview.cpp: (KHTMLView::layout):
  • khtml/rendering/render_form.cpp: (RenderFormElement::layout):
  • khtml/rendering/render_frames.cpp: (RenderPartObject::layout): (RenderPart::updateWidgetPositions):
  • khtml/rendering/render_frames.h:
  • khtml/rendering/render_layer.cpp: (khtml::RenderLayer::scrollToOffset):
  • khtml/rendering/render_object.cpp: (RenderObject::updateWidgetPositions):
  • khtml/rendering/render_object.h:
  • khtml/rendering/render_replaced.cpp: (RenderWidget::layout): (RenderWidget::updateWidgetPositions):
  • khtml/rendering/render_replaced.h:
10:08 AM Changeset in webkit [10868] by sullivan
  • 10 edits in trunk/WebCore

Reviewed by Dave Hyatt.
Committed by John Sullivan.

  • .5% or so speedup by removing updateWidgetPositions

Instead, widget sizes are calculated in layout and widget positions are set at
paint time, with the same kind of special handling for incremental repaint that
RenderImage does.

  • khtml/khtmlview.cpp: (KHTMLView::layout):
  • khtml/rendering/render_form.cpp: (RenderFormElement::layout):
  • khtml/rendering/render_frames.cpp: (RenderPartObject::layout):
  • khtml/rendering/render_frames.h:
  • khtml/rendering/render_layer.cpp: (khtml::RenderLayer::scrollToOffset):
  • khtml/rendering/render_object.cpp:
  • khtml/rendering/render_object.h:
  • khtml/rendering/render_replaced.cpp: (RenderWidget::layout):
  • khtml/rendering/render_replaced.h:

Oct 17, 2005:

8:15 PM Changeset in webkit [10867] by mjs
  • 11 edits in trunk

JavaScriptCore:

Reviewed by Geoff. Code changes by Darin.

  • some micro-optimizations to FastMalloc to reduce math and branches.
  • kxmlcore/FastMalloc.cpp: (KXMLCore::TCMalloc_Central_FreeList::Populate): (KXMLCore::fastMallocRegisterThread): (KXMLCore::TCMalloc_ThreadCache::GetCache): (KXMLCore::TCMalloc_ThreadCache::GetCacheIfPresent):

WebCore:

Reviewed by Geoff.

Speed up the tokenizer by keeping more state on the stack instead of in the object,
to avoid load-store traffic. About a .5% speedup.

  • khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::HTMLTokenizer): (khtml::HTMLTokenizer::reset): (khtml::HTMLTokenizer::begin): (khtml::HTMLTokenizer::setForceSynchronous): (khtml::HTMLTokenizer::processListing): (khtml::HTMLTokenizer::parseSpecial): (khtml::HTMLTokenizer::scriptHandler): (khtml::HTMLTokenizer::scriptExecution): (khtml::HTMLTokenizer::parseComment): (khtml::HTMLTokenizer::parseServer): (khtml::HTMLTokenizer::parseProcessingInstruction): (khtml::HTMLTokenizer::parseText): (khtml::HTMLTokenizer::parseEntity): (khtml::HTMLTokenizer::parseTag): (khtml::HTMLTokenizer::continueProcessing): (khtml::HTMLTokenizer::write): (khtml::HTMLTokenizer::allDataProcessed): (khtml::HTMLTokenizer::end): (khtml::HTMLTokenizer::finish): (khtml::HTMLTokenizer::notifyFinished): (khtml::HTMLTokenizer::isWaitingForScripts):
  • khtml/html/htmltokenizer.h: (khtml::HTMLTokenizer::): (khtml::HTMLTokenizer::State::State): (khtml::HTMLTokenizer::State::tagState): (khtml::HTMLTokenizer::State::setTagState): (khtml::HTMLTokenizer::State::entityState): (khtml::HTMLTokenizer::State::setEntityState): (khtml::HTMLTokenizer::State::inScript): (khtml::HTMLTokenizer::State::setInScript): (khtml::HTMLTokenizer::State::inStyle): (khtml::HTMLTokenizer::State::setInStyle): (khtml::HTMLTokenizer::State::inSelect): (khtml::HTMLTokenizer::State::setInSelect): (khtml::HTMLTokenizer::State::inXmp): (khtml::HTMLTokenizer::State::setInXmp): (khtml::HTMLTokenizer::State::inTitle): (khtml::HTMLTokenizer::State::setInTitle): (khtml::HTMLTokenizer::State::inPlainText): (khtml::HTMLTokenizer::State::setInPlainText): (khtml::HTMLTokenizer::State::inProcessingInstruction): (khtml::HTMLTokenizer::State::setInProcessingInstruction): (khtml::HTMLTokenizer::State::inComment): (khtml::HTMLTokenizer::State::setInComment): (khtml::HTMLTokenizer::State::inTextArea): (khtml::HTMLTokenizer::State::setInTextArea): (khtml::HTMLTokenizer::State::escaped): (khtml::HTMLTokenizer::State::setEscaped): (khtml::HTMLTokenizer::State::inServer): (khtml::HTMLTokenizer::State::setInServer): (khtml::HTMLTokenizer::State::skipLF): (khtml::HTMLTokenizer::State::setSkipLF): (khtml::HTMLTokenizer::State::startTag): (khtml::HTMLTokenizer::State::setStartTag): (khtml::HTMLTokenizer::State::discardLF): (khtml::HTMLTokenizer::State::setDiscardLF): (khtml::HTMLTokenizer::State::allowYield): (khtml::HTMLTokenizer::State::setAllowYield): (khtml::HTMLTokenizer::State::loadingExtScript): (khtml::HTMLTokenizer::State::setLoadingExtScript): (khtml::HTMLTokenizer::State::forceSynchronous): (khtml::HTMLTokenizer::State::setForceSynchronous): (khtml::HTMLTokenizer::State::inAnySpecial): (khtml::HTMLTokenizer::State::hasTagState): (khtml::HTMLTokenizer::State::hasEntityState): (khtml::HTMLTokenizer::State::): (khtml::HTMLTokenizer::State::setBit): (khtml::HTMLTokenizer::State::testBit):
  • khtml/rendering/bidi.cpp: (khtml::RenderBlock::checkLinesForTextOverflow):
  • khtml/rendering/render_block.cpp: (khtml::RenderBlock::updateFirstLetter):
  • khtml/rendering/render_flow.cpp: (RenderFlow::caretRect):
  • khtml/rendering/render_line.cpp: (khtml::EllipsisBox::paint):
  • khtml/rendering/render_object.cpp: (RenderObject::firstLineStyle):
  • khtml/rendering/render_object.h: (khtml::RenderObject::style):
5:16 PM Changeset in webkit [10866] by mjs
  • 12 edits in trunk

LayoutTests:

  • temporarily back out hyatt's recent changes since the tree was closed
  • fast/clip/008-expected.txt:
  • fast/css/acid2-expected.txt:
  • fast/css/acid2-pixel-expected.txt:
  • fast/dom/gc-3.html:
  • fast/table/overflowHidden-expected.txt:

WebCore:

  • temporarily back out hyatt's recent changes since the tree was closed
  • khtml/rendering/render_container.cpp: (RenderContainer::destroy): (RenderContainer::destroyChildren):
  • khtml/rendering/render_container.h:
  • khtml/rendering/render_flow.cpp: (RenderFlow::destroy):
  • khtml/rendering/render_layer.cpp: (khtml::RenderLayer::isTransparent): (khtml::RenderLayer::paintLayer): (khtml::sortByZOrder):
  • khtml/rendering/render_layer.h:
2:23 PM Changeset in webkit [10865] by thatcher
  • 2 edits in branches/Safari-2-0-branch/JavaScriptCore
  • JavaScriptCore.exp: Rolled out some NPN symbols from my last commit that Tim O. and I determined are not public.
11:41 AM Changeset in webkit [10864] by thatcher
  • 2 edits in branches/Safari-2-0-branch/JavaScriptCore
  • Fixed: <rdar://problem/4300099> JavaScriptCore export file needs to include symbols used by Java/liveconnect and other bindings clients

Reviewed by Darin and Geoff.

  • JavaScriptCore.exp: adding a few sysmbols for jni bindings also add the WebUndefined ObjC class symbol, and some missing NPN symbols
12:37 AM Changeset in webkit [10863] by hyatt
  • 1 edit in trunk/LayoutTests/fast/table/overflowHidden-expected.txt

check in fixed overflow:hidden table case.

12:36 AM Changeset in webkit [10862] by hyatt
  • 2 edits in trunk/LayoutTests/fast/css

Check in fixed acid2.

12:35 AM Changeset in webkit [10861] by hyatt
  • 1 edit in trunk/LayoutTests/fast/clip/008-expected.txt

Fix clip test.

12:29 AM Changeset in webkit [10860] by hyatt
  • 3 edits in trunk/WebCore

Fix for bugzilla bug 5283. Make overflow layers lose to other kinds of
layers if z-index is equivalent. Technically overflow isn't even supposed
to establish a stacking context, so the use of RenderLayer for overflow,
although elegant and simple, isn't correct. This patch is essentially a hack
to make the common problem go away, but the deeper mistake remains.

Reviewed by eseidel

  • khtml/rendering/render_layer.cpp: (khtml::RenderLayer::isTransparent): (khtml::RenderLayer::paintLayer): (khtml::isOverflowOnly): (khtml::compare): (khtml::sortByZOrder):
  • khtml/rendering/render_layer.h:
Note: See TracTimeline for information about the timeline view.