Timeline



Aug 14, 2002:

9:32 PM Changeset in webkit [1823] by darin
  • 4 edits in trunk/JavaScriptCore

Another pass of tweaks, including one bug fix.

  • kjs/array_object.cpp: (ArrayInstanceImp::ArrayInstanceImp): Use malloc, not new. (ArrayInstanceImp::get): Use a local variable so we don't rely on the optimizer to avoid indexing twice. (ArrayInstanceImp::hasProperty): Use a local variable, and also check against UndefinedImp::staticUndefined rather than doing type() != UndefinedType.
8:19 PM Changeset in webkit [1822] by mjs
  • 4 edits in trunk/JavaScriptCore

Simplified array handling by using NULL to represent empty cells
instead of the Undefined object, so we can use calloc, realloc and
memset instead of loops. Inspired by a suggestion of Darin's.

  • kjs/array_object.cpp: (ArrayInstanceImp::ArrayInstanceImp): (ArrayInstanceImp::~ArrayInstanceImp): (ArrayInstanceImp::get): (ArrayInstanceImp::hasProperty): (ArrayInstanceImp::deleteProperty): (ArrayInstanceImp::setLength): (ArrayInstanceImp::mark):
5:59 PM Changeset in webkit [1821] by mjs
  • 5 edits in trunk/JavaScriptCore

Fix major JavaScript memory leak. run-plt says cvs-base improved
by 2% and cvs-js-performance improved by 7%. However, this was
within the possible noise level in each case.

The fix was to store ValueImp *'s in the array instead of Value
objects, since the Value wrapper will keep a ref and make the
object immortal.

  • kjs/array_object.cpp: (ArrayInstanceImp::ArrayInstanceImp): (ArrayInstanceImp::get): (ArrayInstanceImp::put): (ArrayInstanceImp::hasProperty): (ArrayInstanceImp::deleteProperty): (ArrayInstanceImp::setLength): (ArrayInstanceImp::mark):
  • kjs/array_object.h:
5:48 PM Changeset in webkit [1820] by cblu
  • 27 edits in trunk/WebKit

WebKit:

Support for showing favicons in bookmarks and history.

Renamed "image" to "icon" in all places.

Made history and bookmarks take and save an icon URL

  • Bookmarks.subproj/WebBookmark.h:
  • Bookmarks.subproj/WebBookmark.m: (-[WebBookmark icon]): (-[WebBookmark iconURL]): (-[WebBookmark setIconURL:]):
  • Bookmarks.subproj/WebBookmarkGroup.h:
  • Bookmarks.subproj/WebBookmarkGroup.m: (-[WebBookmarkGroup _setTopBookmark:]): (-[WebBookmarkGroup addNewBookmarkToBookmark:withTitle:iconURL:URLString:type:]): (-[WebBookmarkGroup insertNewBookmarkAtIndex:ofBookmark:withTitle:iconURL:URLString:type:]):
  • Bookmarks.subproj/WebBookmarkLeaf.h:
  • Bookmarks.subproj/WebBookmarkLeaf.m: (-[WebBookmarkLeaf initFromDictionaryRepresentation:withGroup:]): (-[WebBookmarkLeaf dictionaryRepresentation]): (-[WebBookmarkLeaf copyWithZone:]): (-[WebBookmarkLeaf icon]): (-[WebBookmarkLeaf iconURL]): (-[WebBookmarkLeaf setIconURL:]): (-[WebBookmarkLeaf setURLString:]):
  • Bookmarks.subproj/WebBookmarkList.h:
  • Bookmarks.subproj/WebBookmarkList.m: (-[WebBookmarkList initWithTitle:group:]): (-[WebBookmarkList dealloc]): (-[WebBookmarkList copyWithZone:]): (-[WebBookmarkList icon]):
  • Bookmarks.subproj/WebBookmarkSeparator.m: (-[WebBookmarkSeparator icon]):
  • History.subproj/WebHistory.h:
  • History.subproj/WebHistory.m: (-[WebHistory updateURL:title:displayTitle:iconURL:forURL:]):
  • History.subproj/WebHistoryItem.h:
  • History.subproj/WebHistoryItem.m: (-[WebHistoryItem init]): (-[WebHistoryItem initWithURL:title:]): (-[WebHistoryItem initWithURL:target:parent:title:]): (-[WebHistoryItem dealloc]): (-[WebHistoryItem iconURL]): (-[WebHistoryItem icon]): (-[WebHistoryItem setIconURL:]): (-[WebHistoryItem dictionaryRepresentation]): (-[WebHistoryItem initFromDictionaryRepresentation:]):
  • History.subproj/WebHistoryPrivate.h:
  • History.subproj/WebHistoryPrivate.m: (-[WebHistoryPrivate updateURL:title:displayTitle:iconURL:forURL:]):
  • Misc.subproj/WebIconLoader.h:
  • Misc.subproj/WebIconLoader.m: (+[WebIconLoader iconLoaderWithURL:]): (-[WebIconLoader initWithURL:]): (-[WebIconLoader URL]): (-[WebIconLoader _icons]): (-[WebIconLoader delegate]): (-[WebIconLoader iconFromCache]): (-[WebIconLoader startLoading]): (-[WebIconLoader WebResourceHandleDidFinishLoading:data:]):
  • WebCoreSupport.subproj/WebBridge.m:
  • WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSource _loadIcon]):
  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _transitionToCommitted]):
  • WebView.subproj/WebLocationChangeHandler.h:
  • WebView.subproj/WebLocationChangeHandler.m: (-[WebLocationChangeHandler receivedPageIcon:fromURL:forDataSource:]):

