Timeline



Nov 21, 2002:

10:59 PM Changeset in webkit [2821] by darin
  • 27 edits
    3 adds in trunk

top level:

  • Site/Internal/Design/CFURL.rtf: Added.

Tools:

  • Scripts/last-update: Added. Script for Trey that tells you when you last did a cvs update, based on most-recently updated ChangeLog.

JavaScriptCore:

  • stop garbage collecting the ActivationImp objects, gets 3% on iBench
  • pave the way to separate the argument lists from scope chains
  • kjs/context.h: Added. Moved ContextImp here so it can use things defined in function.h
  • kjs/scope_chain.h: Added. Starting as a copy of List, to be improved.
  • kjs/scope_chain.cpp: Added. Starting as a copy of List, to be improved.
  • JavaScriptCore.pbproj/project.pbxproj: Rearranged things, added context.h.
  • kjs/function.cpp: (FunctionImp::call): Pass InterpreterImp, not ExecState, to ContextImp. (DeclaredFunctionImp::DeclaredFunctionImp): List -> ScopeChain. (ActivationImp::createArgumentsObject): ArgumentList -> List. (GlobalFuncImp::call): Pass InterpreterImp, not an ExecState, to ContextImp.
  • kjs/function.h: List -> ScopeChain.
  • kjs/function_object.cpp: (FunctionObjectImp::construct): List -> ScopeChain.
  • kjs/internal.cpp: (ContextImp::ContextImp): Set the context in the interpreter. (ContextImp::~ContextImp): Set the context in the interpreter to the caller. (ContextImp::mark): Mark all the activation objects. (InterpreterImp::InterpreterImp): Initialize context to 0. (InterpreterImp::mark): Mark the top context. (InterpreterImp::evaluate): Pass InterpreterImp to ContextImp.
  • kjs/internal.h: Move ContextImp to its own header. Add setContext to InterpreterImp.
  • kjs/interpreter.cpp: (Context::scopeChain): List -> ScopeChain.
  • kjs/interpreter.h: List -> ScopeChain.
  • kjs/nodes.cpp: (ResolveNode::evaluateReference): List -> ScopeChain. (FuncDeclNode::processFuncDecl): List -> ScopeChain. (FuncExprNode::evaluate): List -> ScopeChain.
  • kjs/object.cpp: List -> ScopeChain.
  • kjs/object.h: List -> ScopeChain.
  • kjs/types.h: Remove needsMarking features from List.
  • kjs/types.cpp: Ditto.

WebCore:

  • khtml/ecma/kjs_dom.cpp: (DOMNode::eventHandlerScope): List -> ScopeChain.
  • khtml/ecma/kjs_dom.h: List -> ScopeChain.
  • khtml/ecma/kjs_events.cpp: (JSEventListener::handleEvent): List -> ScopeChain.
  • khtml/ecma/kjs_html.cpp: (KJS::HTMLElement::eventHandlerScope): List -> ScopeChain.
  • khtml/ecma/kjs_html.h: List -> ScopeChain.
  • force-js-clean-timestamp: Not sure this is required, but better safe than sorry.
8:40 PM Changeset in webkit [2820] by cblu
  • 6 edits in trunk/WebKit

Removed workaround for: 3093170 - Handle clients receive data with length 0

as it's now fixed.

  • Downloads.subproj/WebDownloadHandler.m: (-[WebDownloadHandler receivedData:]): remove workaround
  • WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient handle:didReceiveData:]): added asserts
6:58 PM Changeset in webkit [2819] by rjw
  • 4 edits in trunk/WebKit

A different fix to 3078065 that doesn't depend on the appkit's idea of
fixed pitch font.

The fix is to adjust the width of all characters that have the same width
as the space character to match the adjustment of the space character.
This has the slight downside that non-monospace fonts that contain glyphs
with the same width as the space character will have an extra adjustment.
In practice this is not noticeable as the adjustment is always sub-pixel.
Nor of course does this cause any mislayout, as it's done at the lowest
level for both measurement and drawing.

Until we move kthml internals to floats this will be just fine.

  • WebCoreSupport.subproj/WebTextRenderer.h:
  • WebCoreSupport.subproj/WebTextRenderer.m: (widthForGlyph): (-[WebTextRenderer initWithFont:]): (-[WebTextRenderer _floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:fonts:glyphs:numGlyphs:letterSpacing:wordSpacing:]):

tAfterNavigationPolicy:request:]):

6:43 PM Changeset in webkit [2818] by mjs
  • 4 edits in trunk/WebCore
  • force-js-clean-timestamp: Touch so other people's builds work.
6:08 PM Changeset in webkit [2817] by mjs
  • 5 edits in trunk/JavaScriptCore
  • reduced the size of PropertyMap by storing sizes and such in the dynamically allocated part of the object to reduce the size of ObjectImp - .5% speed improvement on JS iBench.
  • kjs/property_map.cpp:
  • kjs/property_map.h:
5:57 PM Changeset in webkit [2816] by hyatt
  • 4 edits in trunk/WebCore

Nested <a>s are never allowed. Make sure to always pop the
<a> blocks.

  • khtml/html/htmlparser.cpp: (KHTMLParser::getElement):
5:32 PM Changeset in webkit [2815] by hyatt
  • 4 edits in trunk/WebCore

Stop table cells from repainting the whole table when they
get a repaint. Gives another big boost to link rollover
performance when links' containing blocks are table cells.

  • khtml/rendering/render_table.cpp: (RenderTableCell::repaint):
5:26 PM Changeset in webkit [2814] by hyatt
  • 4 edits in trunk/WebCore

Fix <font> so that behaves just like <i>, <b>, etc. Stop
the (incorrect) allowance of blocks inside <font> tags.
This fixes the mispositioning on avoyagetoarcturus.blogspot.com
and fixes the vertical gaps on www.ve3d.com.

  • khtml/html/dtd.cpp: (DOM::checkChild):
5:20 PM Changeset in webkit [2813] by mjs
  • 11 edits in trunk

Tools:

  • CommitLogEditor/Makefile.am: Pass symroots for this tree to pbxbuild.
  • HotSpotFinder/Makefile.am: Pass symroots for this tree to pbxbuild.

JavaScriptCore:

  • Makefile.am: Pass symroots for this tree to pbxbuild.

Tests:

  • ObjcUnit/Makefile.am: Pass symroots for this tree to pbxbuild.
  • TestPlugin/Makefile.am: Pass symroots for this tree to pbxbuild.
  • WebFoundation-CacheLoader/Makefile.am: Pass symroots for this tree to pbxbuild.

WebFoundation:

  • Makefile.am: Pass symroots for this tree to pbxbuild.

WebCore:

  • Makefile.am: Pass symroots for this tree to pbxbuild.

WebKit:

  • Makefile.am: Pass symroots for this tree to pbxbuild.

WebBrowser:

  • Makefile.am: Pass symroots for this tree to pbxbuild.
5:17 PM Changeset in webkit [2812] by hyatt
  • 6 edits in trunk/WebCore

Fixed for tables. Make the percentage height calculation
more robust. Also add a hack for replaced elements to
subtract out their margins when computing percentage widths.
This keeps them from spilling out of table cells.

  • khtml/rendering/render_box.cpp: (RenderBox::calcReplacedWidth): (RenderBox::calcReplacedHeight):
  • khtml/rendering/render_table.cpp: (RenderTable::layoutRows):
  • khtml/xml/dom_nodeimpl.h:
4:25 PM Changeset in webkit [2811]
  • 4 copies in tags/Alexander-33

This commit was manufactured by cvs2svn to create tag 'Alexander-33'.

4:25 PM Changeset in webkit [2810] by mjs
  • 3 edits in trunk/WebCore

Moved Alexander-33 marker.

4:22 PM Changeset in webkit [2809] by rjw
  • 4 edits in trunk/WebCore

Fixed from SK's copy/paste whitespace issue.
This fixes 3076236 and a regression due to additional whitespace
in the DOM.

  • kwq/WebCoreBridge.mm: (attributedString):
4:13 PM Changeset in webkit [2808] by cblu
  • 4 edits in trunk/WebKit

Fixed: 3009881 - plugins get mouse-overs even when mouse is in menus
Fixed: 3108240 - Loading datasource sometimes doesn't have cancelled error when cancelled

  • Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView sendNullEvent]): check if menus are showing (-[WebBaseNetscapePluginView restartNullEvents]): tweak
  • WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSource _stopLoading]): set cancelled error if main handle is gone
4:03 PM Changeset in webkit [2807] by sheridan
  • 8 edits in trunk

Alex-33 stamp

2:06 PM Changeset in webkit [2806] by hyatt
  • 4 edits in trunk/WebCore

Fix mac.com regression (and weather.com regression).

  • khtml/rendering/bidi.cpp: (RenderFlow::findNextLineBreak):
1:19 PM Changeset in webkit [2805] by rjw
  • 4 edits in trunk/WebCore

Fixed performance regression! Argh.

  • khtml/rendering/font.cpp: (Font::width):
9:36 AM Changeset in webkit [2804] by darin
  • 8 edits in trunk

JavaScriptCore:

  • kjs/property_map.cpp: More assertions.

