Timeline



Apr 9, 2006:

10:40 PM Changeset in webkit [13805] by ggaren
  • 4 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs

5% speedup by pushing all sourceelements nodes on the stack in one go

10:06 PM Changeset in webkit [13752] by ggaren
  • 3 edits in trunk/JavaScriptCore

Reviewed by eric.

This patch switches manual RefPtr exchange with use of
RefPtr::release to ensure that a node's ref count never tops 1
(in the normal case).

  • kjs/nodes.cpp: (BlockNode::BlockNode): (CaseBlockNode::CaseBlockNode):
  • kjs/nodes.h: (KJS::ArrayNode::ArrayNode): (KJS::ObjectLiteralNode::ObjectLiteralNode): (KJS::ArgumentsNode::ArgumentsNode): (KJS::VarStatementNode::VarStatementNode): (KJS::ForNode::ForNode): (KJS::CaseClauseNode::CaseClauseNode): (KJS::FuncExprNode::FuncExprNode): (KJS::FuncDeclNode::FuncDeclNode):
9:53 PM Changeset in webkit [13804] by ggaren
  • 2 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs

prevent unnecessary entries in the extra ref count on nodes table

9:40 PM Changeset in webkit [13751] by ap
  • 3 edits
    3 adds in trunk

Reviewed by Darin.

Test: http/tests/xmlhttprequest/basic-auth.html

  • platform/KURL.cpp: (KURL::setUser): Enable a code path that handles non-empty user name - it was already present, but commented out and protected with an assertion. (KURL::setPass): Ditto.
7:45 PM Changeset in webkit [13750] by darin
  • 1 edit in trunk/LayoutTests/fast/canvas/canvas-before-css-expected.checksum

Removed bogus suffix I checked in by accident.

5:55 PM Changeset in webkit [13803] by eseidel
  • 1 edit in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs/TreeCode.cpp

Prevent int->double conversion in hot code path

5:31 PM Changeset in webkit [13802] by ggaren
  • 5 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs

fixed up unwinding some more -- all the mozilla js tests now pass

4:48 PM Changeset in webkit [13749] by darin
  • 1 edit in trunk/WebKitTools/Scripts/do-webcore-rename

First early steps towards a next, much smaller, round of renames
in WebCore.

4:38 PM Changeset in webkit [13748] by darin
  • 14 edits
    4 adds in trunk

LayoutTests:

Reviewed by Anders.

  • fast/canvas/canvas-before-css-expected.checksum: Added.
  • fast/canvas/canvas-before-css-expected.png: Added.
  • fast/canvas/canvas-before-css-expected.txt: Added.
  • fast/canvas/canvas-before-css.html: Added.
  • fast/canvas/image-object-in-canvas.html: Test had a bug where it used <canvas> without a </canvas> tag. Changed test to include a </canvas> tag.
  • fast/canvas/patternfill-repeat-expected.txt: Updated for name change from RenderCanvasImage to RenderHTMLCanvas.
  • fast/canvas/image-object-in-canvas-expected.txt: Ditto.
  • fast/canvas/fillrect_gradient-expected.txt: Ditto.
  • fast/canvas/quadraticCurveTo-expected.txt: Ditto.

WebCore:

Reviewed by Anders.

Test: fast/canvas/canvas-before-css.html

This patch makes us match the canvas documentation in Hixie's Web Applications
draft as far as when the canvas is created and recreated and how it's sized.
It also gets rid of the compositeOperation attribute of the canvas element.
We can add that back if we need it. Anders points out that this specifically
changes behavior for canvas elements where the size is set in CSS and not with
width and height attributes. The CSS size now determines how big a box the canvas
is rendered into, but has no effect on the size of the canvas's buffer.

  • html/CanvasRenderingContext2D.h: Added overloads of drawImage that take HTMLCanvasElement, which is no longer derived from HTMLImageElement.
  • html/CanvasRenderingContext2D.cpp: (WebCore::imageSize): Renamed from imageOrCanvasSize. Now used for images only, because canvas is no longer derived from image. (WebCore::CanvasRenderingContext2D::drawImage): Split the implementation of this for image sources from the implementation for canvas sources. (WebCore::CanvasRenderingContext2D::willDraw): Changed to call a new willDraw function on the canvas element. (WebCore::CanvasRenderingContext2D::drawingContext): Changed to call drawingContext on the canvas element rather than the renderer.
  • html/HTMLCanvasElement.h: Changed HTMLCanvasElement to derive from HTMLElement instead of HTMLImageElement. Added width, height, setWidth, setHeight, willDraw, paint, drawingContext, createDrawingContext, and reset functions. Added m_size, m_createdDrawingContext, m_data, and m_drawingContext data members. Removed mapToEntry, attach, detach, and isURLAttribute functins.
  • html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::HTMLCanvasElement): Added initializers for new m_size, m_createdDrawingContext, m_data, and m_drawingContext data members. (WebCore::HTMLCanvasElement::~HTMLCanvasElement): Free m_data and m_drawingContext. (WebCore::HTMLCanvasElement::parseMappedAttribute): Got rid of special case for srcAttr, which is no longer needed since we aren't deriving from HTMLImageElement. Added code that triggers a reset when either width or height is set. (WebCore::HTMLCanvasElement::createRenderer): Added code to set the intrinsic width and height of the renderer to the size of the element. (WebCore::HTMLCanvasElement::setHeight): Added. Sets the height attribute. (WebCore::HTMLCanvasElement::setWidth): Added. Sets the width attribute. (WebCore::HTMLCanvasElement::willDraw): Added. Tells the renderer to repaint. Also has FIXME mentioning we could dirty only the part that has changed in the future. (WebCore::HTMLCanvasElement::reset): Added. Sets the size of the canvas and discards the old buffer, which is an indirect way of resetting the buffer to transparent black. (WebCore::HTMLCanvasElement::paint): Added. Draws the canvas image into the graphics context that's passed in. (WebCore::HTMLCanvasElement::createDrawingContext): Added. Allocates a buffer for the bits, then creates a bitmap context for drawing into the buffer. (WebCore::HTMLCanvasElement::drawingContext): Added. Calls createDrawingContext if needed, then returns the current drawing context. (WebCore::HTMLCanvasElement::createPlatformImage): Changed to always call CGContextFlush and to create the image from the context in this class.
  • rendering/RenderHTMLCanvas.h: Remove almost all of the contents of this file. Removed ~RenderHTMLCanvas, setNeedsImageUpdate, element, updateDrawnImage, drawingContext, createDrawingContext, and drawnImage functions and _drawingContext, _drawingContextData, _drawnImage, and _needsImageUpdate booleans. Changed RenderHTMLCanvas to derive from RenderReplaced instead of RenderImage.
  • rendering/RenderHTMLCanvas.cpp: (WebCore::RenderHTMLCanvas::RenderHTMLCanvas): Changed to only initialize RenderReplaced. (WebCore::RenderHTMLCanvas::renderName): Moved this in here, since there's no good reason to have this virtual function inlined. (WebCore::RenderHTMLCanvas::paint): Changed implementation to use HTMLCanvasElement::paint instead ofcalling CGContextDrawImage directly. (WebCore::RenderHTMLCanvas::layout): Removed the code that detects changes in width and causes the drawing context to be recreated; instead, if the width and height changes we scale when we paint the canvas.
  • bindings/js/JSCanvasRenderingContext2DBase.cpp: (WebCore::JSCanvasRenderingContext2DBaseProtoFunc::callAsFunction): Separated out handling for <canvas> vs. <img> elements in drawRect, since HTMLCanvasElement is no longer derived from HTMLImageElement.
3:00 PM Changeset in webkit [13747] by eseidel
  • 2 edits in trunk/WebCore