WebBrowser:

Support for showing favicons in bookmarks and history.

Renamed "image" to "icon" in all places.

Made history and bookmarks take and save an icon URL

  • BookmarksController.h:
  • BookmarksController.m: (-[BookmarksController imageForBookmark:]): (-[BookmarksController _newItemWithTitle:iconURL:URLString:type:positionIgnoresSelection:]): (-[BookmarksController _newFolder:]): (-[BookmarksController _newSeparator:]): (-[BookmarksController _newBookmark:]): (-[BookmarksController _blessOrCreateFavoritesRoot]): (-[BookmarksController _newBookmarkSheetDidEnd:returnCode:contextInfo:]): (-[BookmarksController displayNewBookmarksSheetForURLs:titles:iconURLs:inWindow:]):
  • BrowserDocument.h:
  • BrowserDocument.m: (-[BrowserDocument dealloc]): (-[BrowserDocument addBookmark:]): (-[BrowserDocument _setInstantRedirectPending:]): (-[BrowserDocument setIcon:]): (-[BrowserDocument iconURL]): (-[BrowserDocument setIconURL:]):
  • BrowserWindow.h:
  • BrowserWindowController.m: (-[BrowserWindowController windowIconURL]): (-[BrowserWindowController bookmarkIconURLForLocationField:]):
  • ContextMenuHandler.m: (-[ContextMenuHandler addLinkToBookmarks:]):
  • FavoriteButton.m: (-[FavoriteButton initWithBookmark:andFrame:]):
  • GlobalHistory.m: (-[GlobalHistory outlineView:willDisplayCell:forTableColumn:item:]): (-[GlobalHistory _addHistoryEntry:toMenu:]): (-[GlobalHistory addSelectedItemsToBookmarks:]):
  • LocationChangeHandler.m: (-[LocationChangeHandler receivedPageTitle:forDataSource:]): (-[LocationChangeHandler receivedPageIcon:fromURL:forDataSource:]):
  • LocationTextField.h:
  • LocationTextField.m: (-[LocationTextField mouseDown:]):
  • NewBookmarksController.h:
  • NewBookmarksController.m: (-[NewBookmarksController initWithURLs:titles:iconURLs:]):
  • TitleBarButton.m: (-[TitleBarButton startDragIfNecessaryForEvent:URL:]):
3:30 PM Changeset in webkit [1819] by hyatt
  • 4 edits in trunk/WebCore