WebCore:

  • force-js-clean-timestamp: Trigger a rebuild because of the size change in ValueImp.
9:06 AM Changeset in webkit [2803] by darin
  • 5 edits in trunk/WebCore
  • fixed 3107286 -- REGRESSION: unrepro assertion failure in KWQKHTMLPart.mm keyEvent
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::keyEvent): Handle case of nil document as well as case of nil focus node.
  • kwq/WebCoreBridge.mm: Tweak whitespace.
8:23 AM Changeset in webkit [2802] by darin
  • 4 edits in trunk/JavaScriptCore
  • kjs/property_map.cpp: Turn that consistency check back off.
8:22 AM Changeset in webkit [2801] by darin
  • 5 edits in trunk/JavaScriptCore
  • someone somewhere must be defining a macro named check, causing a compile failure in WebCore

Rename check() to checkConsistency().

  • kjs/property_map.h: Rename.
  • kjs/property_map.cpp: Yes, rename.
7:39 AM Changeset in webkit [2800] by darin
  • 12 edits in trunk/JavaScriptCore
  • add self-check to property map in hopes of finding the cnet.com bug
  • kjs/property_map.h: Add check() function.
  • kjs/property_map.cpp: Add the checking, controlled by DO_CONSISTENCY_CHECK.
  • fixed UChar interface so it's not so slow in debug builds
  • kjs/ustring.h: Nothing in UChar needs to be private.
  • kjs/function.cpp: (GlobalFuncImp::call):
  • kjs/function_object.cpp: (FunctionObjectImp::construct):
  • kjs/identifier.cpp:
  • kjs/lexer.cpp: (Lexer::setCode), (Lexer::shift):
  • kjs/lookup.cpp: (keysMatch):
  • kjs/ustring.cpp: (UString::Rep::computeHash), (KJS::compare): Use the "uc" field instead of the "unicode()" inline function.
7:11 AM Changeset in webkit [2799] by darin
  • 6 edits in trunk/JavaScriptCore
  • fixed a null-dereference I ran into while trying to reproduce bug 3107351
  • kjs/function.h: Change ActivationImp constructor to take context parameter.
  • kjs/function.cpp: (ActivationImp::ActivationImp): Take context parameter, not execution state parameter.
  • kjs/internal.cpp: (ContextImp::ContextImp): Initialize activation object from context, not execution state, because the new context is not yet in the execution state.

Nov 20, 2002:

11:42 PM Changeset in webkit [2798] by darin
  • 10 edits in trunk

WebFoundation:

  • English.lproj/StringsNotToBeLocalized.txt: Update.

WebCore:

  • fixed 3107383 -- clicking link on cnet.com leads to assertion failure

When we removed a frame, we were leaving behind an empty WebView. Yuck.

  • kwq/KWQScrollView.mm: (QScrollView::addChild): Use the new getOuterView. (QScrollView::removeChild): Ditto. This was the bug fix.
  • kwq/KWQWidget.h: Add getOuterView.
  • kwq/KWQWidget.mm: (QWidget::frameGeometry): Use the new getOuterView. (QWidget::setFrameGeometry): Ditto. (QWidget::getOuterView): Added. Does the WebCoreFrameView magic to find the WebView instead of the WebHTMLView. Yuck. (QWidget::paint): Use the new getOuterView.

WebKit:

  • Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]): Unescape the string before executing it, so we don't suffer from bug 3083043 here in the javascript: URLs that come from plug-ins.
  • English.lproj/StringsNotToBeLocalized.txt: Update.

WebBrowser:

  • Debug/DebugUtilities.m: (-[DebugUtilities createDebugMenu]): Fix typo. "Import" the favorites, don't "Imported" them.
  • English.lproj/StringsNotToBeLocalized.txt: Let the update script sort this file.
10:05 PM Changeset in webkit [2797] by cblu
  • 5 edits
    2 deletes in trunk/WebKit

Fixed: 3079134 - Throttle plug-ins while in background

  • Plugins.subproj/WebBaseNetscapePluginView.h:
  • Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView sendNullEvent]): new (-[WebBaseNetscapePluginView stopNullEvents]): stops timer (-[WebBaseNetscapePluginView restartNullEvents]): stops timer if there is one, and starts a new one based on window activation state (-[WebBaseNetscapePluginView start]): call restartNullEvents (-[WebBaseNetscapePluginView stop]): call stopNullEvents (-[WebBaseNetscapePluginView windowBecameKey:]): call restartNullEvents (-[WebBaseNetscapePluginView windowResignedKey:]): call restartNullEvents (-[WebBaseNetscapePluginView windowDidMiniaturize:]): call stopNullEvents (-[WebBaseNetscapePluginView windowDidDeminiaturize:]): call restartNullEvents
  • Plugins.subproj/WebNetscapePluginNullEventSender.h: Removed. No need for another class, use a timer.
  • Plugins.subproj/WebNetscapePluginNullEventSender.m: Removed. No need for another class, use a timer.
  • WebKit.pbproj/project.pbxproj:
6:20 PM Changeset in webkit [2796] by rjw
  • 4 edits in trunk

Fixed 3107007. Letter-spacing is causing width to be miscalculated.
This also fixed some selection problems.

  • khtml/rendering/font.cpp: (Font::width):

Fixed 3107007. Letter-spacing is causing width to be miscalculated.
This also fixed some selection problems.

  • WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer _floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:fonts:glyphs:numGlyphs:letterSpacing:wordSpacing:]):
5:35 PM Changeset in webkit [2795] by rjw
  • 1 edit in trunk/WebKit/WebCoreSupport.subproj/WebTextRenderer.h

Oops, forgot to checkin header change.

5:28 PM Changeset in webkit [2794] by darin
  • 6 edits in trunk/JavaScriptCore
  • added a feature for Richard to use in his back/forward cache
  • kjs/object.h: Added save/restoreProperties.
  • kjs/property_map.h: Here too.
  • kjs/property_map.cpp: Here too.
5:21 PM Changeset in webkit [2793] by rjw
  • 3 edits in trunk/WebKit

Fixed mono spaced fonts to always render with mono spacing! (3078065)

  • WebCoreSupport.subproj/WebTextRenderer.h:
  • WebCoreSupport.subproj/WebTextRenderer.m: (widthForGlyph): (-[WebTextRenderer initWithFont:]):
4:55 PM Changeset in webkit [2792] by darin
  • 8 edits in trunk/JavaScriptCore
  • created argument list objects only on demand for a 7.5% speedup
  • kjs/function.h: Change ActivationImp around.
  • kjs/function.cpp: (FunctionImp::call): Pass a pointer to the arguments list to avoid ref/unref. (FunctionImp::get): Get the function pointer from the context directly, not the activation object. (ArgumentsImp::ArgumentsImp): Add an overload that takes no arguments. (ActivationImp::ActivationImp): Store a context pointer and an arguments object pointer. (ActivationImp::get): Special case for arguments, create it and return it. (ActivationImp::put): Special case for arguments, can't be set. (ActivationImp::hasProperty): Special case for arguments, return true. (ActivationImp::deleteProperty): Special case for arguments, refuse to delete. (ActivationImp::mark): Mark the arguments object. (ActivationImp::createArgumentsObject): Do the work of actually creating it. (GlobalFuncImp::call): Use stack-based objects for the ContextImp and ExecState.
  • kjs/internal.h: Keep function and arguments pointer in the context.
  • kjs/internal.cpp: (ContextImp::ContextImp): Don't pass in the func and args when making an ActivationImp. (InterpreterImp::evaluate): Use stack-based objects here.
  • kjs/types.h: Add ArgumentList as a synonym for List, soon to be separate.
4:21 PM Changeset in webkit [2791] by mjs
  • 5 edits in trunk/JavaScriptCore

Reduced the size of ValueImp by 8 bytes for a .5% speedup.

  • kjs/value.h: Removed destructed flag. Made refcount and flag 16 bits each.
  • kjs/value.cpp: (ValueImp::~ValueImp): Don't set destructed flag.
3:55 PM Changeset in webkit [2790] by cblu
  • 3 edits in trunk/WebKit

Fixed: 3074926 - crash in BitsToPix() trying to print cnet page

  • Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView drawRect:]): disable experimental plug-in printing code.
2:59 PM Changeset in webkit [2789] by darin
  • 4 edits in trunk/JavaScriptCore
  • kjs/types.cpp: Keep ref count for the whole lists of nodes. Doesn't speed things up much, less than 1%.
2:26 PM Changeset in webkit [2788] by mjs
  • 4 edits in trunk/JavaScriptCore
  • kjs/collector.cpp: (Collector::allocate): Clear the flags on newly allocated objects.
2:11 PM Changeset in webkit [2787] by cblu
  • 4 edits in trunk/WebKit

Minor clean-up, logging and more error checking in plug-in code.

  • Plugins.subproj/WebBaseNetscapePluginStream.m: (-[WebBaseNetscapePluginStream setResponse:]): (-[WebBaseNetscapePluginStream receivedData:]): (-[WebBaseNetscapePluginStream finishedLoadingWithData:]):
  • Plugins.subproj/npapi.m: (NPN_UserAgent): (NPN_MemFree): (NPN_MemFlush): (NPN_ReloadPlugins):
