Added missing bug # to log.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3141 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Reviewed by John.

	A number of non-reproducible bugs look like they may be due to bad
	event objects. I was assuming that callers retained the events until
	the functions handling them returned, but that assumption may be wrong.
	So I'm retaining/releasing the current event. This is correct in any case.
	I'm also adding a new assertion, but since assertions are in Development
	builds only that is very low risk.

        * kwq/KWQKHTMLPart.mm:
        (KWQKHTMLPart::keyEvent): Add retain/release and a new assertion.
        (KWQKHTMLPart::mouseDown): Ditto.
        (KWQKHTMLPart::mouseDragged): Ditto.
        (KWQKHTMLPart::mouseUp): Ditto.
        (KWQKHTMLPart::mouseMoved): Ditto.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3142 268f45cc-cd09-0410-ab3c-d52691b4dbfc
	Fix for 3129393, crasher on sundancecatalog.com.  There
	are two elements to this fix.  The basic problem was that
	sundancecatalog was saying:

	<table style="display: inline">

	In WinIE, this turns into an inline-table and not an inline.
	In Gecko this does not happen.  Like Gecko, we treated this
	as an inline, so we triggered a problem in my inline splitting
	code.

	The first fix was to bulletproof my inline splitting code to
	ensure all new render objects are fully connected before children
	are added, so that you can get to renderArenas at all times.

	The second fix implements the WinIE quirk and turns the table
	into an inline-table so that you avoid a complete garbage
	render tree.

        Reviewed by trey

        * khtml/css/html4.css:
        * khtml/rendering/render_flow.cpp:
        (RenderFlow::layout):
        (RenderFlow::splitFlow):
        (RenderFlow::addChildToFlow):
        * khtml/rendering/render_flow.h:
        * khtml/rendering/render_list.cpp:
        (RenderListMarker::lineHeight):
        * khtml/rendering/render_list.h:
        * khtml/rendering/render_object.cpp:
        (RenderObject::createObject):
        * khtml/rendering/render_table.cpp:
        (RenderTable::lineHeight):
        (RenderTable::baselinePosition):
        (RenderTable::setStyle):
        * khtml/rendering/render_table.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3143 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebKit:

	- WebKit part of fix for 3124949 -- Alexander recreates the
	default set of bookmarks every time a separate app copy is launched

        Reviewed by Darin

        * Bookmarks.subproj/WebBookmarkGroup.h:
	new _tag ivar and -tag method.

        * Bookmarks.subproj/WebBookmarkGroup.m:
        (-[WebBookmarkGroup dealloc]):
	release _tag
        (-[WebBookmarkGroup tag]):
	return _tag
        (-[WebBookmarkGroup _loadBookmarkGroupGuts]):
	read _tag from the dictionary in the file (or leave it at
	nil if there's no value in the file).

        * English.lproj/StringsNotToBeLocalized.txt:
	kept this file up to date

WebBrowser:

	- WebBrowser part of fix for 3124949 -- Alexander recreates the
	default set of bookmarks every time a separate app copy is launched

        Reviewed by Darin

        * BookmarksController.m:
        (-[BookmarksController mergeBuiltInBookmarksIfNecessary]):
	if the mod date has changed since the last time this was
	checked, check the tag in the bookmarks	group (loaded from the
	file) to see if it has changed. If the tag hasn't changed, then
	don't merge the built-in bookmarks.

        * PreferenceKeys.h:
	new #define BuiltInBookmarksTagPreferenceKey

        * English.lproj/BuiltInBookmarks.plist:
	Added tag (happens to be string that looks like a date) to
	this file. We'll update this whenever we update the contents.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3144 268f45cc-cd09-0410-ab3c-d52691b4dbfc
alexander-42
it's the meaning of life


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3145 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Reviewed by Dave.

	- fixed 3129129 -- leak of 820 RenderStyle objects each time we run cvs-base

	The RenderStyle objects were the tip of an iceberg.

        I fixed a lot of leaks, but there are still some remaining.

	Note that these changes will make Development builds slower because they disable
	the arena allocator in favor of assertions that check we are using it correctly.
	But the changes make Deployment builds slightly faster.

        * khtml/html/html_baseimpl.cpp: (HTMLFrameSetElementImpl::attach):
	Fix a leak in the !isStyleAvailable() case by ref'ing and deref'ing the style.

        * khtml/html/html_formimpl.cpp:
        (HTMLFormElementImpl::attach): Fix a leak by getting the style from the render
	object instead of calling styleForElement again, which makes a new one.
        (HTMLFormElementImpl::parseAttribute): Ditto.
        (HTMLInputElementImpl::attach): Fix a leak by using the style in the local
	variable rather than calling styleForElement again.

        * khtml/html/html_imageimpl.cpp:
        (HTMLImageElementImpl::parseAttribute): Fix a leak by getting the style from the render
	object instead of calling styleForElement again, which makes a new one.
        (HTMLImageElementImpl::attach): Fix a leak by using the style in the local
	variable rather than calling styleForElement again.

        * khtml/html/html_inlineimpl.cpp: (HTMLBRElementImpl::attach):
	Fix a leak in the display() == NONE case by ref'ing and deref'ing the style.

        * khtml/html/html_objectimpl.cpp: (HTMLObjectElementImpl::attach): Fix a leak by using
	the style in the local variable rather than calling styleForElement again.

        * khtml/rendering/bidi.cpp:
        (BidiIterator::detach): Added debugging code to detect if someone does a delete directly,
	which will not deallocate the object because it won't run the correct arena code.
        (BidiIterator::operator delete): Ditto.
        (appendRunsForObject): Fix a leak by detaching bidi iterators when they are removed from
	the list. The list can't delete them because it doesn't have the arena pointer.
        (deleteMidpoints): Fix a leak by not removing the items from the list until done iterating.
	The old code would fail to delete half the items.

        * khtml/rendering/render_container.cpp:
        (RenderContainer::detach): Detach the continuation here. Before we removed it but did not
	detach it, which led to a leak.
        (RenderContainer::removeChild): Do not remove the continuation here. If we do, then we can't
	detach successfully. No one depends on this removing the continuation.
        (RenderContainer::removeLeftoverAnonymousBoxes): Detach the child, don't just delete it.
	This fixes a leak.

        * khtml/rendering/render_flow.cpp: (RenderFlow::removeChild): Detach the child, don't just
	delete it. This fixes a leak.

        * khtml/rendering/render_object.h: Added arenaDelete.
        * khtml/rendering/render_object.cpp:
        (RenderObject::operator delete): Added debugging code to detect if someone does a delete directly,
	which will not deallocate the object because it won't run the correct arena code.
        (RenderObject::detach): Ditto.
        (RenderObject::arenaDelete): Put the low-level delete here, so that subclasses (RenderWidget)
	can call it.

        * khtml/rendering/render_replaced.h: Add arenaDeref and make deref private so derived classes
	won't use it by accident.
        * khtml/rendering/render_replaced.cpp:
        (RenderWidget::detach): Use the new arenaDeref instead of deref, since we need to pass the
	arena pointer in to delete.
        (RenderWidget::resizeWidget): Ditto. Store the arena before calling back, since we can't get it
	once it's detached from its parent.
        (RenderWidget::eventFilter): Ditto.
        (RenderWidget::arenaDeref): Added. Calls RenderObject's arenaDelete.

	- other changes

        * khtml/rendering/render_arena.cpp:
        (RenderArena::allocate): Added debugging code that stores a signature, arena pointer, and size,
	and uses malloc rather than the arena.
        (RenderArena::free): Check the signature, arena pointer, and size, and use free.

        * khtml/rendering/render_layer.cpp:
        (RenderLayer::operator delete): Added debugging code to detect if someone does a delete directly,
	which will not deallocate the object because it won't run the correct arena code.
        (RenderLayer::detach): Ditto.
        (RenderLayer::RenderLayerElement::operator delete): Ditto.
        (RenderLayer::RenderLayerElement::detach): Ditto.
        (RenderLayer::RenderZTreeNode::operator delete): Ditto.
        (RenderLayer::RenderZTreeNode::detach): Ditto.

        * khtml/rendering/render_text.cpp:
        (TextSlave::detach): Added debugging code to detect if someone does a delete directly,
	which will not deallocate the object because it won't run the correct arena code.
        (TextSlave::operator delete): Ditto.

        * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::createContextualFragment):
	Save one new/delete by using a stack-based HTMLTokenizer and add FIXMEs about
	some possible leaks I spotted here.

        * khtml/rendering/render_list.cpp: (RenderListItem::setStyle): Took out APPLE_CHANGES from around
	a generally useful bug fix.

        * WebCore.pbproj/project.pbxproj: Let Electron be Electron.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3147 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Reviewed by Richard and John.

	- fixed 3133207 -- crash in HTMLFrameElementImpl updateForNewURL at home.real.com

	This refines Maciej's fix for 3052113, 3075392, and 3125412.

        * khtml/html/html_baseimpl.h: Remove detach() and parentWidget from HTMLFrameElementImpl.
        * khtml/html/html_baseimpl.cpp:
        (HTMLFrameElementImpl::HTMLFrameElementImpl): Take out initialization of unused parentWidget.
        (HTMLFrameElementImpl::updateForNewURL): Add case for when we are attached by did not allocate
	a render object. In that case we just detach so we can attach again. Also fix the self-reference
	check which was in there but not working.
        (HTMLFrameElementImpl::detach): Remove method since all it did was set unused parentWidget.
        (HTMLIFrameElementImpl::attach): Remove unused depth computation.

	- fixed more leaks

        * khtml/rendering/render_replaced.h: Made the deref method inherited from khtml::Shared
	private by using private inheritance. Changed the name of arenaDeref to deref, but it still
	takes an arena parameter. Now incorrect deref's are compile-time errors instead of potential leaks.
        * khtml/rendering/render_replaced.cpp:
        (RenderWidget::detach): Rename arenaDeref to deref.
        (RenderWidget::resizeWidget): Ditto.
        (RenderWidget::eventFilter): Ditto.
        (RenderWidget::deref): Ditto.

        * khtml/rendering/render_form.cpp: (RenderFormElement::slotClicked):
	Pass the arena when deref'ing the RenderFormElement.
        * kwq/WebCoreBridge.h: Add a field for the arena for the RenderPart.
        * kwq/WebCoreBridge.mm:
        (-[WebCoreBridge dealloc]): Pass the arena when deref'ing the RenderPart.
        (-[WebCoreBridge setRenderPart:]): Pass the arena when deref'ing the RenderPart. Store the arena
	of the new part when storing the part pointer.

        * khtml/xml/dom_docimpl.cpp: (DocumentImpl::~DocumentImpl): Assert that the render object is
	not nil, in an attempt to catch a leak I observed yesterday.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3148 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Reviewed by John.

	- fixed 3131449 -- crash in DOMNamedNodesCollection::tryGet opening a new window from JavaScript

        * khtml/ecma/kjs_dom.cpp: (DOMNamedNodesCollection::tryGet):
	Add range checking. If the index is out of range fall back to the parent tryGet,
	which will eventually just return Undefined().


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3149 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Reviewed by John.

	- fixed 3129824 -- crash in QWidget::getView in KWQKHTMLPart::passSubframeEventToSubframe

        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::passWidgetMouseDownEventToWidget):
	Check for a nil QWidget in a RenderWidget, and ERROR and return true in that case.
	We don't want to return false because otherwise the KHTML code will try to draw a frame splitter.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3150 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JavaScriptCore:

	We now build with symbols the B&I.  Deployment builds are without symbols,
	so it is easy to generate a non-huge app as a one-off.

        Reviewed by Darin

        * JavaScriptCore.pbproj/project.pbxproj:

WebFoundation:

	We now build with symbols the B&I.  Deployment builds are without symbols,
	so it is easy to generate a non-huge app as a one-off.

        Reviewed by Darin

        * WebFoundation.pbproj/project.pbxproj:

WebCore:

	We now build with symbols the B&I.  Deployment builds are without symbols,
	so it is easy to generate a non-huge app as a one-off.

        Reviewed by Darin

        * WebCore.pbproj/project.pbxproj:

WebKit:

	We now build with symbols the B&I.  Deployment builds are without symbols,
	so it is easy to generate a non-huge app as a one-off.

        Reviewed by Darin

        * WebKit.pbproj/project.pbxproj:

WebBrowser:

	We now build with symbols the B&I.  Deployment builds are without symbols,
	so it is easy to generate a non-huge app as a one-off.

        Reviewed by Darin

        * WebBrowser.pbproj/project.pbxproj:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3151 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebCore:
        Fixed 3133261.  This fix really has two parts.  This first part
        fixes the stupid stack allocated buffer that caused the crash.
        The second part makes any RenderText with a large string perform
        much faster.  The page mentioned in the bug used to load and draw
        in about 15 minutes.  Now it loads in about 10 seconds and draws in about
        2 seconds.  The performance optimization caches a widths array
        for the string in the RenderText, and only updates that array if
        the font or text for the RenderText change.

        Reviewed by john.

        * khtml/rendering/render_text.cpp:
        (RenderText::RenderText):
        (RenderText::setStyle):
        (RenderText::~RenderText):
        (RenderText::computeWidths):
        (RenderText::widthFromBuffer):
        (RenderText::trimmedMinMaxWidth):
        (RenderText::calcMinMaxWidth):
        (RenderText::setText):
        (RenderText::width):
        * khtml/rendering/render_text.h:

WebKit:
        Fixed 3133261.  This fix really has two parts.  This first part
        is here in WebTextRenderer.  The second part adds some width
        caching to RenderText.  I was using a stack allocated array,
        this would blow out the stack for large strings.

        Reviewed by john.

        * WebCoreSupport.subproj/WebTextRenderer.m:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3152 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Reviewed by Darin

	Fix for this bug:

	Radar 3132171 (trying to login at mypage.apple.com gives "Already Connected" message)

	The issue is that we submit the login form more than once when the user hits
	the return key to submit rather than clicking the submit button. We are also
	susceptible to double form submissions from buggy scripts that ask to submit
	more than one form.

	The fix is to prevent the KWQKHTMLPart from submitting more than one form by
	setting and checking a flag.

        * kwq/KWQKHTMLPart.h: Add a form submit flag.
        * kwq/KWQKHTMLPart.mm:
        (KWQKHTMLPart::submitForm): Check form submit flag. Return if a form
	has already been submitted.
        (KWQKHTMLPart::setView): Reset form flag. This is done since the part
	may have been retrieved for reuse from the bac/forward cache.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3153 268f45cc-cd09-0410-ab3c-d52691b4dbfc
	3131841 - crash when switching encodings on a page with frames

        Reviewed by rjw

        * WebView.subproj/WebFramePrivate.m:
        (-[WebFrame _transitionToCommitted:]):  Create a docView in the LoadStale case, like
	every other kind of load does.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3154 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Reviewed by John.

	- fixed 3132382 -- crash in khtml::CachedImage

	The source of this bug was my long-ago fix to bug 3079499.
	I changed the code to copy the clients list. But this doesn't work if
	one of the clients is removed while iterating because it's deleted.
	So I made a new class, CachedObjectClientWalker, that does the iterating safely.
	Now both this new bug and the original are fixed.

        * khtml/misc/loader.cpp:
        (CachedCSSStyleSheet::checkNotify): Use CachedObjectClientWalker to walk the list.
        (CachedScript::checkNotify): Ditto.
        (CachedImage::do_notify): Ditto.
        (CachedImage::movieStatus): Ditto.
        (CachedImage::checkNotify): Ditto.
        (CachedObjectClientWalker::next): Walk the list using a list iterator, which is
	safe against the current item being removed. But go that safety one better by making
	sure you don't miss the item after one that's removed.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3155 268f45cc-cd09-0410-ab3c-d52691b4dbfc