ROFL. The KHTML table code had a hardcoded "20" being
subtracted out of table heights instead of using the
actual margins on the <body> element. This patch
removes the hardcoded "20" and replaces it with the
actual <body> margins.

  • khtml/rendering/render_table.cpp: (RenderTable::layoutRows):
2:59 PM Changeset in webkit [1818] by hyatt
  • 4 edits in trunk/WebCore

Fix marginwidth and marginheight on the <body> element.
These attributes were not applying the correct margins,
which would cause many many pages to mis-render!

  • khtml/html/html_baseimpl.cpp: (HTMLBodyElementImpl::parseAttribute):
2:45 PM Changeset in webkit [1817] by hyatt
  • 5 edits in trunk/WebCore

Ensure that a rendering object gets built for <fieldset>
elements. Content inside a <fieldset> was being discarded
and not rendered.

This fixes the top frame on blogger comment posting so that
it shows up properly.

  • khtml/html/html_formimpl.cpp: (HTMLFieldSetElementImpl::attach):
  • khtml/html/html_formimpl.h:
8:07 AM Changeset in webkit [1816] by darin
  • 19 edits in trunk/WebKit

Remove some unused things. Fix minor problems.

  • Plugins.subproj/WebPluginNullEventSender.m:
  • Plugins.subproj/WebPluginView.m:
  • WebCoreSupport.subproj/WebTextRenderer.m: Fixed places that were using the C++ bool instead of the Objective C BOOL.
  • WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSource _receivedData:]): Remove old code related to the dummy data source.
  • WebView.subproj/WebFrame.m: (-[WebFrame initWithName:webView:provisionalDataSource:controller:]): Remove _changeBridge, since we don't any more. Hoist the creation of the bridge up here.
  • WebView.subproj/WebFramePrivate.h: Remove _changeBridge.
  • WebView.subproj/WebFramePrivate.m: Remove _changeBridge.
  • WebView.subproj/WebHTMLRepresentation.h:
  • WebView.subproj/WebHTMLView.h:
  • WebView.subproj/WebImageRepresentation.h:
  • WebView.subproj/WebTextRepresentation.h:
  • WebView.subproj/WebTextView.h: Don't re-declare methods that are part of protocols we implement.
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView initWithFrame:]): Don't add the mouse moved observer until the view gets put into a window. (-[WebHTMLView addMouseMovedObserver]): Added. (-[WebHTMLView removeMouseMovedObserver]): Added. (-[WebHTMLView viewWillMoveToWindow:]): Remove observer if we were in the main window. (-[WebHTMLView viewDidMoveToWindow]): Add observer if we are now in the main window.
  • WebView.subproj/WebHTMLViewPrivate.h: Add _frame method. Remove unused controller and cursor instance variables.
  • WebView.subproj/WebHTMLViewPrivate.m: (-[WebHTMLView _frame]): Added. (-[WebHTMLView _bridge]): Call _frame.
  • WebView.subproj/WebTextRepresentation.m: Add now-needed import.
  • WebView.subproj/WebHTMLRepresentation.m: Tweak.
7:39 AM Changeset in webkit [1815] by darin
  • 2 edits in trunk/WebKit

Fix a log entry.

7:19 AM Changeset in webkit [1814] by darin
  • 6 edits in trunk/WebCore

Fix the build.

  • khtml/ecma/kjs_html.cpp: (KJS::HTMLDocument::putValue): Add braces and fix a syntax error.
  • kwq/mac-encodings.txt: Add comments. Make utf-16 be a synonym for utf-8 rather than having it actually try to treat things as 16-bit. We will have to revisit this, but for now it makes zingermans.com work again.
  • kwq/make-charset-table.pl: Allow comments.
2:02 AM Changeset in webkit [1813] by mjs
  • 4 edits in trunk/WebCore

Fixed a JavaScript object leak that was plaguing ign.com and
livepage.apple.com, among other things.

  • khtml/ecma/kjs_html.cpp: (KJS::HTMLDocument::putValue): Create a Value wrapper for a newly allocated DOMNode object that's not used past this function so it gets GC'd properly. (KJS::HTMLElement::putValue): Likewise.