1:49 PM Changeset in webkit [2786] by darin
  • 6 edits in trunk/JavaScriptCore
  • oops, checked in big regression instead of 5% speedup
  • kjs/function.cpp: (ActivationImp::ActivationImp): Make a marking list, not a refing list.
  • a cut at the sparse array implementation
  • kjs/array_instance.h: Keep storageLength separate from length.
  • kjs/array_object.cpp: (ArrayInstanceImp::ArrayInstanceImp): Start with storageLength == length. (ArrayInstanceImp::get): Check against storage length. (ArrayInstanceImp::put): Ditto. (ArrayInstanceImp::hasProperty): Ditto. (ArrayInstanceImp::deleteProperty): Ditto. (ArrayInstanceImp::setLength): Only enlarge storage length up to a cutoff. (ArrayInstanceImp::mark): Use storageLength. (ArrayInstanceImp::pushUndefinedObjectsToEnd): Added FIXME.
1:34 PM Changeset in webkit [2785] by darin
  • 4 edits in trunk/WebCore
  • force-js-clean-timestamp: Again.
1:25 PM Changeset in webkit [2784] by hyatt
  • 4 edits in trunk/WebCore

Fix the mac.com line-breaking bug. This was not a regression
but was present in Konq.

  • khtml/rendering/bidi.cpp: (RenderFlow::findNextLineBreak):
1:12 PM Changeset in webkit [2783] by darin
  • 31 edits
    1 add in trunk/JavaScriptCore
  • decrease ref/deref -- 5% speedup in iBench
  • JavaScriptCore.pbproj/project.pbxproj: Added array_instance.h
  • kjs/array_instance.h: Added so it can be shared by function.h.
  • kjs/array_object.cpp:
  • kjs/array_object.h:
  • kjs/bool_object.cpp:
  • kjs/bool_object.h:
  • kjs/collector.cpp:
  • kjs/date_object.cpp:
  • kjs/date_object.h:
  • kjs/error_object.cpp:
  • kjs/function.cpp:
  • kjs/function.h:
  • kjs/function_object.cpp:
  • kjs/internal.cpp:
  • kjs/internal.h:
  • kjs/math_object.cpp:
  • kjs/nodes.cpp:
  • kjs/number_object.cpp:
  • kjs/object.cpp:
  • kjs/object.h:
  • kjs/object_object.cpp:
  • kjs/property_map.cpp:
  • kjs/reference.cpp:
  • kjs/reference.h:
  • kjs/regexp_object.cpp:
  • kjs/string_object.cpp:
  • kjs/string_object.h:
  • kjs/value.cpp:
  • kjs/value.h: Switched lots of interfaces so they don't require ref/deref.
11:20 AM Changeset in webkit [2782] by cblu
  • 3 edits in trunk/WebKit

Fixed: 3061174 - javascript: URLs sent by plugins don't work

  • Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]):
8:54 AM Changeset in webkit [2781] by mjs
  • 5 edits in trunk/JavaScriptCore

Fixed the two most obvious problems with the new GC for another 6%
improvement.

  • kjs/collector.cpp: (Collector::allocate): Don't bother doing the bit tests on a bitmap word if all it's bits are on. (Collector::collect): Track memoryFull boolean.
  • kjs/collector.h: Inlined outOfMemory since it was showing up on profiles.
2:07 AM Changeset in webkit [2780] by darin
  • 3 edits in trunk/WebKit

WebFoundation:

  • English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.

WebKit:

  • English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.

WebBrowser:

  • English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
  • Test/PageLoadTestController.m: (-[PageLoadTestController browserWindowClosed]): Explain the world leak check a bit more.
1:34 AM Changeset in webkit [2779] by mjs
  • 11 edits in trunk

JavaScriptCore:

Rewrote garbage collector to make blocks of actual memory instead
of blocks of pointers. 7% improvement on JavaScript
iBench. There's still lots of room to tune the new GC, this is
just my first cut.

  • kjs/collector.cpp: (Collector::allocate): (Collector::collect): (Collector::size): (Collector::outOfMemory): (Collector::finalCheck): (Collector::numGCNotAllowedObjects): (Collector::numReferencedObjects): (Collector::liveObjectClasses):
  • kjs/collector.h:
  • kjs/function.cpp: (ActivationImp::ActivationImp):
  • kjs/function.h:

WebCore:

  • force-js-clean-timestamp: Work around PB lameness yet again.
1:11 AM Changeset in webkit [2778] by darin
  • 9 edits in trunk/JavaScriptCore
  • on the road to killing ActivationImp
  • kjs/function.h: Add get/put to FunctionImp. Remove argumentsObject() from ActivationImp. Add function() to ActivationImp.
  • kjs/function.cpp: (FunctionImp::FunctionImp): No arguments property. (FunctionImp::call): No need to set up the arguments property. (FunctionImp::parameterString): Remove strangeness. (FunctionImp::processParameters): Ditto. (FunctionImp::get): Added, handles arguments and length properties. (FunctionImp::put): Ditto. (FunctionImp::hasProperty): Ditto. (FunctionImp::deleteProperty): Ditto. (ActivationImp::ActivationImp): Store a function pointer so we can find it in the context.
  • kjs/function_object.cpp: (FunctionObjectImp::construct): No need to set up arguments property.
  • kjs/nodes.cpp: (FuncExprNode::evaluate): No need to set up length property.
  • kjs/internal.h: Return ObjectImp * for activation object.
  • kjs/interpreter.h: Remove stray declaration of ExecStateImp.
12:53 AM Changeset in webkit [2777] by darin
  • 7 edits in trunk/JavaScriptCore
  • add a couple of list operations to avoid clearing lists so much during sorting; gives 1.5% iBench
  • kjs/types.h: Added replaceFirst/replaceLast.
  • kjs/types.cpp: (List::replaceFirst), (List::replaceLast): Added.
  • kjs/array_object.cpp: (compareWithCompareFunctionForQSort): Use replaceFirst/replaceLast.
  • kjs/property_map.cpp: Put in an ifdef so I can re-add/remove the single entry to see if it has outlived its usefulness. (It hasn't yet.)
12:15 AM Changeset in webkit [2776] by darin
  • 7 edits in trunk/JavaScriptCore
  • atomic identifiers; gives another 6.5% in the iBench suite
  • kjs/identifier.h: Did the real thing.
  • kjs/identifier.cpp: Ditto.
  • kjs/property_map.h: _tableSizeHashMask -> _tableSizeMask
  • kjs/property_map.cpp: The above, plus take advantage of comparing by pointer instead of by comparing bytes.

Nov 19, 2002:

11:11 PM Changeset in webkit [2775] by darin
  • 4 edits in trunk/WebCore
  • force-js-clean-timestamp: Make other people's builds work.
7:07 PM Changeset in webkit [2774] by hyatt
  • 4 edits in trunk/WebCore

I screwed up the line breaking for inline replaced elements.

  • khtml/rendering/render_flow.cpp: (RenderFlow::calcInlineMinMaxWidth):
6:52 PM Changeset in webkit [2773] by cblu
  • 3 edits in trunk/WebKit

Fixed: 3106061 - REGRESSION: Copy in text view copies all text not just selection

  • Misc.subproj/WebSearchableTextView.m: (-[WebSearchableTextView copy:]):
6:35 PM Changeset in webkit [2772] by darin
  • 17 edits in trunk/JavaScriptCore
  • a few more globals for often-used property names
  • conversion to Identifier from UString must now be explicit
  • kjs/error_object.cpp:
  • kjs/function.cpp:
  • kjs/function_object.cpp:
  • kjs/identifier.cpp:
  • kjs/identifier.h:
  • kjs/lexer.cpp:
  • kjs/nodes.cpp:
  • kjs/number_object.cpp:
  • kjs/object.cpp:
  • kjs/object.h:
  • kjs/string_object.cpp:
  • kjs/testkjs.cpp:
  • kjs/ustring.cpp:
  • kjs/ustring.h:
6:32 PM Changeset in webkit [2771] by darin
  • 5 edits in trunk/WebCore
  • another atomic identifier scrub pass; make the conversion to Identifier explicit
  • khtml/ecma/kjs_html.cpp: (KJS::HTMLCollection::tryCall): Add explicit Identifier() conversion. (KJS::HTMLCollectionProtoFunc::tryCall): Ditto.
  • khtml/ecma/kjs_window.cpp: (WindowFunc::tryCall): And again.
5:53 PM Changeset in webkit [2770] by hyatt
  • 7 edits in trunk/WebCore

Fix for 3049663. Table cells don't grow to accommodate block
overflow.

  • khtml/rendering/bidi.cpp: (RenderFlow::layoutInlineChildren):
  • khtml/rendering/render_flow.cpp: (RenderFlow::RenderFlow): (RenderFlow::layout): (RenderFlow::layoutBlockChildren):
  • khtml/rendering/render_flow.h:
  • khtml/rendering/render_object.h:
5:23 PM Changeset in webkit [2769] by darin
  • 8 edits in trunk/JavaScriptCore
  • another step towards atomic identifiers; storing hash in the string rep. gives about a 1.5% speedup in the JavaScript iBench
  • kjs/ustring.h: Add a hash field to UString::Rep.
  • kjs/ustring.cpp: (UString::Rep::create): Set hash to uninitialized value. (UString::Rep::destroy): Do the deleting in her, and call Identifier if needed. (UString::Rep::computeHash): Added. (UString::append): Set hash to 0 when modifying the string in place. (UString::operator=): Ditto.
  • kjs/property_map.cpp: Use the hash from UString.
  • kjs/identifier.h: Added aboutToDestroyUStringRep.
  • kjs/identifier.cpp: (Identifier::aboutToDestroyUStringRep): Added.
4:24 PM Changeset in webkit [2768] by cblu
  • 3 edits in trunk/WebKit

Fixed: 3092588 - redraw errors in QT controller if window is in background

We need to send update events after we activate/deactivate after all.

  • Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView windowBecameKey:]): (-[WebBaseNetscapePluginView windowResignedKey:]):