alexander-43


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3156 268f45cc-cd09-0410-ab3c-d52691b4dbfc
version 44u


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3158 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Reviewed by John.

	- fixed 3129387 -- Stopped responding to controls while filling out form (exception in KWQTextArea)

        * kwq/KWQTextArea.mm:
        (-[KWQTextArea getCursorPositionAsIndex:inParagraph:]): Fix code that was returning the wrong
	paragraph number along with the index within the paragraph. Also made it return a paragraph one
	past the end with an index of 0 for cases where you are at the end of the text.
        (-[KWQTextArea setCursorPositionToIndex:inParagraph:]): Range check the passed-in index. This
	would also have prevented the exception.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3159 268f45cc-cd09-0410-ab3c-d52691b4dbfc
	Remove the clip hack from setLayout and make it
	asynchronous instead.  This fixes the crasher
	on autosite.com, which had a sync layout occur
	while in the middle of making a block box's
	children get wrapped in anonymous boxes.  It
	was only half done when the layout got
	triggered, which is what caused the assert to fire.

	The bug # is 3129534.

        Reviewed by rjw

        * khtml/khtmlview.cpp:
        (KHTMLView::KHTMLView):
        (KHTMLView::timerEvent):
        (KHTMLView::scheduleRelayout):
        * khtml/khtmlview.h:
        * khtml/rendering/render_object.cpp:
        (RenderObject::setLayouted):
        (RenderObject::scheduleRelayout):
        * khtml/rendering/render_object.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3160 268f45cc-cd09-0410-ab3c-d52691b4dbfc
i        Fix for 3133601.  Play the same trick we do in
        KHTMLPartBrowserExtension::openURLRequest to create an empty
        document if necessary.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3161 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove stray change marker.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3162 268f45cc-cd09-0410-ab3c-d52691b4dbfc