1:23 AM Changeset in webkit [1812] by mjs
  • 4 edits in trunk/WebCore
  • khtml/ecma/kjs_window.cpp: Fix to build clean after JavaScriptCore live class changes (this way of handling it is kind of a hack, but kjs is unhappy to have Boolean defined so it can't unconditionally include CoreFoundation.h in collector.h; will fix better later).

Aug 13, 2002:

11:38 PM Changeset in webkit [1811] by mjs
  • 14 edits in trunk

JavaScriptCore:

Add the ability to determine the classes of live JavaScript
objects, to help with leak fixing.

  • kjs/collector.h, kjs/collector.cpp: (Collector::liveObjectClasses):

WebCore:

Add the ability to determine the classes of live JavaScript
objects, to help with leak fixing.

  • kwq/WebCoreJavaScript.h:
  • kwq/WebCoreJavaScript.mm: (+[WebCoreJavaScript liveObjectClasses]):

WebKit:

Add the ability to determine the classes of live JavaScript
objects, to help with leak fixing.

  • Misc.subproj/WebCoreStatistics.h:
  • Misc.subproj/WebCoreStatistics.m: (+[WebCoreStatistics javaScriptLiveObjectClasses]):

WebBrowser:

Add display of classes of live JavaScript objects to Caches
window, to help with leak fixing.

  • Debug/CacheController.h:
  • Debug/CacheController.m: (-[CacheController refreshJavaScriptStatisticsMatrix]):
  • Debug/CacheController.nib:
10:01 PM Changeset in webkit [1810] by hyatt
  • 6 edits in trunk/WebCore

An initial implementation of percentage height table cells.
This implementation will properly distribute space among
rows with percentage table cells, although there could be
issues with percentage height cells that span rows.

I have also fixed replaced elements so that they understand when they
are a percentage height and contained within a percentage height
cell that they can grow. This fixes the textarea on bloggers'
comment posting page so that it sizes properly.

There are many issues remaining with this implementation;
blocks need to be taught how to flex when they specify a percent
height. There is also some sort of rounding error with tables
that specify a height of 100% that I haven't yet figured out.
(This error was present before my changes, and it's still present
after my changes.)

Also, percentage height tables seem to "lock" to the largest size
they've ever been and don't properly relayout when they become
smaller. Again, this bug existed before my changes.

  • khtml/rendering/render_box.cpp: (RenderBox::calcReplacedHeight):
  • khtml/rendering/render_table.cpp: (RenderTable::RenderTable): (RenderTable::calcRowHeight): (RenderTable::layout): (RenderTable::layoutRows): (RenderTable::print): (RenderTableCell::RenderTableCell):
  • khtml/rendering/render_table.h:
4:49 PM Changeset in webkit [1809] by darin
  • 9 edits
    1 add
    1 delete in trunk/WebCore

Character set handling improvements. In total, this adds 92 new character encoding
names to the list we know how to handle (299, up from 207), so it probably makes
some pages work that didn't work before. It probably also adds character encoding
names that are never used in practice.

  • kwq/character-sets.txt: Took out all but one of our changes. We now handle aliases that are not in this file by adding them to mac-encodings.txt.
  • kwq/mac-encodings.txt: Added. Lists CFStringEncoding values and IANA names for them. We keep this file small by using the aliasing in character-sets.txt, and we also continue to get MIB numbers from character-sets.txt.
  • kwq/make-charset-table.pl: Rewrote to read from new format mac-encodings.txt file, and check for new kinds of errors.
  • kwq/.cvsignore: Don't ignore the make-mac-encodings files any more, since we don't compile that any more.
  • kwq/Makefile.am: Remove rules for compiling and running make-mac-encodings.
  • kwq/make-mac-encodings.c: Removed.
10:06 AM Changeset in webkit [1808] by darin
  • 5 edits in trunk/WebCore
  • fixed 3023439 -- support for windows-874 charset for thai
  • kwq/character-sets.txt: Added cp874 and windows-874.
  • kwq/make-charset-table.pl: Fix bug where it would right out a bad MIB enum for the many Macintosh character sets without associated MIB numbers.
9:45 AM Changeset in webkit [1807] by darin
  • 7 edits in trunk/WebCore

Some QRegion fixes inspired by Dave's clipping work.

  • kwq/qt/qregion.h: Add setClip, remove getNSBezierPath.
  • kwq/KWQRegion.mm: (NSMakePoint): Added. Helper function; could go in a header some day. (NSMakeRect): Added. Helper function; could go in a header some day. (MakeQRect): Added. Helper function; could go in a header some day. (QRegion::QRegion): Make a paths array instead of a single path. Also, change things so we actually copy the paths. The old code might translate a path that was shared by two QRegion objects. (QRegion::intersect): Merge the paths arrays of the two passed-in paths. (QRegion::contains): Return true only if all paths in the array contain the point. (QRegion::isNull): Return true if any of the paths in the array are empty. (QRegion::translate): Translate all the paths in the array. (QRegion::boundingRect): Return the intersection of the bounding rects of all the paths in the array. (QRegion::setClip): Call setClip on the first path, and addClip on the others.
  • kwq/KWQPainter.mm: (QPainter::setClipRegion): Use QRegion::setClip().
12:39 AM Changeset in webkit [1806] by mjs
  • 4 edits in trunk/JavaScriptCore

Small speed improvement. 3% faster on cvs-js-performance, no
measurable change on cvs-static-urls.

  • kjs/collector.cpp: (Collector::collect): Combine 3 loops over all objects into one, to reduce flat time and improve locality of reference.

Aug 12, 2002:

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

Reverting a change that I unintentionally checked in last
week. I wasn't yet ready to land it. It may work, but I
want to test it more first.

  • khtml/rendering/render_flow.cpp: (RenderFlow::layoutBlockChildren):
5:55 PM Changeset in webkit [1804] by hyatt
  • 7 edits in trunk/WebCore

Implement clipping. The one thing that still needs
to be done is that the intersect method in KWQRegion.mm
needs to be implemented. Even without that, this gets
the ticker on livepage.apple.com clipping properly.

  • kwq/KWQPainter.mm: (QPainter::xForm): (QPainter::save): (QPainter::restore): (QPainter::setClipRegion):
  • kwq/qt/qregion.h:
4:57 PM Changeset in webkit [1803] by hyatt
  • 8 edits in trunk/WebCore

Make the news ticker on livepage.apple.com scroll properly.
It still doesn't clip though. Fixing this involved correctly
dirtying the render tree when dynamic DOM changes occurred
(this was a bug in KHTML's DOM), as well as providing an
implementation of the MSIE offsetWidth extension that took
inlines into account (KHTML's impl was always returning a width
of 0 for inlines).

  • khtml/ecma/kjs_dom.cpp: (DOMNode::getValueProperty):
  • khtml/rendering/render_flow.cpp: (RenderFlow::offsetWidth): (RenderFlow::offsetHeight):
  • khtml/rendering/render_flow.h:
  • khtml/rendering/render_object.h:
  • khtml/xml/dom_nodeimpl.cpp: (NodeBaseImpl::insertBefore): (NodeBaseImpl::replaceChild): (NodeBaseImpl::appendChild):
3:27 PM Changeset in webkit [1802] by darin
  • 4 edits in trunk/WebCore
  • khtml/misc/loader.cpp: (Cache::insertInLRUList): Add missing piece of the last check-in.
3:15 PM Changeset in webkit [1801] by darin
  • 12 edits in trunk

WebCore:

At Ken's urging, fixed the loader cache to be more efficient.
Gives 1% on the cvs-base test.

  • force-clean-timestamp: This requires a full rebuild.
  • khtml/misc/loader.h:
  • khtml/misc/loader.cpp: (CachedObject::~CachedObject): No longer inline, which is fine since it was a virtual function anyway. Remove from the LRU list. (CachedObject::setRequest): Add to the LRU list if it qualifies now. (CachedObject::ref): Remove from the LRU list. (CachedObject::deref): Add to the LRU list if it qualifies now. (CachedCSSStyleSheet::ref): Call CachedObject::ref. (CachedCSSStyleSheet::deref): Call CachedObject::deref. (CachedScript::ref): Call CachedObject::ref. (CachedScript::deref): Call CachedObject::deref. (CachedImage::ref): Call CachedObject::ref. (CachedImage::deref): Call CachedObject::deref. (Cache::init): No "LRU list" to create. (Cache::clear): No "LRU list" to delete. (Cache::requestImage): Call moveToHeadOfLRUList. (Cache::requestStyleSheet): Call moveToHeadOfLRUList. (Cache::requestScript): Call moveToHeadOfLRUList. (Cache::flush): New algorithm. (Cache::removeCacheEntry): Call removeFromLRUList. (Cache::removeFromLRUList): Added. (Cache::moveToHeadOfLRUList): Added. (Cache::insertInLRUList): Added.
  • kwq/KWQLoaderImpl.mm: (KWQCheckIfReloading):
  • kwq/WebCoreBridge.h: Change dataSourceIsReloading to isReloading.

WebKit:

  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge isReloading]): Change dataSourceIsReloading to isReloading.