4:09 PM Changeset in webkit [2767] by cblu
  • 3 edits in trunk/WebKit

Fixed: 3020720 - dropping a folder in the page address makes the folder open in Finder, empties the field

  • Misc.subproj/WebNSPasteboardExtras.m: (-[NSPasteboard _web_bestURL]): Don't accept directories.
3:45 PM Changeset in webkit [2766] by darin
  • 22 edits in trunk

JavaScriptCore:

  • next step towards atomic identifiers; Identifier is no longer derived from UString
  • kjs/identifier.h: Remove base class and add _ustring member.
  • kjs/identifier.cpp: Add null and an == that works with const char *.
  • kjs/property_map.cpp: Get rep through _ustring.
  • kjs/function.cpp: (FunctionImp::parameterString): Call ustring().
  • kjs/function_object.cpp: (FunctionProtoFuncImp::call): Ditto.
  • kjs/nodes.cpp: (PropertyNode::evaluate): Ditto. (VarDeclNode::evaluate): Ditto. (ForInNode::execute): Ditto.
  • kjs/nodes2string.cpp: (SourceStream::operator<<): Add overload for Identifier.
  • kjs/reference.cpp: (Reference::getValue): Call ustring().
  • kjs/regexp_object.cpp: (RegExpObjectImp::get): Call ustring().

WebCore:

  • next step towards atomic identifiers; Identifier is no longer derived from UString
  • khtml/ecma/kjs_binding.cpp: (Identifier::string): Added. (Identifier::qstring): Added.
  • khtml/ecma/kjs_binding.h:
  • khtml/ecma/kjs_css.cpp: (jsNameToProp): (DOMCSSStyleDeclaration::tryPut): (DOMStyleSheet::tryPut): (DOMStyleSheetList::tryGet): (DOMMediaList::tryGet): (DOMCSSRuleList::tryGet): (DOMCSSValueList::tryGet):
  • khtml/ecma/kjs_dom.cpp: (DOMNodeList::hasProperty): (DOMNodeList::tryGet): (DOMNodeListFunc::DOMNodeListFunc): (DOMElement::tryGet): (DOMNamedNodeMap::hasProperty): (DOMNamedNodeMap::tryGet): (DOMNamedNodesCollection::tryGet):
  • khtml/ecma/kjs_html.cpp: (KJS::HTMLDocument::tryGet): (HTMLElementFunction::HTMLElementFunction): (KJS::HTMLElement::putValue): (KJS::HTMLCollection::hasProperty): (KJS::HTMLCollection::tryGet): (KJS::HTMLSelectCollection::tryPut): (OptionConstructorImp::OptionConstructorImp):
  • khtml/ecma/kjs_navigator.cpp: (Plugins::get): (MimeTypes::get): (Plugin::get):
  • khtml/ecma/kjs_window.cpp: (WindowFunc::tryCall): (FrameArray::get): Use lengthPropertyName instead of "length" for better speed.
3:00 PM Changeset in webkit [2765] by cblu
  • 3 edits in trunk/WebKit

Fixed: 3068112 - extra line breaks when copying from source window

  • Misc.subproj/WebSearchableTextView.m: (-[WebSearchableTextView copy:]): Convert CRLF to LF
2:49 PM Changeset in webkit [2764] by hyatt
  • 3 edits in trunk/WebKit

Make sure that if the scrollers are shown/hidden that we
force an immediate layout, since if we don't, an intervening
display can cause us to show scrollbars when they really
shouldn't be there.

  • WebView.subproj/WebDynamicScrollBarsView.m: (-[WebDynamicScrollBarsView updateScrollers]):
2:48 PM Changeset in webkit [2763] by hyatt
  • 4 edits in trunk/WebCore

Fix backgrounds not painting in deployment builds.

  • khtml/rendering/render_box.cpp: (RenderBox::paintBackground):
2:25 PM Changeset in webkit [2762] by darin
  • 4 edits in trunk/JavaScriptCore
  • fixed memory trasher
  • kjs/ustring.cpp: (UString::from): Fix "end of buffer" computation.
2:02 PM Changeset in webkit [2761]
  • 1 copy
    59 deletes in branches/unlabeled-1.5.56

This commit was manufactured by cvs2svn to create branch
'unlabeled-1.5.56'.

2:02 PM Changeset in webkit [2760] by darin
  • 61 edits
    2 adds in trunk

JavaScriptCore:

  • a first step towards atomic identifiers in JavaScript

Most places that work with identifiers now use Identifier
instead of UString.

  • kjs/identifier.cpp: Added.
  • kjs/identifier.h: Added.
  • JavaScriptCore.pbproj/project.pbxproj: Added files.
  • kjs/array_object.cpp:
  • kjs/array_object.h:
  • kjs/completion.cpp:
  • kjs/completion.h:
  • kjs/date_object.cpp:
  • kjs/date_object.h:
  • kjs/function.cpp:
  • kjs/function.h:
  • kjs/function_object.cpp:
  • kjs/grammar.cpp:
  • kjs/grammar.cpp.h:
  • kjs/grammar.h:
  • kjs/grammar.y:
  • kjs/internal.cpp:
  • kjs/internal.h:
  • kjs/lexer.cpp:
  • kjs/lookup.cpp:
  • kjs/lookup.h:
  • kjs/math_object.cpp:
  • kjs/math_object.h:
  • kjs/nodes.cpp:
  • kjs/nodes.h:
  • kjs/number_object.cpp:
  • kjs/number_object.h:
  • kjs/object.cpp:
  • kjs/object.h:
  • kjs/property_map.cpp:
  • kjs/property_map.h:
  • kjs/reference.cpp:
  • kjs/reference.h:
  • kjs/regexp_object.cpp:
  • kjs/regexp_object.h:
  • kjs/string_object.cpp:
  • kjs/string_object.h:

WebCore:

  • a first step towards atomic identifiers in JavaScript

Most places that work with identifiers now use Identifier
instead of UString.

  • khtml/ecma/kjs_binding.cpp:
  • khtml/ecma/kjs_binding.h:
  • khtml/ecma/kjs_css.cpp:
  • khtml/ecma/kjs_css.h:
  • khtml/ecma/kjs_dom.cpp:
  • khtml/ecma/kjs_dom.h:
  • khtml/ecma/kjs_events.cpp:
  • khtml/ecma/kjs_events.h:
  • khtml/ecma/kjs_html.cpp:
  • khtml/ecma/kjs_html.h:
  • khtml/ecma/kjs_navigator.cpp:
  • khtml/ecma/kjs_navigator.h:
  • khtml/ecma/kjs_range.cpp:
  • khtml/ecma/kjs_range.h:
  • khtml/ecma/kjs_traversal.cpp:
  • khtml/ecma/kjs_traversal.h:
  • khtml/ecma/kjs_views.cpp:
  • khtml/ecma/kjs_views.h:
  • khtml/ecma/kjs_window.cpp:
  • khtml/ecma/kjs_window.h:
11:49 AM Changeset in webkit [2759] by cblu
  • 3 edits in trunk/WebKit

Fixed: 3100597 - repro NSArray exception using contextual menu

  • Misc.subproj/WebNSPasteboardExtras.m: (-[NSPasteboard _web_writeURL:andTitle:withOwner:]): more error checking
10:59 AM Changeset in webkit [2758] by darin
  • 4 edits in trunk/JavaScriptCore
  • fix hash function and key comparison for the other kind of hash table; yields 3%
  • kjs/lookup.cpp: (keysMatch): Added. (Lookup::findEntry): Don't allocate and convert to ASCII just to search.
10:44 AM Changeset in webkit [2757] by darin
  • 7 edits in trunk/JavaScriptCore
  • another hash table fix; yields a 2% improvement on iBench JavaScript
  • kjs/property_map.cpp: A few more places where we use & instead of %.
  • some List changes that don't affect speed yet
  • kjs/types.cpp: (List::prependList): Tighten up a tiny bit. (List::copy): Use prependList.
  • kjs/types.h: Remove appendList and globalClear.
  • kjs/interpreter.cpp: (Interpreter::finalCheck): Remove List::globalClear().