2006-04-09 Rob Buis <buis@kde.org>

Reviewed by eseidel. Landed by eseidel.

Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=6027:
Dirty rect invalidation issues in mozilla sample

Make sure the paths calculate the new bounding box and not
use the cached bbox.

No automated test case possible.

  • kcanvas/RenderPath.cpp: (WebCore::RenderPath::setPath):
2:55 PM Changeset in webkit [13746] by eseidel
  • 3 edits
    4 adds in trunk

2006-04-09 Rob Buis <buis@kde.org>

Reviewed by darin. Landed by eseidel.

Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=6930:
% width/height on nested <svg> tags do not work

Set the context correctly for inner <svg>, so calculation of
width/height for inner <svg> elements is done against the
viewport element.

Test: svg/custom/inner-percent.svg

  • ksvg2/svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::width): (WebCore::SVGSVGElement::height):
1:12 PM Changeset in webkit [13745] by eseidel
  • 2 edits in trunk/WebCore

2006-04-08 Rob Buis <buis@kde.org>

Reviewed by eseidel.

No automated test case possible.

Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=7531:
hang in SVGPolygonElementImpl::toPathData in polygon test case

Make sure the points list is cleared, just like the path
list is cleared first before (re)parsing.

  • ksvg2/svg/SVGPolyElement.cpp: (SVGPolyElement::parseMappedAttribute):
1:03 AM Changeset in webkit [13744] by ap
  • 1 edit in trunk/LayoutTests/ChangeLog

Forgot to commit ChangeLog for JSC string capitalization fixes.

Apr 8, 2006:

10:08 PM Changeset in webkit [13743] by darin
  • 17 edits
    8 adds in trunk

LayoutTests:

Reviewed by Beth.

  • fast/forms/input-text-maxlength-expected.checksum: Added.
  • fast/forms/input-text-maxlength-expected.png: Added.
  • fast/forms/input-text-maxlength-expected.txt: Added.
  • fast/forms/input-text-maxlength.html: Added.
  • fast/forms/input-text-paste-maxlength-expected.checksum: Added.
  • fast/forms/input-text-paste-maxlength-expected.png: Added.
  • fast/forms/input-text-paste-maxlength-expected.txt: Added.
  • fast/forms/input-text-paste-maxlength.html: Added.

WebCore:

Reviewed by Beth.

Test: fast/forms/input-text-maxlength.html
Test: fast/forms/input-text-paste-maxlength.html

  • html/HTMLInputElement.h: Removed all friend classes (not needed any more). Renamed typeEnum to InputType. Made init() function private. Tweaked parameter names and formatting in many function declarations. Made canHaveSelection, selectionStart, and selectionEnd const. Made data members except for m_name private instead of protected. Added private functions constrainValue and recheckValue. Removed unused isEditable function.
  • html/HTMLInputElement.cpp: (WebCore::numGraphemeClusters): Added. (WebCore::numCharactersInGraphemeClusters): Added. (WebCore::HTMLInputElement::isKeyboardFocusable): Use inputType() instead of using m_type directly. (WebCore::HTMLInputElement::isMouseFocusable): Ditto. (WebCore::HTMLInputElement::focus): Ditto. (WebCore::HTMLInputElement::setInputType): Added code to call constrainValue or recheckValue so we will enforce maxLen if changing from a type that doesn't have maxLen to one that does. (WebCore::HTMLInputElement::type): More-standard formatting for switch statement. Put cases into alphabetical order. (WebCore::HTMLInputElement::state): Changed switch statement to include all case values and not include a default case to take advantage of gcc's missing case warning. (WebCore::HTMLInputElement::restoreState): Ditto. (WebCore::HTMLInputElement::canHaveSelection): Ditto. (WebCore::HTMLInputElement::selectionStart): Ditto. (WebCore::HTMLInputElement::selectionEnd): Ditto. (WebCore::HTMLInputElement::setSelectionStart): Ditto. (WebCore::HTMLInputElement::setSelectionEnd): Ditto. (WebCore::HTMLInputElement::select): Ditto. (WebCore::HTMLInputElement::setSelectionRange): Ditto. (WebCore::HTMLInputElement::click): Ditto. (WebCore::HTMLInputElement::accessKeyAction): Ditto. (WebCore::HTMLInputElement::parseMappedAttribute): Use inputType() instead of using m_type directly. Added call to recheckValue when parsing a new value for the maxlength attribute. (WebCore::HTMLInputElement::rendererIsNeeded): Changed switch statement to include all case values and not include a default case to take advantage of gcc's missing case warning. (WebCore::HTMLInputElement::createRenderer): Ditto. (WebCore::HTMLInputElement::attach): Remove code to condition the value attribute when done parsing. This is now all handled by constrainValue and recheckValue as needed. (WebCore::HTMLInputElement::isSuccessfulSubmitButton): Use inputType() instead of using m_type directly. (WebCore::HTMLInputElement::appendFormData): Ditto. Rearranged code a little. (WebCore::HTMLInputElement::setChecked): Ditto. (WebCore::HTMLInputElement::setIndeterminate): Ditto. (WebCore::HTMLInputElement::value): Ditto. Call constrainValue when reading the value out of the value attribute. (WebCore::HTMLInputElement::valueWithDefault): Use inputType() instead of using m_type directly. Changed switch statement to include all case values and not include a default case to take advantage of gcc's missing case warning. (WebCore::HTMLInputElement::setValue): Ditto. Call constrainValue when storing a value. (WebCore::HTMLInputElement::setValueFromRenderer): Added an assertion. (WebCore::HTMLInputElement::storesValueSeparateFromAttribute): Use inputType() instead of using m_type directly. (WebCore::HTMLInputElement::preDispatchEventHandler): Ditto. (WebCore::HTMLInputElement::postDispatchEventHandler): Ditto. (WebCore::HTMLInputElement::defaultEventHandler): Ditto. Changed code to truncate inserted text in a BeforeTextInsertedEvent to use the new constrainValue function and also the numGraphemeClusters function, so it's based on grapheme clusters instead of characters and shares code. (WebCore::HTMLInputElement::constrainValue): Added. (WebCore::HTMLInputElement::recheckValue): Added.
  • html/HTMLIsIndexElement.cpp: (WebCore::HTMLIsIndexElement::HTMLIsIndexElement): Removed unneeded code to set m_type to TEXT, which is already what it gets set to by the base class's constructor.
  • html/HTMLGenericFormElement.h: Removed unused isEditable function.
  • html/HTMLGenericFormElement.cpp: Ditto.
  • html/HTMLTextAreaElement.h: Ditto.
  • html/HTMLTextAreaElement.cpp: Ditto.
  • platform/StringImpl.cpp: (WebCore::StringImpl::truncate): Changed > to >= so that truncating to the size of the string does nothing, efficiently.
  • rendering/RenderText.h: Added declaration of characterBreakIterator.
  • rendering/RenderText.cpp: (WebCore::characterBreakIterator): Made this public so it can be used in other files. Maybe we should also move it to another source file later. Also renamed to remove the "get" from the title. (WebCore::RenderText::previousOffset): Updated for name change. (WebCore::RenderText::nextOffset): Updated for name change.
  • rendering/RenderTextField.cpp: (WebCore::RenderTextField::updateFromElement): Removed code to implement maxlength checking. That's handled entirely in the DOM now. Also moved down the code to get the value into a string so that it's done only in the case where the string is used.
  • rendering/render_form.cpp: (WebCore::RenderFileButton::valueChanged): Use setValueFromRenderer instead of setting the value directly in the input element. We changed this for all the other types a while ago, and it works just as well for the input element.
  • dom/BeforeTextInsertedEvent.h: Added setText function. Previously, clients changed the text by modifying the text object in place, but going forward we'd like to avoid that sort of thing.


  • editing/ReplaceSelectionCommand.cpp: (WebCore::ReplacementFragment::ReplacementFragment): Changed code to assume clients will change the text in the event rather than mutating the text object itself. This is compatible with possible future changes to String to be copy on write.
  • editing/TypingCommand.cpp: (WebCore::TypingCommand::insertText): Ditto.