1:15 PM Changeset in webkit [1800] by hyatt
  • 6 edits in trunk/WebCore

Fix for the crash (assert) at mlb.com (3014322). recalcStyle was
re-entrant, causing the render tree to be reconstructed
while in the process of being destroyed.

Also patched object frame to only fire load/unload if
render objects exist (since the plugin cannot load without
the render object initializing it anyway).

  • khtml/html/html_objectimpl.cpp: (HTMLObjectElementImpl::attach): (HTMLObjectElementImpl::detach):
  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::DocumentImpl): (DocumentImpl::recalcStyle):
  • khtml/xml/dom_docimpl.h:
1:14 PM Changeset in webkit [1799] by darin
  • 33 edits in trunk

top level:

  • Tests/WebFoundation-Misc/ifnsurlextensions-test.m: (TestURLCommon): Add tests for the new WebNSURLExtras methods.
  • Tests/libiftest/IFCheckLeaks.c: (IFCheckLeaksAtExit): Remove workaround for CFPreferences race condition; it's now in WebFoundation.

JavaScriptCore:

Speed improvements. 19% faster on cvs-js-performance, 1% on cvs-static-urls.

Use global string objects for length and other common property names rather
than constantly making and destroying them. Use integer versions of get() and
other related calls rather than always making a string.