10:07 AM Changeset in webkit [2756] by darin
  • 4 edits in trunk/JavaScriptCore
  • fixed 3105026 -- REGRESSION: DHTML menus are broken all over the place
  • kjs/types.cpp: (List::prepend): Fix backwards links in new node.
9:44 AM Changeset in webkit [2755] by trey
  • 3 edits in trunk/WebKit

WebKit:

Just a tweak to the description printout.

  • History.subproj/WebHistoryItem.m: (-[WebHistoryItem description]):

WebBrowser:

Implementation of the UI for auto-complete. The back end is simplistic at this
stage, as it just searches for http://www.WhatYouTyped.

  • ABHomePagesController.m: (-[ABHomePagesController refreshContents]): Added notes for a future fix.
  • BrowserWindowController.h: Added BrowserWindowWillResize notification.
  • BrowserWindowController.m: (-[BrowserWindowController windowDidLoad]): Create CompletionController. (-[BrowserWindowController windowWillResize:toSize:]): Post resize notification. (-[BrowserWindowController dealloc]): Free CompletionController. (-[BrowserWindowController controlTextDidChange:]): Forward to CompletionController. (-[BrowserWindowController controlTextDidEndEditing:]): Forward to CompletionController. (-[BrowserWindowController control:textView:doCommandBySelector:]): Forward to CompletionController.
  • CompletionController.h: Added.
  • CompletionController.m: Added. (-[CompletionController initWithSourceField:]): Hook up to a field to operate on. (-[CompletionController dealloc]): (-[CompletionController _executeQuery]): Get a result set. (-[CompletionController _matchingPrefixOfString:]): Determine piece of a result that matched. (-[CompletionController _buildUI]): Build completion window and table view. (placementViewForControl): Utility function. (-[CompletionController _positionWindow]): Position the window wrt location field. (-[CompletionController _showMatchesWindow]): Show it, (-[CompletionController _hideMatchesWindow]): hide it. (-[CompletionController _sourceWindowWillMoveOrResize:]): (-[CompletionController _sourceWindowWillMiniaturize:]): (-[CompletionController _sourceWindowWillClose:]):

Hide UI on various source window changes.

(-[CompletionController _abortCompletion:]): wrapper for performAfterDelay.
(-[CompletionController abortCompletion]): Bail out of completion operation.
(-[CompletionController completeString:]): Do a query, bring up the UI.
(-[CompletionController _reflectSelectedRow]): Update location field when a
completion is selected in the TableView
(-[CompletionController controlTextDidChange:]): Drive completion on new text.
(-[CompletionController control:textView:doCommandBySelector:]):
Drive completion on arrows, backspace, escape, return.
(-[CompletionController goToItemAtRow:]): Double click sends performClick to location field.
(-[CompletionController tableViewSelectionDidChange:]): Drive UI when row selected.
(-[CompletionController numberOfRowsInTableView:]): Supply tableView data.
(-[CompletionController tableView:objectValueForTableColumn:row:]): Supply tableView data.

  • TitleBarButton.m: (-[TitleBarButton hitTest:]): Bug fix to allow superview to process mouse events that we don't handle. Allows proper sending of WindowWillMove.
  • WebBrowser.pbproj/project.pbxproj: New class added.
12:10 AM Changeset in webkit [2754] by darin
  • 4 edits in trunk/JavaScriptCore
  • a fix that gives another 1.5% on the iBench JavaScript test
  • kjs/ustring.cpp: (UString::from): Stop using sprintf to format integers.

Nov 18, 2002:

11:57 PM Changeset in webkit [2753] by darin
  • 18 edits in trunk

JavaScriptCore:

  • reduced the creation of Value objects and hoisted the property map into Object for another gain of about 6%
  • JavaScriptCore.pbproj/project.pbxproj: Made property_map.h public.
  • kjs/array_object.cpp: (compareWithCompareFunctionForQSort): Don't wrap the ValueImp * in a Value just to add it to a list. (ArrayProtoFuncImp::call): Pass the globalObject directly so we don't have to ref/deref.
  • kjs/function.cpp: (FunctionImp::call): Use a reference for the global object to avoid ref/deref. (GlobalFuncImp::call): Ditto.
  • kjs/internal.cpp: (BooleanImp::toObject): Put the object directly into the list, don't create a Value. (StringImp::toObject): Ditto. (NumberImp::toObject): Ditto. (InterpreterImp::evaluate): Use a reference for the global object.
  • kjs/internal.h: Return a reference for the global object.
  • kjs/interpreter.cpp: (Interpreter::globalObject): Ditto.
  • kjs/interpreter.h: Ditto.
  • kjs/object.cpp: Use _prop directly in the object, not a separate pointer.
  • kjs/object.h: Ditto.
  • kjs/types.cpp: Added List methods that work directly with ValueImp. (List::append): Added a ValueImp version. (List::prepend): Ditto. (List::appendList): Work directly with the ValueImp's. (List::prependList): Ditto. (List::copy): Use appendList. (List::empty): Use a shared global List.
  • kjs/types.h: Update for above changes.

WebCore:

  • force-js-clean-timestamp: Another Object change.
11:44 PM Changeset in webkit [2752] by hyatt
  • 27 edits in trunk/WebCore

Implement phased painting to correct the paint order of blocks,
floats, and inlines.

  • khtml/rendering/render_body.cpp: (RenderBody::paintBoxDecorations):
  • khtml/rendering/render_body.h:
  • khtml/rendering/render_box.cpp: (RenderBox::paint): (RenderBox::paintBoxDecorations): (RenderBox::paintBackground):
  • khtml/rendering/render_box.h:
  • khtml/rendering/render_br.h:
  • khtml/rendering/render_flow.cpp: (RenderFlow::paint): (RenderFlow::paintObject): (RenderFlow::paintFloats): (RenderFlow::addChild):
  • khtml/rendering/render_flow.h:
  • khtml/rendering/render_html.cpp: (RenderHtml::setStyle): (RenderHtml::paint): (RenderHtml::paintBoxDecorations):
  • khtml/rendering/render_html.h:
  • khtml/rendering/render_image.cpp: (RenderImage::setStyle): (RenderImage::paintObject):
  • khtml/rendering/render_image.h:
  • khtml/rendering/render_layer.cpp: (RenderLayer::paint): (RenderLayer::nodeAtPoint):
  • khtml/rendering/render_list.cpp: (RenderListItem::paint): (RenderListItem::paintObject): (RenderListMarker::paint): (RenderListMarker::paintObject):
  • khtml/rendering/render_list.h:
  • khtml/rendering/render_object.cpp: (RenderObject::RenderObject): (RenderObject::paintBorder): (RenderObject::paintOutline): (RenderObject::paint): (RenderObject::dump): (RenderObject::setStyle):
  • khtml/rendering/render_object.h:
  • khtml/rendering/render_replaced.cpp: (RenderReplaced::paint): (RenderWidget::setStyle): (RenderWidget::paintObject):
  • khtml/rendering/render_replaced.h:
  • khtml/rendering/render_root.cpp: (RenderRoot::paint): (RenderRoot::paintObject):
  • khtml/rendering/render_root.h:
  • khtml/rendering/render_table.cpp: (RenderTable::paint): (RenderTableCell::RenderTableCell): (RenderTableCell::setStyle): (RenderTableCell::paint): (RenderTableCell::paintBoxDecorations):
  • khtml/rendering/render_table.h:
  • khtml/rendering/render_text.cpp: (TextSlave::paintSelection): (TextSlave::paintDecoration): (TextSlave::paintBoxDecorations): (RenderText::paintObject): (RenderText::paint): (RenderText::paintTextOutline):
  • khtml/rendering/render_text.h:
11:04 PM Changeset in webkit [2751] by darin
  • 5 edits in trunk/JavaScriptCore
  • kjs/property_map.cpp: Oops, copyright goes to Apple, not me.
  • kjs/property_map.h: Ditto.
10:59 PM Changeset in webkit [2750] by darin
  • 4 edits in trunk/WebCore
  • force-js-clean-timestamp: I changed the size of ObjectImp.
10:53 PM Changeset in webkit [2749] by darin
  • 10 edits in trunk/JavaScriptCore
  • property and string improvements giving a 7% or so improvement in JavaScript iBench
  • kjs/property_map.h: Rewrite to use a hash table.
  • kjs/property_map.cpp: Ditto.
  • kjs/string_object.h:
  • kjs/string_object.cpp: (StringInstanceImp::StringInstanceImp): Construct a string with the right value instead of putting the string in later. (StringInstanceImp::get): Get the length from the string, not a separate property. (StringInstanceImp::put): Ignore attempts to set length, since we don't put it in the property map. (StringInstanceImp::hasProperty): Return true for length. (StringInstanceImp::deleteProperty): Return false for length. (StringObjectImp::construct): Call new StringInstanceImp constructor. Don't try to set a length property.
  • kjs/ustring.h: Make the rep deref know how to deallocate the rep.
  • kjs/ustring.cpp: (UString::release): Move the real work to the rep's deref, since the hash table now uses the rep directly.
  • kjs/object.h: Remove unused field.