1:51 PM Changeset in webkit [13801] by ggaren
  • 1 edit in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs/TreeCode.cpp

added missing fall through to case code

1:50 PM Changeset in webkit [13800] by ggaren
  • 2 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs

refined rules for what the current completion state is

1:40 PM Changeset in webkit [13799] by eseidel
  • 2 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore

added shrinkTo and growTo to vector for speed gain

12:08 PM Changeset in webkit [13798] by eseidel
  • 2 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs

fix try and switch

12:04 PM Changeset in webkit [13742] by ap
  • 2 edits in trunk/JavaScriptCore

Reviewed by Darin.

One more attempt - use reinterpret_cast, rather than static_cast.

11:54 AM Changeset in webkit [13741] by ap
  • 2 edits in trunk/JavaScriptCore

Reviewed by Darin.

An attempt to fix Win32 build - ICU uses wchar_t on Windows, so we need a type cast.

  • kxmlcore/unicode/icu/UnicodeIcu.h: (KXMLCore::Unicode::toLower): (KXMLCore::Unicode::toUpper):
10:21 AM Changeset in webkit [13740] by ap
  • 11 edits
    3 copies
    3 adds in trunk

Reviewed by Darin.

Test: fast/js/string-capitalization.html

  • JavaScriptCore.xcodeproj/project.pbxproj: Added KXMLCore::Unicode headers to the project.
  • icu/unicode/putil.h: Added (copied from WebCore).
  • icu/unicode/uiter.h: Ditto.
  • icu/unicode/ustring.h: Ditto.
  • kjs/string_object.cpp: (StringProtoFunc::callAsFunction): Use the new KXMLCore::Unicode::toUpper() and toLower().
  • kjs/ustring.cpp: Removed unused (and evil) UChar::toLower() and toUpper().
  • kjs/ustring.h: Ditto.
  • kxmlcore/unicode/Unicode.h: Corrected capitalization of the word Unicode.
  • kxmlcore/unicode/UnicodeCategory.h: Renamed include guard macro to match file name.
  • kxmlcore/unicode/icu/UnicodeIcu.h: (KXMLCore::Unicode::toLower): Work on strings, not individual characters. Use ICU root locale. (KXMLCore::Unicode::toUpper): Ditto. (KXMLCore::Unicode::isFormatChar): Use int32_t, which can hold a complete code point. (KXMLCore::Unicode::isSeparatorSpace): Ditto. (KXMLCore::Unicode::category): Ditto.
  • kxmlcore/unicode/qt4/UnicodeQt4.h: (KXMLCore::Unicode::toLower): Work on strings, not individual characters. (KXMLCore::Unicode::toUpper): Ditto. (KXMLCore::Unicode::isFormatChar): Use int32_t, which can hold a complete code point. (KXMLCore::Unicode::isSeparatorSpace): Ditto. (KXMLCore::Unicode::category): Ditto.
  • tests/mozilla/ecma/String/15.5.4.12-1.js: Corrected expected results.
  • tests/mozilla/ecma/String/15.5.4.12-5.js: Corrected expected results.
9:49 AM Changeset in webkit [13739] by sullivan
  • 2 edits in trunk/WebKit

Reviewed by Adele Peterson.

  • Misc/WebIconDatabase.m: (-[WebIconDatabase _retainIconForIconURLString:]): This new assertion was one block too high; moved it in.

Apr 7, 2006:

6:40 PM Changeset in webkit [13797] by eseidel
  • 1 edit in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs/TreeCode.cpp

fix assertion in ForInNodeExecutePopBreakUnwindBarrierState

6:31 PM Changeset in webkit [13796] by eseidel
  • 1 edit in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs/TreeCode.cpp

Fix FALL_THROUGH in debug builds

6:26 PM Changeset in webkit [13795] by ggaren
  • 2 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs

fixed labeled break and continue

6:16 PM Changeset in webkit [13794] by eseidel
  • 1 edit in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs/TreeCode.cpp

add missing break in CommaNodeEvaluateState

6:02 PM Changeset in webkit [13793] by eseidel
  • 2 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs

Add FALL_THROUGH macro

5:47 PM Changeset in webkit [13792] by ggaren
  • 1 edit in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs/TreeCode.cpp

fixed do-while by adding fake true value at the front

5:34 PM Changeset in webkit [13738] by darin
  • 4 edits
    4 adds in trunk

LayoutTests:

Reviewed by Hyatt.

  • fast/forms/input-text-drag-down-expected.checksum: Added.
  • fast/forms/input-text-drag-down-expected.png: Added.
  • fast/forms/input-text-drag-down-expected.txt: Added.
  • fast/forms/input-text-drag-down.html: Added.

WebCore:

Reviewed by Hyatt.

  • editing/Selection.cpp: (WebCore::comparePositions): Added. Takes shadow content into account. (WebCore::Selection::validate): Changed to call comparePositions instead of calling Range::compareBoundaryPoints directly. Also removed unneeded code to redundantly set m_start and m_end to null and did a bit of reformatting.
  • some tiny efficiency improvements to the tokenizer -- no measurable speedup, but removes a little bit of unneeded code
  • html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::parseTag): Changed all the places that do "unsigned short x = *c" to "unsigned short x = c->unicode()" when c is a QChar, otherwise we do an unnecessary conversion to char (which requires a branch to see if the c fits in a char).
5:27 PM Changeset in webkit [13791] by eseidel
  • 3 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs

fix exception handling and loop continue states

5:21 PM Changeset in webkit [13737] by justing
  • 6 edits in trunk

Reviewed by harrison


Rolled the fix for 8250 back in and fixed a bug:
The local variables for the first and last nodes in the fragment
need to be reset when the fragment is changed for plaintext-only mode
or a change from the beforetextinserted event handler.

  • editing/ReplaceSelectionCommand.cpp: (WebCore::ReplacementFragment::ReplacementFragment):
5:16 PM Changeset in webkit [13736] by hyatt
  • 2 edits in trunk/WebKit

A fix that makes coalesced updates work much better (and makes our
single animated GIF timer work better). The new rect painting algorithm
for WebHTMLView will use the single unioned rect if the # of rects exceeds
a threshold (10 is my initial cut), or if the union has enough "wasted"
additional pixels (conservatively set at 75%).

Reviewed by darin

  • WebView/WebHTMLView.m: (-[NSArray drawSingleRect:]): (-[NSArray drawRect:]):
5:11 PM Changeset in webkit [13790] by ggaren
  • 1 edit in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs/TreeCode.cpp

fixed missing break in property list node

5:08 PM Changeset in webkit [13789] by ggaren
  • 1 edit in branches/temp-tree-code/trunk/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj

fixing missing break statement in property list node

4:55 PM Changeset in webkit [13735] by mjs
  • 3 edits
    2 adds in trunk

LayoutTests:

Reviewed by Darin.

Test case for this fix:


  • fixed REGRESSION: offsetParent on element with no offset parent crashes
  • fast/dom/Element/null-offset-parent.html: Added.

WebCore:

Reviewed by Darin.


  • fixed REGRESSION: offsetParent on element with no offset parent crashes
  • dom/Element.cpp: (WebCore::Element::offsetParent): Add missing null check.