Also get rid of many unneeded constructors, destructors, copy constructors, and
assignment operators. And make some functions non-virtual.

  • kjs/internal.h:
  • kjs/internal.cpp: (NumberImp::toUInt32): Implement. (ReferenceImp::ReferenceImp): Special case for numeric property names. (ReferenceImp::getPropertyName): Moved guts here from ValueImp. Handle numeric case. (ReferenceImp::getValue): Moved guts here from ValueImp. Handle numeric case. (ReferenceImp::putValue): Moved guts here from ValueImp. Handle numeric case. (ReferenceImp::deleteValue): Added. Handle numeric case.
  • kjs/array_object.h:
  • kjs/array_object.cpp: All-new array implementation that stores the elements in a C++ array rather than in a property map. (ArrayInstanceImp::ArrayInstanceImp): Allocate the C++ array. (ArrayInstanceImp::~ArrayInstanceImp): Delete the C++ array. (ArrayInstanceImp::get): Implement both the old version and the new overload that takes an unsigned index for speed. (ArrayInstanceImp::put): Implement both the old version and the new overload that takes an unsigned index for speed. (ArrayInstanceImp::hasProperty): Implement both the old version and the new overload that takes an unsigned index for speed. (ArrayInstanceImp::deleteProperty): Implement both the old version and the new overload that takes an unsigned index for speed. (ArrayInstanceImp::setLength): Added. Used by the above to resize the array. (ArrayInstanceImp::mark): Mark the elements of the array too. (ArrayPrototypeImp::ArrayPrototypeImp): Pass the length to the array instance constructor.
  • kjs/bool_object.cpp:
  • kjs/date_object.cpp:
  • kjs/error_object.cpp:
  • kjs/function.cpp:
  • kjs/function_object.cpp:
  • kjs/math_object.cpp:
  • kjs/nodes.cpp:
  • kjs/nodes.h:
  • kjs/number_object.cpp:
  • kjs/object_object.cpp:
  • kjs/regexp_object.cpp:
  • kjs/string_object.cpp:
  • kjs/nodes2string.cpp: (SourceStream::operator<<): Add a special case for char now that you can't create a UString from a char implicitly.
  • kjs/object.h:
  • kjs/object.cpp: (ObjectImp::get): Call through to the string version if the numeric version is not implemented. (ObjectImp::put): Call through to the string version if the numeric version is not implemented. (ObjectImp::hasProperty): Call through to the string version if the numeric version is not implemented. (ObjectImp::deleteProperty): Call through to the string version if the numeric version is not implemented.
  • kjs/types.h:
  • kjs/types.cpp: (Reference::Reference): Added constructors for the numeric property name case.
  • kjs/ustring.h: Made the constructor that turns a character into a string be explicit so we don't get numbers that turn themselves into strings.
  • kjs/ustring.cpp: (UString::UString): Detect the empty string case, and use a shared empty string. (UString::find): Add an overload for single character finds. (UString::rfind): Add an overload for single character finds. (KJS::operator==): Fix bug where it would call strlen(0) if the first string was not null. Also handle non-ASCII characters consistently with the rest of the code by casting to unsigned char just in case.
  • kjs/value.h: Make ValueImp and all subclasses non-copyable and non-assignable.
  • kjs/value.cpp: (ValueImp::toUInt32): New interface, mainly useful so we can detect array indices and not turn them into strings and back. (ValueImp::toInteger): Use the new toUInt32. Probably can use more improvement. (ValueImp::toInt32): Use the new toUInt32. Probably can use more improvement. (ValueImp::toUInt16): Use the new toUInt32. Probably can use more improvement. (ValueImp::getBase): Remove handling of the Reference case. That's in ReferenceImp now. (ValueImp::getPropertyName): Remove handling of the Reference case. That's in ReferenceImp now. (ValueImp::getValue): Remove handling of the Reference case. That's in ReferenceImp now. (ValueImp::putValue): Remove handling of the Reference case. That's in ReferenceImp now. (ValueImp::deleteValue): Added. Used so we can do delete the same way we do put.