10:20 PM Changeset in webkit [2748] by mjs
  • 6 edits in trunk/JavaScriptCore

Change List to completely avoid going through the GC
allocator. 3.6% performance improvement on JavaScript iBench.

  • kjs/internal.cpp: (InterpreterImp::mark): Don't mark the empty list.

For all the methods below I basically lifted the ListImp version
up to the List method with minor tweaks.

  • kjs/types.cpp: (ListIterator::ListIterator): (List::List): (List::operator=): (List::~List): (List::mark): (List::append): (List::prepend): (List::appendList): (List::prependList): (List::removeFirst): (List::removeLast): (List::remove): (List::clear): (List::clearInternal): (List::copy): (List::begin): (List::end): (List::isEmpty): (List::size): (List::at): (List::operator[]): (List::empty): (List::erase): (List::refAll): (List::derefAll): (List::swap): (List::globalClear):
  • kjs/types.h:
9:07 PM Changeset in webkit [2747] by mjs
  • 4 edits in trunk/JavaScriptCore

Fixed a horrible leak introduced with my last change that
somehow did not show up on my machine.

  • kjs/types.cpp: (List::List): Mark ListImp as GC allowed.
7:05 PM Changeset in webkit [2746] by hyatt
  • 4 edits in trunk/WebCore

Fix crazyapplerumors.com. I had the logic backwards. CSS
padding beats cellpadding.

  • khtml/rendering/render_table.cpp: (RenderTableCell::paddingTop): (RenderTableCell::paddingBottom): (RenderTableCell::paddingLeft): (RenderTableCell::paddingRight):
6:33 PM Changeset in webkit [2745] by hyatt
  • 4 edits in trunk/WebCore

Fix crash on espn.com.

  • khtml/rendering/render_object.cpp: (RenderObject::setLayouted):
6:15 PM Changeset in webkit [2744] by mjs
  • 5 edits in trunk/JavaScriptCore

Another step towards the List conversion: stop inheriting from Value.

  • kjs/types.cpp: (ListIterator::ListIterator): (List::List): (List::operator=): (List::~List): (List::mark): (List::append): (List::prepend): (List::appendList): (List::prependList): (List::removeFirst): (List::removeLast): (List::remove): (List::clear): (List::copy): (List::begin): (List::end): (List::isEmpty): (List::size): (List::at): (List::operator[]):
  • kjs/types.h:
6:03 PM Changeset in webkit [2743] by hyatt
  • 4 edits in trunk/WebCore

Fix my <konqblock> regression on ign.com.

  • khtml/html/htmlparser.cpp: (KHTMLParser::insertNode):
5:30 PM Changeset in webkit [2742] by cblu
  • 9 edits in trunk/WebKit

Real fix for: 3104183 - Assert loading www.louisvuitton.com

Since we don't consider plug-in content as a subresource, attaching plug-in streams to the datasource has no affect on the loading state of the datasource. Both stopLoading on WebFrame and _stopLoading datasource, would not stop plug-ins streams after the data source was done loading. Because of this, I've decided to not keep a list of plug-in streams attached to the data source and pulled my previous change. To fix this bug, WebBaseResourceHandleDelegate now retains the controller.

  • Plugins.subproj/WebNetscapePluginStream.m: (-[WebNetscapePluginStream start]): (-[WebNetscapePluginStream cancel]): (-[WebNetscapePluginStream handleDidFinishLoading:]): (-[WebNetscapePluginStream handle:didFailLoadingWithError:]):
  • WebView.subproj/WebBaseResourceHandleDelegate.h:
  • WebView.subproj/WebBaseResourceHandleDelegate.m: (-[WebBaseResourceHandleDelegate _releaseResources]): (-[WebBaseResourceHandleDelegate setDataSource:]): (-[WebBaseResourceHandleDelegate handle:willSendRequest:]): (-[WebBaseResourceHandleDelegate handleDidFinishLoading:]): (-[WebBaseResourceHandleDelegate handle:didFailLoadingWithError:]): (-[WebBaseResourceHandleDelegate _cancelWithError:]):
  • WebView.subproj/WebDataSourcePrivate.h:
  • WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSourcePrivate dealloc]): (-[WebDataSource _stopLoading]): (-[WebDataSource _makeHandleDelegates:deferCallbacks:]): (-[WebDataSource _defersCallbacksChanged]):
5:01 PM Changeset in webkit [2741] by mjs
  • 13 edits in trunk

JavaScriptCore:

Partway to removing Value from List. Created a marking List
variant, used it in place of ListImp.

  • kjs/internal.h: Removed List stuff.
  • kjs/internal.cpp: (InterpreterImp::mark): Call appropriate List method to do marking of empty ListImp.
  • kjs/object.h:
  • kjs/object.cpp: Use marking List instead of ListImp *.
  • kjs/types.h:
  • kjs/types.cpp: (List::List): New boolean needsMarking parameter. (List::operator=): Perform trickery related to needsMarking. (List::~List): Likewise. (List::mark): Mark the ListImp. (List::markEmptyList): (ListImp::*): Moved here fron internal.cpp, they will be integrated into the relevant List methods soon.

WebCore:

  • force-js-clean-timestamp: Rebuild for JSC changes.
3:43 PM Changeset in webkit [2740] by darin
  • 9 edits in trunk/JavaScriptCore
  • another string constant discovered that can be optimized
  • kjs/object.h: Add a property name constant for "proto".
  • kjs/object.cpp: Define it. (ObjectImp::get): Use it. (ObjectImp::hasProperty): Use it.
  • prepare to turn PropertyMap into a hash table
  • kjs/object.cpp: (ObjectImp::mark): Use the new PropertyMap::mark(). (ObjectImp::put): Use the new overload of PropertyMap::get(). (ObjectImp::deleteProperty): Use the new overload of PropertyMap::get(). (ObjectImp::propList): Use PropertyMap::addEnumerablesToReferenceList().
  • kjs/property_map.h: Remove PropertyMapNode and make all node-related methods private. Add mark(), a new overload of get() that returns attributes, a clear() that takes no attributes, and addEnumerablesToReferenceList().
  • kjs/property_map.cpp: (PropertyMap::get): Added new overload. (PropertyMap::clear): Added new overload. (PropertyMap::mark): Added. (PropertyMap::addEnumerablesToReferenceList): Added.
  • kjs/ustring.h: Added a hash function.
  • kjs/ustring.cpp: (KJS::hash): Added.
3:23 PM Changeset in webkit [2739] by darin
  • 4 edits in trunk/WebCore
  • force-js-clean-timestamp: Touch files to make the build work.
2:49 PM Changeset in webkit [2738] by darin
  • 7 edits in trunk/JavaScriptCore
  • simplified the ExecState class, which was showing up in profiles

Sped up JavaScript iBench by 6%.

  • kjs/interpreter.h: Removed the level of indirection, and made it all inline.
  • kjs/interpreter.cpp: Removed ExecState implementation from here altogether.
  • fixed an oversight in my sort speedup
  • kjs/array_object.h: Add pushUndefinedObjectsToEnd.
  • kjs/array_object.cpp: (ArrayInstanceImp::sort): Call pushUndefinedObjectsToEnd. (ArrayInstanceImp::pushUndefinedObjectsToEnd): Added. Pushes all undefined to the end of the array.
2:22 PM Changeset in webkit [2737] by cblu
  • 5 edits in trunk/WebKit

Fixed: 3104183 - Assert loading www.louisvuitton.com

We need to treat plug-in streams like subresources except they don't change the loading state of the data source.

  • Plugins.subproj/WebNetscapePluginStream.m: (-[WebNetscapePluginStream start]): call _addPluginStream (-[WebNetscapePluginStream cancel]): call _removePluginStream (-[WebNetscapePluginStream handleDidFinishLoading:]): call _removePluginStream (-[WebNetscapePluginStream handle:didFailLoadingWithError:]): call _removePluginStream
  • WebView.subproj/WebDataSourcePrivate.h:
  • WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSourcePrivate dealloc]): release pluginStreams (-[WebDataSource _addPluginStream:]): just like addSubresourceClient except don't change the loading state. (-[WebDataSource _removePluginStream:]): just like removeSubresourceClient except don't change the loading state. (-[WebDataSource _stopLoading]): stop plug-ins streams (-[WebDataSource _makeHandleDelegates:deferCallbacks:]): (-[WebDataSource _defersCallbacksChanged]): call _makeHandleDelegates:deferCallbacks: for subresources and plug-in streams.
1:55 PM Changeset in webkit [2736] by darin
  • 11 edits in trunk/JavaScriptCore
  • fix worst speed problems on the sort page of the iBench JavaScript test

Sped up JavaScript iBench by 70%, the sort page by 88%.

  • kjs/array_object.h: Add array-specific sort functions.
  • kjs/array_object.cpp: (compareByStringForQSort): Added. (ArrayInstanceImp::sort): Added. (compareWithCompareFunctionForQSort): Added. (ArrayProtoFuncImp::call): Use ArrayInstanceImp::sort if the object being sorted is actually an array.
  • kjs/object.h: Add argumentsPropertyName.
  • kjs/object.cpp: Add argumentsPropertyName.
  • kjs/function.cpp: (FunctionImp::FunctionImp): Use argumentsPropertyName to avoid making a UString. (FunctionImp::call): Ditto. (ActivationImp::ActivationImp): Ditto.
  • kjs/function_object.cpp: (FunctionObjectImp::construct): Ditto.
  • kjs/ustring.h: Added compare function for -1/0/+1 comparison.
  • kjs/ustring.cpp: (KJS::compare): Added.