4:50 PM Changeset in webkit [13734] by mjs
  • 3 edits in trunk/WebKit

Reviewed by Darin.


  • simplify archive loading
  • WebView/WebDataSource.m: (-[WebDataSource representation]): fix whitespace
  • WebView/WebHTMLRepresentation.m: (-[WebHTMLRepresentation loadArchive]): Use WebFrame's loadArchive: instead of trying to do a manual load here. (-[WebHTMLRepresentation documentSource]): No more special case for WebArchive.
4:42 PM Changeset in webkit [13788] by ggaren
  • 2 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs

fixed up switch / case statements

4:35 PM Changeset in webkit [13787] by eseidel
  • 2 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs

much better unwind barrier printing

4:01 PM Changeset in webkit [13733] by sullivan
  • 2 edits in trunk/WebKit

Reviewed by Tim Omernick.


  • fixed <rdar://problem/4507054> If an icon file is removed from disk behind Safari's back, Safari will not try to refetch it


In addition to letting WebIconDatabase recover from disk/memory mismatches as per 4507054, I also found
a bug in the way icons are remembered that could account for some of the other cases where
site icons didn't appear (and you'd get an ERROR on debug builds about WebIconDatabase saying it
had some icon when it really doesn't).

  • Misc/WebIconDatabase.m: (-[WebIconDatabase iconForURL:withSize:cache:]): When the icon file for a previously-saved site icon isn't found, forget about the darn icon URL thoroughly so that this situation is self-correcting. Formerly, once you got into this state WebKit would never find the icon again (short of removing the entire icon database cleanly). Note that this does *not* change the behavior of sites that didn't have a site icon when WebKit checked -- these will continue to not return a site icon indefinitely (that's a separate, possibly performance-sensitive issue). (-[WebIconDatabase _retainIconForIconURLString:]): This code did the wrong thing in the case where an icon was in the process of being forgotten about. In that case, the icon would still be in _private->iconsOnDiskWithURLs, so we wouldn't try to save it here, so the new icon wouldn't stick.
3:25 PM Changeset in webkit [13732] by justing
  • 3 edits
    4 adds in trunk

LayoutTests:

Reviewed by adele

  • fast/forms/input-maxlength-2-expected.checksum: Added.
  • fast/forms/input-maxlength-2-expected.png: Added.
  • fast/forms/input-maxlength-2-expected.txt: Added.
  • fast/forms/input-maxlength-2.html: Added.

WebCore:

Reviewed by adele


maxlength truncation in text fields didn't work if the fragment was a
single text node.

  • editing/ReplaceSelectionCommand.cpp: (WebCore::ReplacementFragment::ReplacementFragment):
2:57 PM Changeset in webkit [13731] by justing
  • 1 edit in trunk/WebCore/editing/ReplaceSelectionCommand.cpp

Rolling out the patch I just checked in.

1:46 PM Changeset in webkit [13730] by justing
  • 3 edits
    4 adds in trunk

LayoutTests:

Reviewed by harrison
<http://bugzilla.opendarwin.org/show_bug.cgi?id=8250>
REGRESSION: Interchange newlines aren't passed with the khtmlBeforeTextInsertedEvent

  • fast/forms/8250-expected.checksum: Added.
  • fast/forms/8250-expected.png: Added.
  • fast/forms/8250-expected.txt: Added.
  • fast/forms/8250.html: Added.

WebCore:

Reviewed by harrison


<http://bugzilla.opendarwin.org/show_bug.cgi?id=8250>
REGRESSION: Interchange newlines aren't passed with the khtmlBeforeTextInsertedEvent

  • editing/ReplaceSelectionCommand.cpp: (WebCore::ReplacementFragment::ReplacementFragment): Interchange content removal happened before khtmlBeforeTextInsertedEvent was sent.
12:51 PM Changeset in webkit [13786] by eseidel
  • 2 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs

unify exception handling

12:36 PM Changeset in webkit [13729] by justing
  • 7 edits in trunk

LayoutTests:

Reviewed by adele
<http://bugzilla.opendarwin.org/show_bug.cgi?id=8219>
REGRESSION: Two extra newlines added when pasting a single styled line into a plaintext-only region

Updated to relfect fix:

  • editing/pasteboard/8145-1-expected.checksum:
  • editing/pasteboard/8145-1-expected.png:
  • editing/pasteboard/8145-1-expected.txt:
  • editing/pasteboard/8145-1.html:

WebCore:

Reviewed by adele


<http://bugzilla.opendarwin.org/show_bug.cgi?id=8219>
REGRESSION: Two extra newlines added when pasting a single styled line into a plaintext-only region

  • editing/ReplaceSelectionCommand.cpp: (WebCore::ReplacementFragment::ReplacementFragment): Converting the fragment to plaintext introduced an extraneous newline because the range passed to plainText ended after the paragraph containing the fragment built from the markup that TextEdit put on the paste board. TextIterator will emit a newline when it exits a paragraph. Two extra newlines were added because the '\n' in the plaintext string turns into an interchange newline, which isn't removed because of 8250, and the interchange newline looks like inline content that requires the insertion of a paragraph separator during paste. Fixed by creating a range using VisiblePositions at the start and the end of the node that holds the fragment during paste's test rendering.
11:41 AM Changeset in webkit [13728] by justing
  • 9 edits
    12 adds in trunk

LayoutTests:

Reviewed by harrison


<http://bugzilla.opendarwin.org/show_bug.cgi?id=8145>
REGRESSION: Pasting text from TextEdit with a bold word into text field results in crash

  • editing/pasteboard/8145-1-expected.checksum: Added.
  • editing/pasteboard/8145-1-expected.png: Added.
  • editing/pasteboard/8145-1-expected.txt: Added.
  • editing/pasteboard/8145-1.html: Added.
  • editing/pasteboard/8145-2-expected.checksum: Added.
  • editing/pasteboard/8145-2-expected.png: Added.
  • editing/pasteboard/8145-2-expected.txt: Added.
  • editing/pasteboard/8145-2.html: Added.
  • editing/pasteboard/8145-3-expected.checksum: Added.
  • editing/pasteboard/8145-3-expected.png: Added.
  • editing/pasteboard/8145-3-expected.txt: Added.
  • editing/pasteboard/8145-3.html: Added.
  • fast/forms/plaintext-mode-1-expected.txt:
  • fast/forms/plaintext-mode-1.html:

WebCore:

Reviewed by harrison


<http://bugzilla.opendarwin.org/show_bug.cgi?id=8145>
REGRESSION: Pasting text from TextEdit with a bold word into text field results in crash

  • editing/AppendNodeCommand.cpp: (WebCore::AppendNodeCommand::doApply): Assert that the node will be placed somewhere that's contenteditable.
  • editing/InsertNodeBeforeCommand.cpp: (WebCore::InsertNodeBeforeCommand::doApply): Ditto
  • editing/JSEditor.cpp: Enabled insertHTML for plaintext-only regions since it's useful for debugging rich content pastes into the new text fields.
  • editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::doApply): 1) After the first paragraph of the fragment has been merged with the first part of the paragraph where the paste occured, if the next node to be inserted is inline, we put it in a new paragraph because it was at the start of a paragraph in the fragment. The change is to insert a paragraph separator if insertionPos.next() is null or outside of the current editable region. 2) Before the paste begins, a paragraph separator is inserted in order to avoid nesting blocks from the fragment to be pasted inside the block where the paste will occur. I made two fixes to the code that decides whether or not to insert the paragraph separator and added testcases for each. Added a fixme because it appears that this code is also used to ensure that the aforementioned insertionPos will be at the end of a paragraph. This code should only be about preventing nesting.