WebFoundation:

  • CacheLoader.subproj/WebHTTPResourceLoader.m: (-[WebHTTPProtocolHandler createWFLoadRequest]): Fix handling of paths with queries and some other subtle path and port number handling issues by using _web_hostWithPort and _web_pathWithQuery.
  • Misc.subproj/WebNSURLExtras.h:
  • Misc.subproj/WebNSURLExtras.m: (-[NSURL _web_hostWithPort]): Added. (-[NSURL _web_pathWithQuery]): Added.
  • CacheLoader.subproj/WebResourceLoad.m: (initLoader): Get some random preference before creating threads. This makes it impossible to run into the CFPreferences race condition.

WebCore:

  • force-clean-timestamp: Need a full build because of KJS changes.
  • khtml/ecma/kjs_window.h: Need to store an Object, not an ObjectImp, because there's no way to copy an ObjectImp. KJS changes caught this mistake.
9:12 AM Changeset in webkit [1798] by mjs
  • 5 edits in trunk/WebKit
  • WebView.subproj/WebDataSourcePrivate.h:
  • WebView.subproj/WebDataSourcePrivate.m: Remove private _flags and _attributes accessors, now that Ken added public versions.
  • WebView.subproj/WebFrame.m: (-[WebFrame reload:]): Remove sole use thereof.