1:45 PM Changeset in webkit [2735] by mjs
  • 6 edits in trunk/JavaScriptCore

Change ArgumentListNode operations to be iterative instead of
recursive. This probably fixes 3095446 (Crash in
KJS::ArgumentListNode::ref()) but I can't reproduce it myself so
I'm not 100% sure. I think the original bug was a stack overflow
and this change would remove that possibility.

  • kjs/nodes.cpp: (ArgumentListNode::ref): Make iterative. (ArgumentListNode::deref): Make iterative. (ArgumentListNode::evaluateList): Make iterative.
12:30 PM Changeset in webkit [2734] by rjw
  • 4 edits in trunk/WebCore

Fixed 3103004. REGRESSION: word-spacing/letter-spacing applied when they shouldn't be
This was actually NOT a regression. khtml wasn't recognizing the 'normal' value for the
word and letter spacing properties. So it incorrectly substituted a -1 spacing.

  • khtml/css/cssstyleselector.cpp:
12:14 PM Changeset in webkit [2733] by hyatt
  • 5 edits in trunk/WebCore

Fix render_body's repaint method.

  • khtml/rendering/render_body.cpp: (RenderBody::repaint):
  • khtml/rendering/render_body.h:
11:52 AM Changeset in webkit [2732] by rjw
  • 3 edits in trunk/WebKit

Check for usesBackForwardList was excluding all load types.

  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _transitionToCommitted]):
11:31 AM Changeset in webkit [2731] by cblu
  • 3 edits in trunk/WebKit

Fixed: 3098767 - REGRESSION: standalone quicktime content just shows blank window

Check the instance not the class for the class type.

  • Plugins.subproj/WebNetscapePluginRepresentation.m: (-[WebNetscapePluginRepresentation receivedData:withDataSource:]):
7:52 AM Changeset in webkit [2730] by kocienda
  • 7 edits
    2 adds in trunk/WebKit

WebKit:

Added feature to import bookmarks/favorites from MSIE. This
fixes Radar 2961230 (import Mac IE bookmarks).

  • Bookmarks.subproj/WebBookmarkImporter.h: Added.
  • Bookmarks.subproj/WebBookmarkImporter.m: Added. (_breakStringIntoLines): (_HREFRangeFromSpec): (_HREFTextFromSpec): (_linkTextRangeFromSpec): (_linkTextFromSpec): (-[WebBookmarkImporter initWithPath:group:]): (-[WebBookmarkImporter topBookmark]): (-[WebBookmarkImporter error]): (-[WebBookmarkImporter dealloc]):
  • Bookmarks.subproj/WebBookmarkList.m: (-[WebBookmarkList init]): Create the bookmark list object. This was not created with the -init initializer, causing bookmark lists to fail.
  • English.lproj/Localizable.strings:
  • English.lproj/StringsNotToBeLocalized.txt:
  • WebKit.exp:
  • WebKit.pbproj/project.pbxproj:

WebBrowser:

Added calls in Debug menu to import IE Favorites.
No doubt that this code will move somewhere else once
we figure out the interaction design for importing
bookmarks.

  • Debug/DebugUtilities.m: (-[DebugUtilities createDebugMenu]): (-[BrowserDocument importInteretExplorerBookmarks:]):
5:41 AM Changeset in webkit [2729] by mjs
  • 4 edits in trunk/WebCore
  • fixed 3103711 - Alexander does not complete JavaScript iBench
  • khtml/ecma/kjs_html.cpp: (KJS::HTMLDocument::putValue): Resolve URL for location property relative to the base URL of the frame where the JavaScript is executing, not the target frame.
1:11 AM Changeset in webkit [2728] by hyatt
  • 5 edits in trunk/WebCore

Yay! Found the main cause of :hover feedback being so
slow on links. The diff function for styles was
considering a color change as a containing block layout
instead of just a repaint. With this fix, we will no
longer lay out when you hover over a link whose color
is different (remember that laying out causes the whole
page to repaint).

There's still some work to do to optimize this further,
since we do repaint the containing block still, but this
should be good enough for beta.

  • khtml/rendering/render_style.cpp: (RenderStyle::diff):

Nov 17, 2002:

11:55 PM Changeset in webkit [2727] by hyatt
  • 6 edits in trunk/WebCore

Don't use the immediate painting code for now. Revert
to non-immediate code. Using the non-immediate path I
have managed to fix all the regressions except for
mrskin losing updates in its marquee (this works only with
immediate painting) and the general scrollbar regression
(which I just don't understand).

  • khtml/html/html_documentimpl.cpp: (HTMLDocumentImpl::close):
  • khtml/rendering/render_object.cpp: (RenderObject::setLayouted):
  • khtml/rendering/render_root.cpp: (RenderRoot::repaintRectangle): (RenderRoot::repaint):
10:47 PM Changeset in webkit [2726] by trey
  • 3 edits in trunk/WebKit

Code cleanup to make some internal methods return autoreleased objects.

  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _addBackForwardItemClippedAtTarget:]): (-[WebFrame _createItem]): (-[WebFrame _createItemTreeWithTargetFrame:clippedAtTarget:]): (-[WebFrame _transitionToCommitted]):
9:59 PM Changeset in webkit [2725] by trey
  • 8 edits in trunk/WebKit

Fixed 3102076 - REGRESSION: infinite recursion involving bridge end
Fixed 3100929 - REGRESSION: serverRedirectedForDataSource: not sent on server redirects
Fixed 3103381 - REGRESSION: Going back from anchor doesn't restore scroll position

  • WebView.subproj/WebBaseResourceHandleDelegate.m: (-[WebBaseResourceHandleDelegate handle:willSendRequest:]): Return the copy of the request that we make instead of the original.
  • WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient handle:willSendRequest:]): Call super after we make our mods to the request, so the copy that super makes for us includes those mods.
  • WebView.subproj/WebFramePrivate.h: Added new state, WebFrameStateCompleting.
  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _transitionToLayoutAcceptable]): Completing state is a NOP. (-[WebFrame _transitionToCommitted]): Completing state is a NOP. (-[WebFrame _isLoadComplete]): Go to Completing state before calling [bridge end]. Go to Completed state afterwards, only if no new loads started in the meantime. (-[WebFrame _loadItem:fromItem:withLoadType:]): When doing anchor nav to get to the item, save and restore scroll state, and set the current item. (-[WebFrame _continueFragmentScrollAfterNavigationPolicy:request:]): Reorder the steps so the right scroll state gets saved to the right place. Also, don't add a backForward item if we're doing a client redirect to an anchor.
8:59 PM Changeset in webkit [2724] by hyatt
  • 5 edits in trunk/WebCore

More refinements to immediate painting code. Still doesn't
fix the scrollbar problem though. :(

  • khtml/html/html_documentimpl.cpp: (HTMLDocumentImpl::close):
  • khtml/khtmlview.cpp: (KHTMLView::init): (KHTMLView::timerEvent):
8:01 PM Changeset in webkit [2723] by hyatt
  • 7 edits in trunk/WebCore

Make immediate repainting of the root element more robust.

  • khtml/html/html_documentimpl.cpp: (HTMLDocumentImpl::close):
  • khtml/khtmlview.cpp: (KHTMLView::unscheduleRepaint):
  • khtml/khtmlview.h:
  • khtml/rendering/render_root.cpp: (RenderRoot::repaint):
7:37 PM Changeset in webkit [2722] by hyatt
  • 3 edits in trunk/WebKit

Back out my previous fix. I have a better one that is
confined to WebCore.

  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _isLoadComplete]):
6:02 PM Changeset in webkit [2721] by hyatt
  • 3 edits in trunk/WebKit

The needsdisplay is necessary even for HTML documents.
I over-optimized here. Fixes the directory.apple.com
regression and the santa clara library regression.

  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _isLoadComplete]):
1:25 PM Changeset in webkit [2720] by darin
  • 23 edits in trunk