10:06 AM Changeset in webkit [13727] by thatcher
  • 1 add in branches/Safari-2-0-branch/JavaScriptGlue/Makefile

Missing a makefile.

1:31 AM Changeset in webkit [13726] by mjs
  • 13 edits
    3 adds in trunk

LayoutTests:

Reviewed by Anders.

Added test case for incidental fix from this change:


  • fast/dom/Element/dimension-properties-unrendered-expected.txt: Added.
  • fast/dom/Element/dimension-properties-unrendered.html: Added.
  • fast/dom/Element/resources/dimension-properties-unrendered.js: Added.

WebCore:

Reviewed by Anders.

  • dom/Element.idl: Declare full interface in IDL.
  • dom/Element.h: (WebCore::Element::tagQName): Renamed from tagName, so the real DOM method can be called tagName. (WebCore::Element::tagName): inline alias for nodeName.
  • dom/Element.cpp: (WebCore::Element::scrollByUnits): Moved logic from JS bindings to core DOM. (WebCore::Element::scrollByLines): ditto (WebCore::Element::scrollByPages): ditto (WebCore::Element::offsetLeft): ditto, plus make unrendered elements return 0 not undefined (WebCore::Element::offsetTop): ditto, plus make unrendered elements return 0 not undefined (WebCore::Element::offsetWidth): ditto, plus make unrendered elements return 0 not undefined (WebCore::Element::offsetHeight): ditto, plus make unrendered elements return 0 not undefined (WebCore::Element::offsetParent): ditto (WebCore::Element::clientWidth): ditto, plus make unrendered elements return 0 not undefined (WebCore::Element::clientHeight): ditto, plus make unrendered elements return 0 not undefined (WebCore::Element::scrollLeft): ditto (WebCore::Element::scrollTop): ditto (WebCore::Element::setScrollLeft): ditto (WebCore::Element::setScrollTop): ditto (WebCore::Element::scrollWidth): ditto, plus make unrendered elements return 0 not undefined (WebCore::Element::scrollHeight): ditto, plus make unrendered elements return 0 not undefined
  • bindings/scripts/CodeGeneratorJS.pm: Added support for ConvertUndefinedToTrue, for benefit of scroll methods where omitted arguments should be treated as true. However, maybe explicit overloading in the IDL would be a better long-term approach for optional arguments.
  • khtml/ecma/kjs_binding.cpp: (KJS::valueToStringWithNullCheck): fixed formatting (KJS::valueToBooleanTreatUndefinedAsTrue): added for binding of scrollIntoView (isn't this lame?)
  • khtml/ecma/kjs_binding.h: (KJS::toJS): fixed formatting, added new stuff
  • khtml/ecma/kjs_dom.cpp: (KJS::DOMElement::getValueProperty): removed most of contents (KJS::DOMElement::putValueProperty): ditto (KJS::DOMElementProtoFunc::callAsFunction): ditto
  • css/cssstyleselector.cpp: (WebCore::CSSStyleSelector::canShareStyleWithElement): updated for rename of tagName to tagQName (WebCore::CSSStyleSelector::checkOneSelector): ditto
  • dom/Document.cpp: (WebCore::Document::importNode): ditto
  • editing/ApplyStyleCommand.cpp: (WebCore::ApplyStyleCommand::removeInlineStyle): ditto (WebCore::areIdenticalElements): ditto
  • html/HTMLElement.cpp: (WebCore::HTMLElement::inEitherTagList): ditto (WebCore::HTMLElement::inInlineTagList): ditto (WebCore::HTMLElement::inBlockTagList): ditto
1:04 AM Changeset in webkit [13725] by hyatt
  • 2 edits in trunk/WebKit

Re-enable coalesced updates. Our move to a single timer has essentially
implemented coalescing of updates anyway, so the regression has already
come back. Since we have to deal with that now anyway, there's no reason
to visually tear also. :)

Reviewed by darin

  • ChangeLog:
  • WebView/WebView.m: (-[WebView _commonInitializationWithFrameName:groupName:]):
12:26 AM Changeset in webkit [13785] by eseidel
  • 3 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs

further fixes to exception handling, as well as doWhile and new expressions

Apr 6, 2006:

11:51 PM Changeset in webkit [13784] by eseidel
  • 3 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs

fix try/catch and forIn unwind handling as well as error throwing

10:34 PM Changeset in webkit [13783] by ggaren
  • 2 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs
10:25 PM Changeset in webkit [13782] by eseidel
  • 1 edit in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs/TreeCode.cpp

fix AssignDotNodeEvaluateState

10:13 PM Changeset in webkit [13781] by ggaren
  • 4 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs

loops work now -- mostly :)

9:52 PM Changeset in webkit [13724] by darin
  • 1 edit in trunk/WebKitTools/WebKitLauncher/WebKitLauncher.xcodeproj

Add the ignore property for inside this project.

9:06 PM Changeset in webkit [13780] by eseidel
  • 4 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs

make value returns use a single value instead of the stack

6:21 PM Changeset in webkit [13779] by eseidel
  • 1 edit in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs/TreeCode.cpp

trying to find value leak

5:02 PM Changeset in webkit [13778] by eseidel
  • 3 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs

Fix returns and completions

2:10 PM Changeset in webkit [13777] by eseidel
  • 3 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs

add printStacks()

2:09 PM Changeset in webkit [13776] by ggaren
  • 1 edit in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs/completion.h

prevent the All completion mask from matching Scope, since Scope isn't a real completion

1:53 PM Changeset in webkit [13775] by ggaren
  • 1 edit in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs/internal.cpp

unwind barrier debug print function was using the wrong variable

1:46 PM Changeset in webkit [13774] by ggaren
  • 1 add in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs/TreeCode.h

forgot to add this file

1:44 PM Changeset in webkit [13773] by ggaren
  • 7 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore

random bug fixes, value stack printouts are now more informative

12:36 PM Changeset in webkit [13772] by ggaren
  • 2 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs

integrated for-in loop. everything compiles, but we still die bbadbeef-style on all js runs.

11:45 AM Changeset in webkit [13723] by bdakin
  • 9 edits
    4 adds in trunk

Reviewed by Darin.

Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=8203
REGRESSION: "Invite a friend" text field in GMail page spills out
of table

RenderReplaced::calcMinMaxWidth() sets m_minWidth to 0 when the
width is a percent, so this patch copies that behavior into
RenderTextField::calcMinMaxWidth().

4:06 AM Changeset in webkit [13771] by eseidel
  • 3 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs

the beast

3:29 AM Changeset in webkit [13770] by ggaren
  • 2 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs

make ReferenceList iterators hold on to their lists so that we can keep an iterator stack without having the underlying lists get destroyed

1:58 AM Changeset in webkit [13769] by eseidel
  • 4 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs

add node stack and forIn

12:37 AM Changeset in webkit [13768] by eseidel
  • 5 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs

go ggaren go

12:26 AM Changeset in webkit [13722] by darin
  • 2 edits in trunk/WebCore
  • try to fix Windows build
  • WebCore.vcproj/WebCore/WebCore.vcproj: Add JSDocument.cpp.
12:23 AM Changeset in webkit [13721] by darin
  • 5 edits in trunk/WebKitTools

Changes requested by Mark Rowe.

  • BuildSlaveSupport/build-launcher-app: Set executable bit, removed property change trash at the end of the file.
  • BuildSlaveSupport/build-launcher-dmg: Ditto.
  • WebKitLauncher/main.m: Removed trash at end of file.
  • WebKitLauncher/WebKitLauncher.xcodeproj/project.pbxproj: Let Xcode update comments to make name match.
