⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



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):
Note: See TracTimeline for information about the timeline view.