change list for WebCore/JavaScriptCore version 60
Darin Adler
darin@apple.com
Wed, 12 Feb 2003 11:59:30 -0800
Hi guys. We just did a new Safari release, and we put up new tarballs
of WebCore and JavaScriptCore.
Here's a list of the changes we made in KDE-derived code in WebCore and
JavaScriptCore between versions 48 and 60:
- fixed a few places that said !x == y but meant !(x == y), with mostly
harmless results
khtml
-----
- changed JavaScript enabled mode transition in KHTMLPart so it happens
after the interpreter is cleared
- fixed the part so it never emits the unload event twice
- enabled the pausing/resuming of JS timeouts for the back/forward cache
khtml/ecma
----------
- fixed a stale pointer issue in DOMNode::getValueProperty by getting
the render object only after updating the render tree
- did cross-frame domain security fixes, most just merged
- added JavaScript name for window.history
- fixed event handling so that listeners don't stop event propagation
by just returning false; real event handlers do, but listeners have to
do an explicit preventDefault
- fixed handling of document.open with more than two parameters
- made Plugin and MimeType use PluginBase as a base class
- return empty string instead of null for the "no referrer" case to
match other browsers
khtml/rendering
---------------
- improved debugging asserts in the arena code
- fixed overflow problems in the auto-width table code by using ints
for calculations, then clamping to 0x7FFF when setting render object
widths
- added painting to the root so that documents without an HTML element
(like many XML ones) still get background painted
- rolled in new table code from Lars, made many bug fixes in it too
- fixed isImage to return true for RenderImage
- dispatch image load events using a timer instead of immediately;
eliminates a source of reentrancy-related bugs
- fixed bug where removeLeftoverAnonymousBoxes would remove a table
cell, which would hork the table
- fixed problems in whitespace exclusion code that were breaking many
non-Roman sites
- changed paint phase to use a new PaintActon enum, and added a new
PaintActionSelection that paints only the selection
- fixed bug where empty <li> tags did not render bullets
- fixed images that specify width but not height, or height but not
width, to preserve aspect ratio as in other browsers
- changed nodeAtPoint to return text nodes, some callers to go to the
parent node since they needed the old behavior
- added a canHaveChildren method that returns true for RenderContainer
and derived classes, false for RenderReplaced, and don't allow any
children inside RenderReplaced; fixes probles with render object
children for <object> tags that are images
- fixed table layout for tables where only the last column is fixed by
distributing width to all the fixed columns first in
AutoTableLayout::calcEffectiveWidth
- fixed major speed problem in checkSelectionPoint's continuation
handling by refactoring it into two separate functions
- changed root height and width computations in an attempt to better
handle XML documents where there's more than one child of the root
- fixed appendRun in the bidi code to ignore positioned objects.
- cleaned up some of the whitespace skipping code in bidi.cpp
- picked up the new availableHeight() method from the trunk and merged
in the new calcHeight functions and calcAbsoluteVertical changes
- made layers more dynamic, able to be removed when the style changes
and to preserve document order when inserted because of style changes
- merged calcReplacedWidth with the trunk and ditched the old method
- patched calcAbsoluteVertical to fix tables with auto height to shrink
wrap
- made pseudo elements not get inserted if display: none is set on them.
- don't allow first-letter to be positioned or floated (as per CSS2
spec)
- fixed margin collapsing bugs with vertically adjacent tables; their
max margin values weren't getting initialized.
- fixed margin collapsing bug on zeldman.com when only a bottom border
was present on a block.
- improved line breaking code to find the nearest float bottom and not
the maximal float bottom when content has to move to the next line
because of a float.
- (IMPORTANT) fixed float repainting bugs caused by the wrong layer
trying to paint floats; don't addOverhangingFloats across layers
- rewrote makeChildrenNonInline to fix a couple of bugs and be more
intuitive
- fixed stuck hover/active problems caused by layers not clearing out
their hover/active state
- fixed some bugs with marker positioning now that it's not a floating
element any more (this is still a bit buggy; don't advise merging yet)
- merged the style diff function to the trunk
- merged in some RenderRoot changes from the trunk.
- changed wordspacing is handled at a higher level now,in the layout
code (as it has to be), not built in to our width methods
- improved setLayouted(false) to walk up the container() chain rather
than the parent() chain, so that positioned elements don't end up
causing intervening elements to relayout
- made sure that on a Visible style change we do a repaint() with the
old rect before repainting with the new rect (fixes problems when you
go from having an outline to not having an outline)
khtml/css
---------
- fixed default font size for monospace fonts to really work; bugs in
it were breaking a major CSS1 test suite
- fixed :active to be applicable to any element, not just <a>
- fixed to disallow class names starting with a digit, even in quirks
mode
- fixed our 96/72 dpi snafu
- made sure recalcStyle descends into children even when the parent
hasn't changed, but do it only if descendant rules were detected b ythe
css parser (todo: need to know if a child explicitly inherits as well,
and have to descend then also).
- made :hover/:active able to work with descendant selectors (e.g.,
li:hover > ul); makes Eric Meyer's Pure CSS Menus and Popups work
- Added -konq-nowrap for table cells (represents <td nowrap>).
- Fixed lists to only have the flowaroundfloats quirk in quirks mode.
khtml/html
----------
- added new quirks/strict mode determination based on the latest one in
Mozilla so we match Mozilla's and IE's idea of when to use strict mode
- fixed the form/image name dictionaries to get set up even for
elements that have no render object
- fixed select elements to not automatically select the first option
when size > 1
- fixed document.referrer to give the referrer used to arrive at the
page, not the referrer to be used when leaving the page; this was a big
one
- fixed a variety of "must handle NULL view" cases
- fixed nobr/wbr to behave like other inlines in the DTD
- fix marginwidth and height on iframe to init to -1 so document
margins get honored
- re-implemented the konqblock hack without the konqblock (debatable
change still as Dirk pointed out)
khtml/xml
---------
- broke render object creation part of attach functions into
createRendererIsNeeded, createRenderer, styleForRenderer, and
rendererIsNeeded to reduce the amount of repetitive code in attach
functions
- added ways to detect pages that have password fields or are secure
forms so we know not to save the values in them
- changed to not strip whitespace, because we want it in the DOM; this
brings XML to parity with HTML
- added the "flash of unstyled content" fixes as for HTML
- made the XML tokenizer handle the case where the tokenizer fails and
does not provide a line number or column for the failure
- fixed memory trasher by checking isHTMLElement as well as id when
trying to figure out if a node is a particular class
kjs
---
- relaxed date parsing to allow commas in date strings like "January
20, 2003"
- fixed serious problem in sparse/dense array optimization that would
cause arrays to "lose values"
- tweaked testkjs so we could use it with Mozilla's JavaScript test
suite
- fixed a lot of mistakes with the backwards lists that avoid recursion
(still haven't done the simpler way of reversing the list suggested by
Harri yet)
- rolled in Number ObjectImp * change from Harri
- rolled in fix for to allow date functions to accept non-strings from
Harri
- removed vestiges of the no-longer-used ListType
-- Darin