12:11 AM Changeset in webkit [13720] by darin
  • 4 edits in trunk/LayoutTests
  • regenerated test results
  • fast/forms/input-table-expected.txt: Regenerated. Seems right, matches Gecko.
  • fast/forms/form-element-geometry-expected.png: Regenerated.
  • fast/forms/form-element-geometry-expected.checksum: Regenerated.
12:02 AM Changeset in webkit [13719] by darin
  • 3 edits in trunk/JavaScriptCore
  • attempt to fix Windows build
  • kxmlcore/HashMap.h: (KXMLCore::HashMap::remove): Use (*it). instead of it->.
  • kxmlcore/HashSet.h: (KXMLCore::HashSet::remove): Ditto.

Apr 5, 2006:

11:41 PM Changeset in webkit [13718] by darin
  • 2 edits in trunk/LayoutTests
  • fast/forms/input-truncate-newline-expected.txt: Restored good expected results.
11:07 PM Changeset in webkit [13717] by darin
  • 2 edits in trunk/JavaScriptCore
  • attempt to fix Windows build
  • os-win32/stdint.h: Add int8_t, uint8_t, int64_t.
11:01 PM Changeset in webkit [13716] by darin
  • 2 edits in trunk/WebKit
  • fixed a storage leak from that last check-in
  • WebView/WebUnarchivingState.m: (-[WebUnarchivingState dealloc]): Release the two dictionaries.
10:57 PM Changeset in webkit [13715] by darin
  • 19 edits
    5 adds in trunk

LayoutTests:

Reviewed by Adele.

  • updated results for improved dumping of selection location in DumpRenderTree
  • fast/forms/input-text-self-emptying-click-expected.checksum: Added.
  • fast/forms/input-text-self-emptying-click-expected.png: Added.
  • fast/forms/input-text-self-emptying-click-expected.txt: Added.
  • fast/forms/input-text-self-emptying-click.html: Added.
  • editing/selection/3690703-2-expected.txt: Updated.
  • fast/forms/input-appearance-focus-expected.txt: Updated.
  • fast/forms/input-appearance-readonly-expected.txt: Updated.
  • fast/forms/input-appearance-selection-expected.txt: Updated.
  • fast/forms/input-paste-undo-expected.txt: Updated.
  • fast/forms/input-text-double-click-expected.txt: Updated.
  • fast/forms/input-text-option-delete-expected.txt: Updated.
  • fast/forms/input-text-scroll-left-on-blur-expected.txt: Updated.
  • fast/forms/plaintext-mode-2-expected.txt: Updated.

WebCore:

Reviewed by Adele.

Test: fast/forms/input-text-self-emptying-click.html

  • page/MouseEventWithHitTestResults.h: Removed url, target, m_url and m_target, replacing them with isOverLink and m_isOverLink. Replaced innerNode with targetNode, and added logic to handle the case where the target node is removed from the document but the element the target node was in is still inside the document.
  • page/MouseEventWithHitTestResults.cpp: Added.
  • WebCore.xcodeproj/project.pbxproj: Added MouseEventWithHitTestResults.cpp.
  • WebCore.vcproj/WebCore/WebCore.vcproj: Ditto.
  • kwq/RenderTreeAsText.cpp: (nodePosition): Added a call to shadowParentNode so we correctly dump positions within shadow trees. This was needed to give a good result from my new test for this bug.
  • dom/Document.cpp: (WebCore::Document::prepareMouseEvent): Update to pass fewer parameters to the constructor for MouseEventWithHitTestResults. Now takes isOverLink boolean, and no longer takes href and target parameters.
  • page/Frame.cpp: (WebCore::Frame::handleMousePressEventDoubleClick): Use new name targetNode, instead of old name innerNode. (WebCore::Frame::handleMousePressEventTripleClick): Ditto. (WebCore::Frame::handleMousePressEventSingleClick): Ditto. Also change code to check if over a link to use !isOverLink instead of url.isNull. (WebCore::Frame::handleMousePressEvent): Ditto. Also remove unused "url" local variable. (WebCore::Frame::handleMouseMoveEvent): Ditto. (WebCore::Frame::handleMouseReleaseEvent): Ditto. (WebCore::Frame::passWidgetMouseDownEventToWidget): Ditto.
  • bridge/mac/FrameMac.mm: (WebCore::FrameMac::handleMousePressEvent): Use new name targetNode, instead of old name innerNode. (WebCore::FrameMac::handleMouseMoveEvent): Ditto. (WebCore::FrameMac::passSubframeEventToSubframe): Ditto. (WebCore::FrameMac::sendContextMenuEvent): Ditto.
  • page/FrameView.cpp: (WebCore::subframeForEvent): Use new name targetNode, instead of old name innerNode. (WebCore::FrameView::handleMousePressEvent): Ditto. (WebCore::FrameView::handleMouseDoubleClickEvent): Ditto. (WebCore::selectCursor): Ditto. Also change code to check if over a link to use isOverLink instead of !url.isNull. (WebCore::FrameView::handleMouseMoveEvent): Ditto. (WebCore::FrameView::handleMouseReleaseEvent): Ditto. (WebCore::FrameView::updateDragAndDrop): Ditto.
9:49 PM Changeset in webkit [13714] by mjs
  • 7 edits
    2 adds in trunk/WebKit

Reviewed by Eric.



  • WebKit.xcodeproj/project.pbxproj:
  • WebView/WebDataSource.m: (-[WebDataSourcePrivate dealloc]): (-[WebDataSource _addToUnarchiveState:]): (-[WebDataSource _popSubframeArchiveWithName:]): (-[WebDataSource _documentFragmentWithArchive:]): (-[WebDataSource _setupForReplaceByMIMEType:]): (-[WebDataSource subresourceForURL:]):
  • WebView/WebDataSourcePrivate.h:
  • WebView/WebFrame.m: (-[WebFrame _loadRequest:archive:]): (-[WebFrame loadRequest:]): (-[WebFrame loadArchive:]):
  • WebView/WebFramePrivate.h:
  • WebView/WebHTMLRepresentation.m: (-[WebHTMLRepresentation loadArchive]):
  • WebView/WebUnarchivingState.h: Added.
  • WebView/WebUnarchivingState.m: Added. (-[WebUnarchivingState init]): (-[WebUnarchivingState addArchive:]): (-[WebUnarchivingState archivedResourceForURL:]): (-[WebUnarchivingState popSubframeArchiveWithFrameName:]):
9:44 PM Changeset in webkit [13713] by mjs
  • 2 edits in trunk

Fixed date in ChangeLog entries for last checkin.

9:40 PM Changeset in webkit [13712] by mjs
  • 4 edits in trunk

LayoutTests:

Reviewed and landed by Maciej.

  • fast/clip/outline-overflowClip-expected.txt: Reverted to the correct expected result.

WebCore:

Reviewed and landed by Maciej.

  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::calculateRects): Reverted this part of the fix for bug 7943. The outlineRect should not be inflated.
9:36 PM Changeset in webkit [13711] by mjs
  • 3 edits
    1 add in trunk

LayoutTests:

Reviewed by Eric, landed by Maciej.

  • svg/custom/class-selector.svg: Added.

WebCore:

Reviewed by Eric, landed by Maciej.

Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=7627:
SVG from the W3C SVG 1.1 test suite (cubic01.svg) renders as all black

Fix this svg stylesheet to use strict-mode, as this makes sure
class selecting is done correctly.

  • ksvg2/svg/SVGStyleElement.cpp: (SVGStyleElement::childrenChanged):
9:14 PM Changeset in webkit [13710] by mjs
  • 3 edits
    10 adds in trunk/WebKitTools