WebCore:

  • moved all NSURL and CFURL use out of WebCore
  • kwq/KWQKURL.h: Remove getNSURL() and getNSURLFromString().
  • kwq/KWQKURL.mm: Ditto.
  • kwq/KWQKCookieJar.mm: (KWQKCookieJar::cookie): Pass an NSString instead of an NSURL. (KWQKCookieJar::setCookie): Ditto.
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::openURL): Ditto. (KWQKHTMLPart::openURLRequest): Ditto. (KWQKHTMLPart::submitForm): Ditto. (KWQKHTMLPart::urlSelected): Ditto. (KWQKHTMLPart::createPart): Ditto. (KWQKHTMLPart::redirectionTimerStartedOrStopped): Ditto. (KWQKHTMLPart::userAgent): Ditto. (KWQKHTMLPart::requestedURLString): Receive an NSString instead of an NSURL.
  • kwq/KWQKHTMLPartBrowserExtension.mm: (KHTMLPartBrowserExtension::createNewWindow): Pass an NSString instead of an NSURL. (KHTMLPartBrowserExtension::setIconURL): Ditto. (KHTMLPartBrowserExtension::setTypedIconURL): Ditto.
  • kwq/KWQKJavaAppletWidget.h: Remove use of NSURL, just use QString instead.
  • kwq/KWQKJavaAppletWidget.mm: (KJavaAppletWidget::KJavaAppletWidget): No need to set the QString to nil. (KJavaAppletWidget::~KJavaAppletWidget): No need to release the QString. (KJavaAppletWidget::showApplet): Pass an NSString instead of an NSURL.
  • kwq/KWQLoader.mm: (KWQServeRequest): Pass an NSString instead of an NSURL. (KWQCheckCacheObjectStatus): Ditto.
  • kwq/WebCoreBridge.h: Change all methods to use NSString instead of NSURL.
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge openURL:reload:headers:]): Receive an NSString instead of an NSURL. (-[WebCoreBridge completeURLForDOMString:]): Return an NSString instead of an NSURL. (-[WebCoreBridge elementAtPoint:]): WebCoreElementLinkURL and WebCoreElementImageURL are now strings. (-[WebCoreBridge URL]): Return an NSString instead of an NSURL.
  • kwq/WebCoreCookieAdapter.h: Change all methods to use NSString instead of NSURL.
  • kwq/WebCoreCookieAdapter.m: (-[WebCoreCookieAdapter cookiesForURL:]): Ditto. (-[WebCoreCookieAdapter setCookies:forURL:policyBaseURL:]): Ditto.
  • khtml/rendering/render_applet.cpp: (RenderApplet::processArguments): Tweaked this file a tiny bit, mainly because header dependencies weren't working and we need this file to be recompiled due to inline function changes.

WebKit:

  • update for change to WebCore API so it never uses NSURL
  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge createWindowWithURL:frameName:]): Take NSString instead of NSURL. (-[WebBridge startLoadingResource:withURL:]): Ditto. (-[WebBridge objectLoadedFromCacheWithURL:response:size:]): Ditto. (-[WebBridge reportClientRedirectToURL:delay:fireDate:]): Ditto. (-[WebBridge setIconURL:]): Ditto. (-[WebBridge setIconURL:withType:]): Ditto. (-[WebBridge loadURL:reload:triggeringEvent:isFormSubmission:]): Ditto. (-[WebBridge postWithURL:data:contentType:triggeringEvent:]): Ditto. (-[WebBridge createChildFrameNamed:withURL:renderPart:allowsScrolling:marginWidth:marginHeight:]): Ditto. (-[WebBridge userAgentForURL:]): Ditto. (-[WebBridge requestedURL]): Return NSString instead of NSURL. (-[WebBridge viewForPluginWithURL:attributes:baseURL:MIMEType:]): Take NSString instead of NSURL. (-[WebBridge viewForJavaAppletWithFrame:attributes:baseURL:]): Take NSString instead of NSURL.
  • WebCoreSupport.subproj/WebCookieAdapter.m: (-[WebCookieAdapter cookiesForURL:]): Take NSString instead of NSURL. (-[WebCookieAdapter setCookies:forURL:policyBaseURL:]): Ditto.
  • WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSource _commitIfReady]): Pass NSString instead of NSURL.
  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _continueFragmentScrollAfterNavigationPolicy:request:]): Pass NSString instead of NSURL (-[WebFrame _loadURL:loadType:triggeringEvent:isFormSubmission:]): Turn bridge URL into NSURL so we can call _web_URLByRemovingFragment on it.
  • WebView.subproj/WebHTMLViewPrivate.m: (-[WebHTMLView _elementAtPoint:]): Convert NSString to NSURL when making the WebKit element dictionary.
12:39 PM Changeset in webkit [2719] by hyatt
  • 15 edits in trunk/WebCore

Add support for specifying whether repaint should be immediate or
not. Default to async for now to maintain current behavior.

For clipped object repainting (e.g., livepage.apple.com and mrskin)
switch to immediate repainting, since this makes the marquees
faster, stops dropping updates, and keeps the hover effects and
painting on the rest of the page fast (since the marquee rect doesn't
get unioned with links or images that you roll over).

  • khtml/rendering/render_box.cpp: (RenderBox::repaint): (RenderBox::repaintRectangle):
  • khtml/rendering/render_box.h:
  • khtml/rendering/render_html.cpp: (RenderHtml::repaint):
  • khtml/rendering/render_html.h:
  • khtml/rendering/render_object.cpp: (RenderObject::setLayouted): (RenderObject::repaintRectangle):
  • khtml/rendering/render_object.h:
  • khtml/rendering/render_root.cpp: (RenderRoot::repaintRectangle): (RenderRoot::repaint):
  • khtml/rendering/render_root.h:
  • khtml/rendering/render_table.cpp: (RenderTableRow::repaint): (RenderTableCell::repaintRectangle): (RenderTableCell::repaint):
  • khtml/rendering/render_table.h:
  • khtml/rendering/render_text.cpp: (RenderText::repaint):
  • khtml/rendering/render_text.h:
5:52 AM Changeset in webkit [2718] by mjs
  • 15 edits
    1 add in trunk

WebCore:

  • fixed 2949193 - implement onKeyDown, onKeyPress, and onKeyUp event handlers
  • khtml/html/html_formimpl.cpp: (HTMLGenericFormElementImpl::defaultEventHandler):
  • kwq/KWQEvent.h:
  • kwq/KWQEvent.mm: (QKeyEvent::QKeyEvent): Implemented. (QKeyEvent::key): Likewise. (QKeyEvent::state): Likewise. (QKeyEvent::accept): Likewise. (QKeyEvent::ignore): Likewise. (QKeyEvent::isAutoRepeat): Likewise. (QKeyEvent::text): Likewise. (QKeyEvent::ascii): Likewise. (QKeyEvent::count): Likewise. (QKeyEvent::isAccepted): Likewise.
  • kwq/KWQKHTMLPart.h:
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::keyEvent): Translate the event to a QEvent and send it through the DOM event mechanism.
  • kwq/WebCoreBridge.h:
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge interceptKeyEvent:toView:]): Pass event to the KWQ part.
  • kwq/WebCoreBridgePrivate.h: Added.
  • WebCore.pbproj/project.pbxproj: Added new file.

WebKit:

  • fixed 2949193 - implement onKeyDown, onKeyPress, and onKeyUp event handlers
  • WebView.subproj/WebHTMLViewPrivate.h:
  • WebView.subproj/WebHTMLViewPrivate.m: (+[WebHTMLView load]): Pose as NSWindow too now. (-[WebHTMLView _interceptKeyEvent:toView:]): Pass event to WebCore and see if WebCore wants to block it. (-[WebNSWindow sendEvent:]): For all key events that would go to a subview of a WebHTMLView, let the WebHTMLView take a first crack at it.
2:38 AM Changeset in webkit [2717] by hyatt
  • 4 edits in trunk/WebCore

Don't discard linefeeds after elements with no close tag
(e.g., <img> or <input>).

  • khtml/html/htmltokenizer.cpp: (HTMLTokenizer::parseTag):
1:58 AM Changeset in webkit [2716] by hyatt
  • 4 edits in trunk/WebCore

Fix for slashdot table mispositioning in the upper right.
Now that we fixed <td> to set to -konq-center when align="center"
is specified, the style rules are no longer necessary in
html4.css (and are in fact harmful).

  • khtml/css/html4.css:
1:24 AM Changeset in webkit [2715] by hyatt
  • 4 edits in trunk/WebCore

Fix for 3038168. Duh. Remember to be case-insensitive when
checking the type of the <style> attribute.

  • khtml/html/html_headimpl.cpp: (HTMLStyleElementImpl::parseAttribute):
1:04 AM Changeset in webkit [2714] by hyatt
  • 8 edits in trunk/WebCore

This is a fix for bug 3058470. The bug was that replaced elements
were computing their min and max widths wrong. Specifically they
were not adding in borders and padding! This means that any image
with a border around it would potentially break to another line
too early.

Once I fixed this for replaced elements I then went in and
fixed form controls. I added two APPLE_CHANGES features for
our form controls. First I overrode the border/padding functions
to always return 0 for all form controls, since no Aqua control
honors border/padding (nor should it). This fixes the menulist
at the top of wired.com.

Second I made sure that certain controls will ignore CSS-specified
heights and always use their intrinsic heights. These include
<select size=1> (combobox), single line text fields, and buttons.
I allow listboxes and textareas to honor height.

  • khtml/rendering/render_box.cpp: (RenderBox::contentWidth): (RenderBox::contentHeight): (RenderBox::calcWidth): (RenderBox::calcHeight):
  • khtml/rendering/render_form.h:
  • khtml/rendering/render_image.h:
  • khtml/rendering/render_object.h:
  • khtml/rendering/render_replaced.cpp: (RenderReplaced::calcMinMaxWidth):
Note: See TracTimeline for information about the timeline view.