2:35 AM Changeset in webkit [1797] by darin
  • 4 edits in trunk/WebCore

WebCore:

  • re-fixed 2948387 -- stop button flashes to "go" two extra times while loading citibank.com

It turns out Maciej and I rebroke this when we made the "completed" code run.
There was a related APPLE_CHANGES that had to be removed so that we do each redirect only once.
Doing the redirect multiple times sent confusing signals to the web browser.

  • khtml/khtml_part.cpp: (KHTMLPart::scheduleRedirection): Remove APPLE_CHANGES so we don't try to redirect until the page is complete.

WebBrowser:

Fixed a small thing related to bug 2948387.

  • BrowserDocument.m: (-[BrowserDocument displayName]): Leave title saying "Loading" as long as _instantRedirectPending is YES.

Aug 10, 2002:

5:31 PM Changeset in webkit [1796]
  • 3 copies in tags/Alexander-17

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

5:31 PM Changeset in webkit [1795] by kocienda
  • 8 edits in trunk

Rolled version number to Alex-17

11:28 AM Changeset in webkit [1794] by kocienda
  • 4 edits in trunk/WebCore

Check box in target setting panel to enable prebinding.

  • WebCore.pbproj/project.pbxproj
11:24 AM Changeset in webkit [1793] by kocienda
  • 18 edits in trunk

WebFoundation:

Added a new constant WebResourceHandleUseCachedObjectIfPresent.
This constant is used during reload so that a cached object
is returned regardless of its expiration.

  • CacheLoader.subproj/WebCacheLoaderConstants.h: Added constant.
  • CacheLoader.subproj/WebHTTPProtocolHandlerPrivate.m: (-[WebHTTPProtocolHandler testAndSetCacheObjectState:]): Added check for new WebResourceHandleUseCachedObjectIfPresent constant.
  • CacheLoader.subproj/WebResourceLoad.m:

Also added a change to improve the percentage of cache hits:

(-[WebResourceLoad succeeded]): Use originalURL for caching. This will mean that
the cache is checked for what the user typed in, or has in their bookmarks. This
improves cache hits quite a bit.

WebCore:

Added an extra function which checks with WebKit to see if
the load is a reload. If it is, the WebCore cache is bypassed.

  • khtml/misc/loader.cpp: (DocLoader::requestImage): Added acall to new KWQCheckIfReloading function. (DocLoader::requestStyleSheet): Ditto. (DocLoader::requestScript): Ditto.
  • kwq/KWQLoaderImpl.h:
  • kwq/KWQLoaderImpl.mm: (KWQCheckIfReloading): New function which checks with WebKit to see if the load is a reload.
  • kwq/WebCoreBridge.h:

WebKit:

Added support for "stale mode" (loads triggered by use of back/forward), and
added support for reload.

Also added a bridge function so the WebCore cache can tell if a load is a reload.

  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge dataSourceIsReloading]): New method.
  • WebCoreSupport.subproj/WebSubresourceClient.m: (+[WebSubresourceClient startLoadingResource:withURL:dataSource:]): Use same flags that were used for main resource load.
  • WebView.subproj/WebDataSource.h:
  • WebView.subproj/WebDataSource.m: (-[WebDataSource attributes]): New accessor. (-[WebDataSource flags]): New accessor.
  • WebView.subproj/WebFrame.m: (-[WebFrame reload:]): Reload adds WebResourceHandleFlagLoadFromOrigin flag to load.
  • WebView.subproj/WebFramePrivate.m: (-[WebFrame _goToItem:withFrameLoadType:]): Adds flags so that WebFoundation can tell when back/forward has been used.

WebBrowser:

Fix for this bug:

Radar 2870727 ("Refresh" in Alexander doesn't bypass cache)

  • BrowserDocument.m: (-[BrowserDocument _goToURL:withFrameLoadType:fallbackURLs:]): Removed code that prevented the call through to reload from being called, now that I have hooked up the code so that reload is handled properly.
Note: See TracTimeline for information about the timeline view.