Reviewed by Darin, landed by Maciej.

  • BuildSlaveSupport/build-launcher-app: Added. Builds WebKit.app from WebKitLauncher and bundles the WebKit frameworks inside it.
  • BuildSlaveSupport/build-launcher-dmg: Added. Builds, and optionally uploads, a disk image containing WebKit.app.
  • BuildSlaveSupport/run-performance-tests: Use currentSVNRevision.
  • Scripts/webkitdirs.pm: Add currentSVNRevision to retrieve the revision number of the SVN working copy.
  • WebKitLauncher: Added.
  • WebKitLauncher/Info.plist: Added.
  • WebKitLauncher/WebKitLauncher.xcodeproj: Added.
  • WebKitLauncher/WebKitLauncher.xcodeproj/project.pbxproj: Added.
  • WebKitLauncher/WebKitNightlyEnabler.m: Added. This makes up the WebKitNightlyEnabler dylib which is loaded into Safari's address space to cause LaunchServices to treat Safari.app as WebKit.app when it is run from the nightly launcher.
  • WebKitLauncher/main.m: Added. The WebKit.app launcher. It sets up the environment to have Safari use the bundled frameworks and load the WebKitNightlyEnabler dylib before exec'ing Safari
  • WebKitLauncher/start.html: Added.
  • WebKitLauncher/webkit.icns: Added.
7:31 PM Changeset in webkit [13767] by eseidel
  • 8 edits in branches/temp-tree-code/branches/evaluate-execute-merge/JavaScriptCore/kjs

merge

6:59 PM Changeset in webkit [13766] by eseidel
  • 8 edits in branches/temp-tree-code/trunk/JavaScriptCore/kjs

commit attempt

6:52 PM Changeset in webkit [13765] by ggaren
  • 1 copy in branches/temp-tree-code/branches/evaluate-execute-merge

created branch for evaluate-execute merge

5:13 PM Changeset in webkit [13709] by darin
  • 2 edits in trunk/JavaScriptCore

Reviewed by Maciej.

  • fix memory leak introduced by the previous change
  • kxmlcore/HashTable.h: Specialize NeedsRef so that it correctly returns true when the value in question is a pair where one of the pair needs a ref and the other of the pair does not.
5:00 PM Changeset in webkit [13708] by justing
  • 2 edits in trunk/WebCore

Reviewed by mjs

I forgot to convert one of the implicit remove/inserts to an explicit remove/insert,
so we were hitting the assert I just added to InsertNodeBeforeCommand that checked for
implicit removes.

  • editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::doApply):
3:43 PM Changeset in webkit [13707] by justing
  • 1 edit in trunk/WebCore/editing/InsertNodeBeforeCommand.cpp

Should fix the build

3:26 PM Changeset in webkit [13706] by mjs
  • 23 edits
    1 add in trunk

LayoutTests:

Reviewed by Anders.

Update prototype chain for the following fix:

  • fast/dom/prototype-chain-expected.txt:

WebCore:

Reviewed by Anders.

  • also removed document.actualEncoding since it is not in any spec or implemented by any other browser


  • DerivedSources.make: add JSDocument.h to results
  • WebCore.xcodeproj/project.pbxproj: Added new files to project
  • bindings/scripts/CodeGeneratorJS.pm: Support for new stuff needed by Document.
  • dom/Document.cpp: (WebCore::Document::readyState): moved impl here from JS bindings (WebCore::Document::inputEncoding): ditto (WebCore::Document::defaultCharset): ditto (WebCore::Document::setCharset): ditto
  • dom/Document.h: (WebCore::Document::charset): added, synonym for inputEncoding. (WebCore::Document::characterSet): ditto
  • dom/Document.idl: Added. Full interface for the Document object.
  • khtml/ecma/JSXMLHttpRequest.cpp: (KJS::JSXMLHttpRequestProtoFunc::callAsFunction): JSDocument, not DOMDocument
  • khtml/ecma/JSXSLTProcessor.cpp: (KJS::XSLTProcessorProtoFunc::callAsFunction): ditto
  • khtml/ecma/kjs_binding.cpp: (KJS::jsStringOrFalse): Added this convenience for the method on Document that bizzarely returns false on failure and a string otherwise.
  • khtml/ecma/kjs_binding.h:
  • khtml/ecma/kjs_css.cpp: (KJS::toJS): renamed for consistency
  • khtml/ecma/kjs_css.h:
  • khtml/ecma/kjs_dom.cpp:
  • removed all traces of DOMDocument (KJS::toJS): JSDocument, not DOMDocument
  • khtml/ecma/kjs_dom.h:
  • khtml/ecma/kjs_html.cpp: (KJS::): (KJS::JSHTMLDocument::JSHTMLDocument): inherit from JSDocument (KJS::JSHTMLDocument::getOwnPropertySlot): ditto (KJS::JSHTMLDocument::put): ditto
  • khtml/ecma/kjs_html.h:
  • khtml/ecma/kjs_traversal.cpp: (KJS::toJS): added overloads (KJS::toNodeFilter): handle JS functions as well as impl NodeFilter objects
  • khtml/ecma/kjs_traversal.h:
  • platform/AtomicString.h: (WebCore::AtomicString::AtomicString): Allow implicit conversion from String.
2:53 PM Changeset in webkit [13705] by justing
  • 6 edits
    4 adds in trunk

LayoutTests:

Reviewed by darin


<http://bugzilla.opendarwin.org/show_bug.cgi?id=8198>
Hitting an assert on undo paste

  • editing/pasteboard/undoable-fragment-removes-expected.checksum: Added.
  • editing/pasteboard/undoable-fragment-removes-expected.png: Added.
  • editing/pasteboard/undoable-fragment-removes-expected.txt: Added.
  • editing/pasteboard/undoable-fragment-removes.html: Added.

WebCore:

Reviewed by darin


<http://bugzilla.opendarwin.org/show_bug.cgi?id=8198>
Hitting an assert on undo paste


ReplaceSelectionCommand was doing a combination of undoable and non-undoable
removes from the ReplacementFragment. On Undo Paste, the undoable removes
couldn't be undone because the tree was in a different state than it was
at the time of the remove. This patch makes all the removes from the fragment
non-undoable. We could make them all undoable, but I can't think of any reason
why we'd want the fragment to be reconstructed on an Undo Paste.

  • editing/AppendNodeCommand.cpp: (WebCore::AppendNodeCommand::doApply): Assert that the node to append isn't already in a tree, since if it is, it will be removed in a non-undoable way.
  • editing/InsertNodeBeforeCommand.cpp: (WebCore::InsertNodeBeforeCommand::doApply): Ditto.
  • editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::doApply): Nodes were being moved from the fragment to the document with undoable inserts. Undoable inserts implicitly remove the node (in a non-undoable way) from its old location if it is already in a tree. I now explicitly remove the nodes from the fragment before inserting them into the document to make it clear that they are being removed in a non-non-undoable way. I also changed the one undoable remove from the fragment to a non-undoable remove.
  • editing/ReplaceSelectionCommand.h: Made ReplacementFragment's non-undoable removeNode public.
2:51 PM Changeset in webkit [13704] by darin
  • 2 edits in trunk/WebCore
  • fixed the build
  • WebCore.xcodeproj/project.pbxproj: Oops! Resolved merge conflict.
2:19 PM Changeset in webkit [13703] by darin
  • 34 edits
    2 adds
    1 delete in trunk

JavaScriptCore:

Reviewed by Maciej.

Change HashMap and HashSet implementation so they fold various types together.
This allows us to implement maps and sets that use RefPtr<WebCore::StringImpl>
and WebCore::String in terms of the underlying raw pointer type, and hence use
-1 for the deleted value.

  • kxmlcore/HashTraits.h: Added a new type to HashTraits, StorageTraits, which is a type to be used when storing a value that has the same layout as the type itself. This is used only for non-key cases. In the case of keys, the hash function must also be considered. Moved emptyValue out of GenericHashTraitsBase into GenericHashTraits. Added a new bool to HashTraits, needsRef, which indicates whether the type needs explicit reference counting. If the type itself has needsRef true, but the storage type has needsRef false, then the HashSet or HashMap has to handle the reference counting explicitly. Added hash trait specializations for all signed integer values that give -1 as the deleted value. Gave all integers StorageTraits of the canonical integer type of the same size so int and long will share code. Gave all pointers and RefPtrs StorageTraits of the appropriately sized integer type. Removed redundant TraitType and emptyValue definitions in the pointer specialization for HashTraits. Added PairBaseHashTraits, which doesn't try to set up needsDestruction and deletedValue. Useful for types where we don't want to force the existence of deletedValue, such as the type of a pair in a HashMap which is not the actual storage type. Removed an unneeded parameter from the DeletedValueAssigner template. Added HashKeyStorageTraits template, which determines what type can be used to store a given hash key type with a given hash function, and specialized it for pointers and RefPtr so that pointer hash tables share an underlying HashTable that uses IntHash.
  • kxmlcore/HashTable.h: Added HashTableConstIteratorAdapter, HashTableIteratorAdapter, NeedsRef, RefCountManagerBase, RefCountManager, HashTableRefCountManagerBase, and HashTableRefCountManager. All are used by both HashSet and HashMap to handle hash tables where the type stored is not the same as the real value type.


  • kxmlcore/HashFunctions.h: Added a new struct named IntTypes that finds an integer type given a sizeof value. Renamed pointerHash to intHash and made it use overloading and take integer parameters. Added an IntHash struct which is a hash function that works for integers. Changed PtrHash to call IntHash with an appropriately sized integer. Made IntHash the default hash function for many integer types. Made PtrHash the default hash function for RefPtr as well as for raw pointers.
  • kxmlcore/HashSet.h: Changed implementation to use a separate "storage type" derived from the new traits. The HashTable will use the storage type and all necessary translation and ref/deref is done at the HashSet level. Also reorganized the file so that the HashSet is at the top and has no inline implementation inside it so it's easy to read the interface to HashSet.
  • kxmlcore/HashMap.h: Changed implementation to use a separate "storage type" derived from the new traits. The HashTable will use the storage type and all necessary translation and ref/deref is done at the HashMap level. Also reorganized the file so that the HashMap is at the top and has no inline implementation inside it so it's easy to read the interface to HashMap.
  • kxmlcore/HashMapPtrSpec.h: Removed. Superceded by optimizations in HashMap itself.
  • JavaScriptCore.xcodeproj/project.pbxproj: Remove HashMapPtrSpec.h, resort files, and also remove some unnecessary build settings from the aggregate target that generates derived sources.
  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Ditto.

WebCore:

Reviewed by Maciej.

  • platform/StringHash.h: Added. Moved hash functions and such for WebCore::String and friends into this file so we don't have to include the hash traits header everywhere. Changed hashing for WebCore::StringImpl and WebCore::String so that they use a raw pointer for the underlying storage type, taking advantage of the new feature added in JavaScriptCore.
  • platform/AtomicString.h: Moved StrHash specialization to StringHash.h.
  • platform/PlatformString.h: Moved StrHash specialization to StringHash.h.
  • platform/StringImpl.h: Moved StrHash, CaseInsensitiveHash, and HashTraits to StringHash.h. Left DefaultHash behind so that you can't get the wrong hash function by accident if you forget to include "StringHash.h".
  • platform/StringImpl.cpp: Added include of StringHash.h and removed RefPtr<StringImpl> HashTraits<RefPtr<StringImpl> >::_deleted, which is the object with a global initializer causing all the trouble!
  • kwq/AccessibilityObjectCache.h: Changed hash function to be IntHash instead of PtrHash.
  • dom/StyledElement.cpp: Changed MappedAttributeKeyTraits to inherit from the generic traits in KXMLCore so we get a StorageType. Also cleaned up a tiny bit by adding default values to the MappedAttributeKey constructor.
  • platform/CharsetNames.cpp: Changed hash traits here to be a new TextEncodingIDHashTraits struct rather than defining new default traits for the integer type since more integer types have default traits in HashTraits.h now. Also added a specialization so this class will share the underlying implementation (since InvalidEncoding happens to be -1).
  • bridge/mac/FrameMac.h:
  • dom/Document.h:
  • dom/xml_tokenizer.h:
  • khtml/xsl/XSLTProcessor.h:
  • kwq/JavaAppletWidget.h:
  • page/FramePrivate.h:
  • page/Page.cpp:
  • platform/AtomicString.cpp:
  • platform/TransferJob.h:
  • rendering/render_applet.h: Added include of StringHash.h.
  • WebCore.xcodeproj/project.pbxproj: Added StringHash.h. Remove unneeded CREATE_HASH_TABLE variable in build settings. Re-sorted some file lists. Added quotes to the CREATE_HASH_TABLE initialization in the rule that builds generated files. Removed various unneeded build settings for that target as well.
  • ForwardingHeaders/kxmlcore/HashTraits.h: Added.
  • other minor cleanup
  • bridge/mac/FrameMac.mm: Sorted includes.
  • dom/Node.cpp: Removed bogus symbol after #endif.
  • khtml/xsl/XSLTProcessor.cpp: Sorted includes. Removed redundant using namespace WebCore.
  • loader/Cache.cpp: Ditto.

WebKitTools:

Reviewed by Maciej.

  • Scripts/check-for-global-initializers: Remove StringImpl from the list of files that are allowed to have global initializers.
1:28 PM Changeset in webkit [13764] by ggaren
  • 4 edits in branches/temp-tree-code/trunk/JavaScriptCore/kjs

Oops. Committed wrong patch. This is with-stack.patch

1:09 PM Changeset in webkit [13763] by ggaren
  • 5 edits in branches/temp-tree-code/trunk/JavaScriptCore/kjs

Committing Eric's patch to unify how nodes know their interpreter state -- with minor tweaks to the ASSERTs. The unified method is for nodes to use a data member rather than virtual method dispatch. This is about a 7% performance win.

11:05 AM Changeset in webkit [13702] by bdakin
  • 2 edits in trunk/WebCore

Reviewed by Darin.

Fix for <rdar://problem/4502311> text-transform:capitalize needs to
treat nbsp as a regular space when ICU changes

There will be future changes in ICU to match the Unicode 4.1
standard which no longer recognizes &nbsp as a word separator. We
need to work around this with text-transform:capitalize because
words after non-breaking spaces still need to be capitalized.

No layout tests added because existing layout tests cover this.

11:02 AM Changeset in webkit [13701] by ap
  • 4 edits
    2 adds in trunk

Reviewed by Darin.

Test: fast/dom/navigator-vendorSub.html

  • khtml/ecma/kjs_navigator.cpp: (KJS::Navigator::getValueProperty): Return an empty string for vendorSub property.
  • khtml/ecma/kjs_navigator.h:
11:02 AM Changeset in webkit [13700] by ggaren
  • 2 edits in trunk/WebKitTools

Reviewed by OMG BETH

  • Scripts/run-testkjs:
  • pipe STDERR to /dev/null by default; new --verbose option overrides this behavior
  • set DYLD_FRAMEWORK_PATH to the webkit-configured path
  • output run command in a format that can be copied and pasted into the terminal to run manually
12:17 AM Changeset in webkit [13762] by ggaren
  • 6 edits
    1 delete in branches/temp-tree-code/trunk/JavaScriptCore

more steps toward integrating the evaluate and execute loops

Note: See TracTimeline for information about the timeline view.