Timeline


and

07/16/06:

21:41 Changeset [15480] by ggaren

Approved by Maciej, RS by Beth.


JSObjectMakeFunction -> JSObjectMakeFunctionWithCallback
JSObjectMakeFunctionWithBody -> JSObjectMakeFunction


because the latter is more common, and more fundamental, than the former.

  • API/APICast.h: (toJS):
  • API/JSBase.h:
  • API/JSCallbackObject.cpp: (KJS::JSCallbackObject::getOwnPropertySlot): (KJS::JSCallbackObject::put): (KJS::JSCallbackObject::deleteProperty): (KJS::JSCallbackObject::getPropertyNames): (KJS::JSCallbackObject::staticValueGetter): (KJS::JSCallbackObject::staticFunctionGetter):
  • API/JSClassRef.cpp: (OpaqueJSClass::OpaqueJSClass): (OpaqueJSClass::~OpaqueJSClass):
  • API/JSClassRef.h:
  • API/JSObjectRef.cpp: (JSClassCreate): (JSObjectMakeFunctionWithCallback): (JSObjectMakeFunction): (OpaqueJSPropertyNameArray::OpaqueJSPropertyNameArray): (JSObjectCopyPropertyNames):
  • API/JSObjectRef.h:
  • API/minidom.c: (main):
  • API/testapi.c: (main):
  • ChangeLog:
  • JavaScriptCore.exp:
21:21 Changeset [15479] by ddkilzer

LayoutTests:

Reviewed by Darin.

  • fast/dom/document-dir-property-expected.txt: Added.
  • fast/dom/document-dir-property.html: Added.

WebCore:

Reviewed by Darin.

Test: fast/dom/document-dir-property.html

  • bindings/js/kjs_html.cpp: (KJS::JSHTMLDocument::getValueProperty): Return an empty string instead of an undefined value for an unset document.dir property.
21:15 Changeset [15478] by ddkilzer

LayoutTests:

Reviewed by Darin.

  • fast/dynamic/move-node-with-selection-expected.checksum: Removed "No newline at end of file" that snuck in as part of the "apply patch" process.

WebCore:

Reviewed by Darin.

  • dom/NodeFilter.idl: Removed "No newline at end of file" that snuck in as part of the "apply patch" process.
  • manual-tests/input-empty-on-focus.html: Removed "Property changes" that snuck in as part of the "apply patch" process.

WebKitTools:

Reviewed by Darin.

  • BuildSlaveSupport/build.webkit.org-config/buildbot.css: Removed "No newline at end of file" that snuck in as part of the "apply patch" process.
  • GdkLauncher/mk: Removed "Property changes" that snuck in as part of the "apply patch" process.
20:59 Changeset [15477] by ddkilzer

WebKitTools:

Reviewed by Darin.

  • Scripts/svn-apply: (addDirectoriesIfNeeded): Don't try to add a directory that's already in svn. (checksum): Added. (patch): Use patch(1) for non-binary additions and deletions.
  • Scripts/svn-unapply: (checksum): Added. (patch): Use patch(1) for reverting non-binary additions and deletions. (revertDirectories): Don't try to revert a directory that hasn't changed in svn.
20:59 Changeset [15476] by darin
  • try to fix Windows build
  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Added some recently added files, removed some recently removed.
19:51 Changeset [15475] by darin
  • fixed a couple of files I checked in wrong
  • fast/html/body-offset-properties-expected.txt: Removed property cruft.
  • fast/html/body-offset-properties.html: Ditto.
19:00 Changeset [15474] by ggaren

Reviewed by Maciej.


  • Change getProperty* to return undefined, rather than NULL, for missing properties, since that's what the spec says. Also added exception out parameters to the *Index functions, because they can call through to the regular functions, which can throw for custom objects.
  • API/JSObjectRef.cpp: (JSObjectGetProperty): (JSObjectGetPropertyAtIndex): (JSObjectSetPropertyAtIndex):
  • API/JSObjectRef.h:
  • API/testapi.c: (main):
18:48 Changeset [15473] by ggaren

Reviewed by Maciej.


  • Properly document and handle NULL callbacks for static properties. We throw an exception in any case other than a ReadOnly property with a NULL setProperty callback, because a NULL callback almost certainly indicates a programming error. Also throw an exception if hasProperty returns true for a property that getProperty can't get.


  • If a static setProperty callback returns 'false', to indicate that the property was not set, we no longer forward the set request up the class chain, because that's almost certainly not what the programmer expected.
  • API/JSCallbackObject.cpp: (KJS::JSCallbackObject::getOwnPropertySlot): (KJS::JSCallbackObject::put): (KJS::JSCallbackObject::staticValueGetter): (KJS::JSCallbackObject::staticFunctionGetter): (KJS::JSCallbackObject::callbackGetter):
  • API/JSObjectRef.h:
  • API/minidom.js:
  • API/testapi.c: (MyObject_hasProperty):
  • API/testapi.js:
18:47 Changeset [15472] by mjs
  • fixed typo in expected results
  • fast/js/for-in-avoid-duplicates-expected.txt:
17:37 Changeset [15471] by darin

LayoutTests:

Reviewed by John Sullivan (new test, not the changes to existing ones).

  • fast/html/body-offset-properties-expected.txt: Added.
  • fast/html/body-offset-properties.html: Added.
  • editing/execCommand/findString-2.html: Update to not depend on the buggy body.offseLeft/Top. Instead hardcode the default body margin of 8.
  • editing/pasteboard/drop-text-without-selection.html: Ditto.
  • editing/selection/click-before-and-after-table.html: Ditto.
  • editing/selection/mixed-editability-1.html: Ditto.
  • fast/table/click-near-anonymous-table.html: Ditto.
  • editing/selection/drag-to-contenteditable-iframe.html: Remove unnecessary use of body.offsetLeft/Top that are always 0.

WebCore:

Reviewed by John Sullivan.

The problem turns out to be the fact that body.offsetLeft is returning a non-zero value.
I have no idea why the menus worked in Tiger Safari, because body.offsetLeft behavior has not changed.
Presumably some other bug that we fixed had been compensating.

Test: fast/html/body-offset-properties.html

  • rendering/RenderObject.cpp: (WebCore::RenderObject::offsetLeft): Always return 0 for any object without an offsetParent. (WebCore::RenderObject::offsetTop): Ditto. (WebCore::RenderObject::offsetParent): Return 0 for the body (treat as a special case).
17:25 Changeset [15470] by bdakin

Reviewed by Maciej.

Fix for <rdar://problem/4616595> REGRESSION: Problems with world
clock widget clock hand motion on 9A211 + 4604574

The second hand on the widget was jiggling because the rotation was
messing up the use of the affine transformation matrix while
rounding to pixel boundaries in device space. We are mainly
concerned with rounding to pixel boundaries with the scale in mind,
so this patch extracts the scale to device space from the matrix,
and rounds to pixel boundaries using only the scale. This doesn't
seem like it is a perfect solution, but it definitely solves the
immediate problem. We will probably need to re-address what should
happen to avoid pixel cracks with rotations at non-integral scale
factors.

  • platform/cg/GraphicsContextCG.cpp: (WebCore::GraphicsContext::roundToDevicePixels):
15:17 Changeset [15469] by ggaren

Reviewed by Maciej.


  • Added names to functions.


  • Removed GetPrivate/SetPrivate from callbackFunctions and callbackConstructors. The private data idiom is that a JS object stores its native implementation as private data. For functions and constructors, the native implementation is nothing more than the callback they already store, so supporting private data, too, confuses the idiom. If you *really* want, you can still create a custom function with private data.
  • API/JSCallbackConstructor.cpp:
  • API/JSCallbackConstructor.h:
  • API/JSCallbackFunction.cpp: (KJS::JSCallbackFunction::JSCallbackFunction):
  • API/JSCallbackFunction.h:
  • API/JSCallbackObject.cpp: (KJS::JSCallbackObject::staticFunctionGetter):
  • API/JSObjectRef.cpp: (JSObjectMakeFunction): (JSObjectMakeFunctionWithBody): (JSObjectGetPrivate): (JSObjectSetPrivate):
  • API/JSObjectRef.h:
  • API/minidom.c: (main):
  • API/testapi.c: (main):
14:06 Changeset [15468] by mjs

JavaScriptCore:

Reviewed by Darin.


  • switch property lists to be vector+set of Identifiers instead of list of References


This has the following benefits:


  • no duplicates in property lists
  • simplifies API calls
  • probably more efficient, since linked list is gone
  • entirely removed Reference, ReferenceList and ProtectedReference types from the API
  • kjs/PropertyNameArray.cpp: Added. (KJS::PropertyNameArray::add): Check set, if not already there, add to vector.
  • kjs/PropertyNameArray.h: Added. (KJS::PropertyNameArray::PropertyNameArray): Newly added type, combines a set and a vector to make a unique but ordered list of identifiers. (KJS::PropertyNameArray::begin): ditto (KJS::PropertyNameArray::end): ditto (KJS::PropertyNameArray::size): ditto (KJS::PropertyNameArray::operator[]): ditto
  • kjs/array_instance.h:
  • kjs/array_object.cpp: (ArrayInstance::getPropertyNames): renamed from getPropertyList, updated for PropertyNameArray (ArrayInstance::setLength): updated for PropertyNameArray (ArrayInstance::pushUndefinedObjectsToEnd): ditto
  • kjs/nodes.cpp: (ForInNode::execute): updated for PropertyNameArray
  • kjs/nodes.h:
  • kjs/object.cpp: (KJS::JSObject::getPropertyNames): renamed from getPropertyList, updated for PropertyNameArray
  • kjs/object.h:
  • kjs/property_map.cpp: (KJS::PropertyMap::getEnumerablePropertyNames): updated for PropertyNameArray (KJS::PropertyMap::getSparseArrayPropertyNames): ditto
  • kjs/property_map.h:
  • kjs/protected_reference.h: Removed.
  • kjs/reference.cpp: Removed.
  • kjs/reference.h: Removed.
  • kjs/reference_list.cpp: Removed.
  • kjs/reference_list.h: Removed.
  • kjs/scope_chain.cpp: (KJS::ScopeChain::print): Use PropertyNamesArray instead of ReferenceList.
  • kjs/string_object.cpp: (StringInstance::getPropertyNames): Updated for new approach.
  • kjs/string_object.h:
  • kjs/ustring.h:
  • API/APICast.h: (toJS): Added overload for PropertyNameAccumulatorRef / PropertyNameArray* (toRef): ditto
  • API/JSBase.h:
  • API/JSCallbackObject.cpp: (KJS::JSCallbackObject::getPropertyNames): Fixed for new API.
  • API/JSCallbackObject.h:
  • API/JSObjectRef.cpp: (JSPropertyNameArray::JSPropertyNameArray): Type used for a publicly vended JSPropertyNameArrayRef. (JSObjectCopyPropertyNames): New API call - renamed / refactored from JSObjectCreatePropertyList (JSPropertyNameArrayRetain): new retain call for JSPropertyNameArray. (JSPropertyNameArrayRelease): new release call for - " -. (JSPropertyNameArrayGetCount): Instead of having to use a stateful enumerator you can now get the count and items in any order. (JSPropertyNameArrayGetNameAtIndex): See above. (JSPropertyNameAccumulatorAddName): What you add properties to is now an opaque accumulator object.
  • API/JSObjectRef.h: Prototyped new functions, removed old ones
  • JavaScriptCore.exp: Updated exported symbols.
  • JavaScriptCore.xcodeproj/project.pbxproj: Added new files, removed old.
  • API/testapi.c: (MyObject_getPropertyNames): Renamed / fixed callback to fit new paradigm. (main): Updated for new API.

JavaScriptGlue:

Reviewed by Darin.

  • switch property lists to be vector+set of Identifiers instead of list of References


  • JSUtils.cpp: (KJSValueToCFTypeInternal): updated for JSC SPI changes
  • JSValueWrapper.cpp: (JSValueWrapper::JSObjectCopyPropertyNames): ditto
  • UserObjectImp.cpp: (UserObjectImp::getPropertyNames): ditto
  • UserObjectImp.h:

LayoutTests:

Reviewed by Darin.


  • new test case and updated results for property list changes
  • fast/js/for-in-avoid-duplicates-expected.txt: Added.
  • fast/js/for-in-avoid-duplicates.html: Added.
  • fast/js/kde/Array-expected.txt:
  • fast/js/resources/for-in-avoid-duplicates.js: Added.

07/15/06:

22:45 Changeset [15467] by thatcher

JavaScriptGlue has no need to look for frameworks in WebKit's umbrella framework path anymore.

22:22 Changeset [15466] by thatcher

WebCore has no need to look for frameworks in WebKit's umbrella framework path anymore.

19:26 Changeset [15465] by darin
  • oops, missed a few more arrays that had to be const
  • API/JSNode.c: (JSNodePrototype_appendChild): Added const. (JSNodePrototype_removeChild): Ditto. (JSNodePrototype_replaceChild): Ditto. (JSNode_construct): Ditto.
  • API/JSNodeList.c: (JSNodeListPrototype_item): Ditto.
  • API/JSObjectRef.cpp: (JSObjectMakeFunctionWithBody): Ditto. (JSObjectCallAsFunction): Ditto. (JSObjectCallAsConstructor): Ditto.
  • API/minidom.c: (print): Ditto.
  • API/testapi.c: (MyObject_callAsFunction): Ditto. (MyObject_callAsConstructor): Ditto. (print_callAsFunction): Ditto. (myConstructor_callAsConstructor): Ditto.
19:18 Changeset [15464] by darin

Reviewed by Maciej.

  • API/JSNode.h: Made an array parameter const.
  • API/JSObjectRef.h: Made array parameters const. Fixed a comment.
18:40 Changeset [15463] by ggaren

Reviewed by Maciej.


  • JSObjectMakeFunctionWithBody includes a function name and named parameters now.
  • API/JSObjectRef.cpp: (JSObjectMakeFunctionWithBody):
  • API/JSObjectRef.h:
  • API/testapi.c: (assertEqualsAsUTF8String): More informative failure reporting. (main): Test more function cases.
18:28 Changeset [15462] by ggaren

Reviewed by Maciej.

  • Moved the arguments passed to JSClassCreate into a single structure, called JSClassDefinition. This will enable easier structure migration/versioning in the future, if necessary.


  • Added support for class names.


  • kJSClassDefinitionNull replaces kJSObjectCallbacksNone.


  • JSClass is becoming a fairly complex struct, so I migrated all of its implementation other than reference counting to the sruct.


  • Also moved JSClass* functions in the API to JSObjectRef.cpp, since they're declared in JSObjectRef.h


  • Also added some more informative explanation to the class structure doc.
14:03 Changeset [15461] by darin
  • fix mistake from fix for 8952 that was breaking layout tests
  • editing/SelectionController.cpp: (WebCore::SelectionController::nodeWillBeRemoved): Justin was right! I changed the behavior of the function by accident. Changed it back so that it doesn't blow away the selection on the DOM side in the case where it didn't before.

I will write 100 times on the blackboard: "When Justin says something about editing,
assume he is right."

13:00 Changeset [15460] by darin
  • try to fix Windows build
  • WebCore.vcproj/WebCore/WebCore.vcproj: Added StreamingTextDecoderICU.cpp/h.
12:41 Changeset [15459] by darin

LayoutTests:

Reviewed by John Sullivan.

  • fast/dynamic/move-node-with-selection-expected.checksum: Added.
  • fast/dynamic/move-node-with-selection-expected.png: Added.
  • fast/dynamic/move-node-with-selection-expected.txt: Added.
  • fast/dynamic/move-node-with-selection.html: Added.

WebCore:

Reviewed by John Sullivan.

Test: fast/dynamic/move-node-with-selection.html

  • editing/SelectionController.cpp: (WebCore::SelectionController::nodeWillBeRemoved): Call updateRendering before calling clearSelection(), since it's important to do any work beforehand, and there are calls inside clearSelection that will indirectly do an updateRendering. Also change code to make fewer assumptions about object lifetime.
12:27 Changeset [15458] by darin

LayoutTests:

Reviewed by John Sullivan.

  • fast/lists/numeric-markers-outside-list-expected.checksum: Added.
  • fast/lists/numeric-markers-outside-list-expected.png: Added.
  • fast/lists/numeric-markers-outside-list-expected.txt: Added.
  • fast/lists/numeric-markers-outside-list.html: Added.

WebCore:

Reviewed by John Sullivan.

Test: fast/lists/numeric-markers-outside-list.html

  • rendering/RenderListItem.cpp: (WebCore::previousListItem): Look for list items, even when we're outside any list.
10:22 Changeset [15457] by adele

Reviewed by John.

  • Fix for <rdar://problem/4593970> REGRESSION (NativeTextField): autofill menu disappears after typing a 2nd character

This was caused by composite editing commands, (like typing or pasting) that include a DeleteCommand, being
interpreted by the form delegate as an actual delete. This fix doesn't notify the form delegate if the deletion is
part of an editing command to replace the selected text.

  • editing/DeleteSelectionCommand.h: Added m_replace to keep track of whether this deletion is part of a composite command to replace the text being deleted.
  • editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::DeleteSelectionCommand): Initialize m_replace. (WebCore::DeleteSelectionCommand::doApply): Only notify the form delegate of the deletion if the text is not being replaced.
  • editing/CompositeEditCommand.h:
  • editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::deleteSelection): Added replace argument to construct DeleteSelectionCommand.


  • editing/InsertTextCommand.cpp: (WebCore::InsertTextCommand::input): Call deleteSelection with replace argument.
  • editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::doApply): ditto.
09:31 Changeset [15456] by ggaren

LayoutTests:

Reviewed by Maciej.


Layout test for crash when setting the dir property on a document with no body.

  • fast/dom/dir-no-body-expected.txt: Added.
  • fast/dom/dir-no-body.html: Added.

WebCore:

Reviewed by Maciej, tweaked to match Darin's patch.


  • Fixed <rdar://problem/4631837> REGRESSION: Reproducible crash on FCKeditor demo (9911)


  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/kjs_html.cpp: (KJS::JSHTMLDocument::putValueProperty): Check for a null body element before forwarding the put request to it. I confirmed that no other parts of the file use 'body' or 'bodyElement' without checking for null.


Also, use 'body' rather than 'bodyElement' because dir can bet set on
any element, not just HTMLBodyElement.

08:30 Changeset [15455] by darin

JavaScriptCore:

Reviewed by Geoff.

Test: fast/js/regexp-extended-characters-more.html

  • pcre/pcre_exec.c: (match): Got rid of utf16Length local variable to guarantee there's no extra stack usage in recursive calls. Fixed two places in the PCRE_UTF16 code that were using the length variable, which is the UTF-8 length of a character in the pattern, to move in the UTF-16 subject string. Instead they hardcode lengths of 1 and 2 since the code already handles BMP characters and surrogate pairs separately. Also fixed some DPRINTF so I could compile with DEBUG on. (pcre_exec): Changed a place that was checking for multibyte characters in the subject string to use ISMIDCHAR. Instead it was using hardcoded logic that was right for UTF-8 but wrong for UTF-16.
  • pcre/pcre_compile.c: (pcre_compile2): Fixed a DPRINTF so I could compile with DEBUG on.

LayoutTests:

Reviewed by Geoff.

  • fast/js/regexp-extended-characters-more-expected.txt: Added.
  • fast/js/regexp-extended-characters-more.html: Added.
  • fast/js/resources/regexp-extended-characters-more.js: Added.
08:21 Changeset [15454] by darin

LayoutTests:

Reviewed by Adele.

  • fast/forms/input-text-enter-expected.txt: Added.
  • fast/forms/input-text-enter.html: Added.

WebCore:

Reviewed by Adele.

  • bridge/mac/FrameMac.mm: (WebCore::FrameMac::doTextFieldCommandFromEvent): Add a null check to fix the crash, and a FIXME explaining why this is not necessarily enough for the future.
  • html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler): Consume Enter key keypress events even if the element is not in a form.
  • platform/mac/KeyEventMac.mm: (WebCore::keyIdentifierForKeyEvent): Added \n to the characters that turn into "Enter". Actual keyboard events always are \r or \003 on the Macintosh, but in layout tests we can use \n, and everything other than the code path here works, so worth fixing.
08:14 Changeset [15453] by darin

LayoutTests:

Reviewed by John Sullivan.

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

WebCore:

Reviewed by John Sullivan.

Test: fast/forms/select-selected.html

  • rendering/RenderMenuList.h:
  • rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::updateFromElement): Added code to map the selected option index to a list index before using it to index into the list. (WebCore::RenderMenuList::showPopup): Added code to map the selection option index to a list index before passing it to the menu renderer. (WebCore::RenderMenuList::valueChanged): Added code to map the list index back to a option index before calling setSelectedIndex (that function takes an option index).
08:09 Changeset [15452] by darin

WebCore:

Reviewed by John Sullivan.

  • bindings/objc/DOM.mm: (-[DOMNode addEventListener:::]): Moved into DOMEventTarget category. (-[DOMNode removeEventListener:::]): Ditto. (-[DOMNode dispatchEvent:]): Ditto.
  • WebCore.xcodeproj/project.pbxproj: Allow Xcode to do its thing.

WebKit:

Reviewed by John Sullivan.

  • WebView/WebHTMLView.m: (-[WebHTMLView _documentRange]): Moved into WebHTMLViewFileInternal category. (-[WebHTMLView selectionRect]): Moved into WebDocumentPrivateProtocols category. (-[WebHTMLView selectionView]): Ditto. (-[WebHTMLView selectionImageForcingWhiteText:]): Ditto. (-[WebHTMLView selectionImageRect]): Ditto. (-[WebHTMLView pasteboardTypesForSelection]): Ditto. (-[WebHTMLView selectAll]): Ditto. (-[WebHTMLView deselectAll]): Ditto. (-[WebHTMLView string]): Ditto. (-[WebHTMLView _attributeStringFromDOMRange:]): Ditto. (-[WebHTMLView attributedString]): Ditto. (-[WebHTMLView selectedString]): Ditto. (-[WebHTMLView selectedAttributedString]): Ditto. (-[WebHTMLView supportsTextEncoding]): Ditto. (-[WebHTMLView _canProcessDragWithDraggingInfo:]): Moved into WebDocumentInternalProtocols. (-[WebHTMLView _isMoveDrag]): Ditto. (-[WebHTMLView _isNSColorDrag:]): Ditto. (-[WebHTMLView draggingUpdatedWithDraggingInfo:actionMask:]): Ditto. (-[WebHTMLView draggingCancelledWithDraggingInfo:]): Ditto. (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): Ditto. (-[WebHTMLView elementAtPoint:]): Ditto. (-[WebHTMLView elementAtPoint:allowShadowContent:]): Ditto.
  • WebKit.xcodeproj/project.pbxproj: Let Xcode 2.3 do its thing.
02:36 Changeset [15451] by mjs

Reviewed by Anders.

<rdar://problem/4632144> REGRESSION: table column tests failing as a result of very recent fix

  • rendering/RenderTable.cpp: (WebCore::RenderTable::addChild): columns and colgroups are valid children of a table too, not just table sections!
02:04 Changeset [15450] by andersca

WebCore:

2006-07-15 Anders Carlsson <acarlsson@apple.com>

Reviewed by Darin.

http://bugzilla.opendarwin.org/show_bug.cgi?id=9866
<rdar://problem/4631561>
REGRESSION: Repro crash from mangleme using iframe, only from server.


  • html/HTMLIFrameElement.cpp: (WebCore::HTMLIFrameElement::attach): Add null check for contentFrame() since content frames won't be created for invalid URLs.

LayoutTests:

2006-07-15 Anders Carlsson <acarlsson@apple.com>

Reviewed by Darin.

http://bugzilla.opendarwin.org/show_bug.cgi?id=9866
<rdar://problem/4631561>
REGRESSION: Repro crash from mangleme using iframe, only from server.

  • http/tests/misc/iframe-invalid-source-crash-expected.txt: Added.
  • http/tests/misc/iframe-invalid-source-crash.html: Added.

07/14/06:

23:53 Changeset [15449] by ap

Reviewed by Darin.

Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=4195
REGRESSION: KOI8-U encoding no longer supported.

Tests:

  • http/tests/misc/BOM-override.pl
  • http/tests/misc/BOM-override-script.html
  • fast/encoding/charset-koi8-u.html
  • fast/encoding/charset-x-nextstep.html

Restored a TEC code path for encodings that are not supported by ICU (but which currently
passes all layout tests even by itself with ICU disabled). A lot of refactoring is
still needed - most importantly, round-tripping encoding names via CFStringEncoding
makes little sense now.

  • WebCore.exp:
  • bridge/mac/WebCoreTextDecoder.h: Removed.
  • bridge/mac/WebCoreTextDecoder.mm: Removed. WebCoreTextDecoder was not used anywhere since WebTextView was moved into WebCore.
  • loader/Decoder.cpp: (Decoder::Decoder): (Decoder::setEncodingName): (Decoder::decode): Use StreamingTextDecoder::create().
  • platform/StreamingTextDecoder.cpp: (WebCore::StreamingTextDecoder::create): (WebCore::StreamingTextDecoder::~StreamingTextDecoder):
  • platform/StreamingTextDecoder.h: StreamingTextDecoder is just an abstract interface to implementations now.
  • platform/StreamingTextDecoderICU.cpp: Added. (WebCore::StreamingTextDecoderICU::StreamingTextDecoderICU): (WebCore::StreamingTextDecoderICU::~StreamingTextDecoderICU): (WebCore::StreamingTextDecoderICU::releaseICUConverter): (WebCore::StreamingTextDecoderICU::textEncodingSupported): (WebCore::StreamingTextDecoderICU::convertUTF16): (WebCore::StreamingTextDecoderICU::convertIfASCII): (WebCore::StreamingTextDecoderICU::createICUConverter): (WebCore::StreamingTextDecoderICU::appendOmittingBOM): (WebCore::StreamingTextDecoderICU::convertUsingICU): (WebCore::StreamingTextDecoderICU::convert): (WebCore::StreamingTextDecoderICU::toUnicode): (WebCore::StreamingTextDecoderICU::fromUnicode):
  • platform/StreamingTextDecoderICU.h: Added. Renamed from StreamingTextDecoder; added a way to tell whether the encoding is actually supported by the decoder; minor cleanup.
  • platform/TextEncoding.cpp: (WebCore::TextEncoding::effectiveEncoding): Moved from StreamingTextDecoder. (WebCore::TextEncoding::toUnicode): Use StreamingTextDecoder::create(). (WebCore::TextEncoding::fromUnicode): Moved to StreamingTextDecoderICU.


  • platform/TextEncoding.h: Changed APPLE to PLATFORM(MAC); added effectiveEncoding().
  • platform/mac/StreamingTextDecoderMac.cpp: Added. (WebCore::StreamingTextDecoderMac::StreamingTextDecoderMac): (WebCore::StreamingTextDecoderMac::~StreamingTextDecoderMac): (WebCore::StreamingTextDecoderMac::releaseTECConverter): (WebCore::StreamingTextDecoderMac::textEncodingSupported): (WebCore::StreamingTextDecoderMac::convertUTF16): (WebCore::StreamingTextDecoderMac::convertIfASCII): (WebCore::StreamingTextDecoderMac::createTECConverter): (WebCore::StreamingTextDecoderMac::appendOmittingBOM): (WebCore::StreamingTextDecoderMac::convertOneChunkUsingTEC): (WebCore::StreamingTextDecoderMac::convertUsingTEC): (WebCore::StreamingTextDecoderMac::convert): (WebCore::StreamingTextDecoderMac::toUnicode): (WebCore::StreamingTextDecoderMac::fromUnicode):
  • platform/mac/StreamingTextDecoderMac.h: Added. (WebCore::StreamingTextDecoderMac::convert): This is a TEC+CFString code path for decoding, basically restored from a year-old revision.
  • platform/mac/TextEncodingMac.cpp: Removed. Code moved to StreamingTextDecoderMac.
  • WebCore.xcodeproj/project.pbxproj:
23:37 Changeset [15448] by thatcher

Build fix and versioning.

23:36 Changeset [15447] by thatcher

New tag (part 2)

23:35 Changeset [15446] by thatcher

new tag.

23:32 Changeset [15445] by thatcher

Build fix for case-sensitive file systems.

21:16 Changeset [15444] by ggaren

RS by Maciej.


Global replace in the API of argc/argv with argumentCount/arguments.

21:10 Changeset [15443] by ggaren

Reviewed by Maciej.


  • Finalized exception handling in the API.


setProperty can throw because it throws for built-in arrays. getProperty
and deleteProperty can throw because setProperty can throw and we want
to be consistent, and also because they seem like "actions." callAsFunction,
callAsConstructor, and hasInstance can throw, because they caan throw for
all built-ins.


toBoolean can't throw because it's defined that way in the spec.


  • Documented that toBoolean and toObject can't be overridden by custom objects because they're defined that way in the spec.
19:32 Changeset [15442] by thatcher

New tag.

19:25 Changeset [15441] by thatcher

LayoutTests:

Rolling out this fix from r15358 since it isn't resolved.

2006-07-11 Justin Garcia <justin.garcia@apple.com>

Reviewed by levi & thatcher

<http://bugzilla.opendarwin.org/show_bug.cgi?id=9642>
GMail Editor: Operations that use drop down menus blow away the selection

  • editing/selection/drag-to-contenteditable-iframe-expected.txt:
  • editing/selection/subframe-with-selection-expected.checksum: Added.
  • editing/selection/subframe-with-selection-expected.png: Added.
  • editing/selection/subframe-with-selection-expected.txt: Added.
  • editing/selection/subframe-with-selection.html: Added.

WebKit:

Rolling out this fix from r15358 since it isn't resolved.

2006-07-11 Justin Garcia <justin.garcia@apple.com>

Reviewed by levi & thatcher

<http://bugzilla.opendarwin.org/show_bug.cgi?id=9642>
GMail Editor: Operations that use drop down menus blow away the selection

  • WebView/WebHTMLView.m: (-[NSArray maintainsInactiveSelection]): Maintain an inactive selection when resigning as first responder if the selection is editable or if the WebView tells us to.
  • WebView/WebView.m: (-[WebView maintainsInactiveSelection]): Just because a WebView is editable doesn't mean selections inside subframes will be. Return NO by default.
19:14 Changeset [15440] by thatcher

Versioning

17:53 Changeset [15439] by thatcher

<rdar://problem/4623957> SWB: gcc-5412 (new?) objc warning causes WebCore project failure

Build fix with the new GCC. Removes forward declarations of protocols.

  • Misc/WebSearchableTextView.h:
  • WebCoreSupport/WebSubresourceLoader.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebView/WebDocumentInternal.h:
  • WebView/WebDocumentPrivate.h:
  • WebView/WebHTMLView.h:
  • WebView/WebPDFView.h:
  • WebView/WebScriptDebugDelegatePrivate.h:
17:24 Changeset [15438] by thatcher

<rdar://problem/4623957> SWB: gcc-5412 (new?) objc warning causes WebCore project failure

Made a DOMNode category in DOMEvents.h that lets DOMNode conform to the
DOMEventTarget protocol that works with GCC 5412.

Removed forward declarations of WebCoreWidgetHolder and imported WebCoreWidgetHolder.h.

Removed all <Cocoa/Cocoa.h> and <Foundation/Foundation.h> imports in other headers,
we import <Cocoa/Cocoa.h> in the prefix header for ObjC.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMCore.h:
  • bindings/objc/DOMEvents.h:
  • bridge/mac/FormDataMac.h:
  • bridge/mac/WebCoreAXObject.h:
  • bridge/mac/WebCoreCache.h:
  • bridge/mac/WebCoreEncodings.h:
  • bridge/mac/WebCoreFrameBridge.h:
  • bridge/mac/WebCoreFrameNamespaces.h:
  • bridge/mac/WebCoreJavaScript.h:
  • bridge/mac/WebCorePageBridge.h:
  • bridge/mac/WebCorePageState.h:
  • bridge/mac/WebCoreResourceLoader.h:
  • bridge/mac/WebCoreScriptDebugger.h:
  • bridge/mac/WebCoreSettings.h:
  • bridge/mac/WebCoreStringTruncator.h:
  • bridge/mac/WebCoreStringTruncator.mm:
  • bridge/mac/WebCoreTextDecoder.h:
  • bridge/mac/WebDashboardRegion.h:
  • kcanvas/device/quartz/KRenderingDeviceQuartz.mm:
  • platform/mac/CookieJar.mm:
  • platform/mac/DeprecatedStringMac.mm:
  • platform/mac/FontDataMac.mm:
  • platform/mac/FoundationExtras.h:
  • platform/mac/TextBoundaries.mm:
  • platform/mac/WebCoreHistory.h:
  • platform/mac/WebCoreHistory.m:
  • platform/mac/WebCoreKeyGenerator.h:
  • platform/mac/WebCoreTextArea.h:
  • platform/mac/WebCoreTextField.h:
  • platform/mac/WebCoreTextRenderer.h:
  • platform/mac/WebCoreView.h:
  • platform/mac/WebCoreWidgetHolder.h:
15:39 Changeset [15437] by ggaren

JavaScriptCore:

Reviewed by Maciej.


  • Implemented ref-counting of JSContexts by splitting into two datatypes: JSGlobalContext, which you can create/retain/release, and JSContext, which you can't.


Internally, you retain a JSGlobalContext/ExecState by retaining its
interpreter, which, in the case of a global ExecState, owns it.


  • Also made ~Interpreter() protected to catch places where Interpreter is manually deleted. (Can't make it private because some crazy fool decided it would be a good idea to subclass Interpreter in other frameworks. I pity da fool.)
  • API/APICast.h: (toJS): Added cast for new JSGlobalContext
  • API/JSStringRef.h: Changed vague "you must" language to more specific (but, ultimately, equally vague) "behavior is undefined if you don't" language. (KJS::Interpreter::Interpreter): Factored more common initialization into init()
  • kjs/interpreter.h: (KJS::Interpreter::ref): new (KJS::Interpreter::deref): new (KJS::Interpreter::refCount): new
  • kjs/testkjs.cpp: (doIt): Ref-count the interpreter.

JavaScriptGlue:

Reviewed by Maciej.


  • Updated JSInterpreter to work with Interpreter ref-counting in JavaScriptCore.

(JSInterpreter::JSInterpreter::~JSInterpreter): Now protected to catch
manual delete.

WebCore:

Reviewed by Maciej.

  • Updated ScriptInterpreter to work with Interpreter ref-counting in JavaScriptCore.

(KJS::ScriptInterpreter::~ScriptInterpreter): Now protected to catch
manual delete.

14:21 Changeset [15436] by brmorris

2006-07-14 brmorris <bradley.morrison@nokia.com>

Reviewed by zbujtas@gmail.com. Fix for:


http://bugzilla.opendarwin.org/show_bug.cgi?id=9919


  • prepare-ChangeLog.bat: Match Changelog subdir location on '/'
  • refresh_zips.bat: Added.
13:54 Changeset [15435] by andersca

2006-07-14 Anders Carlsson <acarlsson@apple.com>

Reviewed by Adele and Justin.

http://bugzilla.opendarwin.org/show_bug.cgi?id=9658
<rdar://problem/4613948>
REGRESSION: Check Spelling does not work in textarea elements


  • bridge/mac/FrameMac.mm: (WebCore::FrameMac::advanceToNextMisspelling): Don't use setStartBefore or setEndAfter on the search range because for shadow trees, there is no notion of before and after. Instead, use setStart and setEnd and pass in the start and end indices respectively.


  • dom/Range.cpp: (WebCore::Range::checkNodeBA): Allow range operations on shadow trees.
  • manual-tests/form-element-spelling.html: Added.
13:53 Changeset [15434] by mjs

Reviewed by Geoff.


  • removed bool return value from JSObjectSetProperty, since it is inefficient and also doesn't work quite right
  • added JSObjectGetPropertyAtIndex and JSObjectSetPropertyAtIndex
  • API/JSObjectRef.cpp: (JSObjectSetProperty): Removed return value and canPut stuff. (JSObjectGetPropertyAtIndex): Added. (JSObjectSetPropertyAtIndex): Added.
  • API/JSObjectRef.h: Prototyped and documented new functions.
13:35 Changeset [15433] by bdakin

Reviewed by Hyatt.

Fix for <rdar://problem/4621660> REGRESSION: Safari crashing in
WebCore::FrameView::updateOverflowStatus

m_viewportRenderer is never initialized for framesets, and it
shouldn't be. So we just need to nil-check for it in
updateOverflowStatus() and return early.

  • page/FrameView.cpp: (WebCore::FrameView::updateOverflowStatus): Nil check.
13:29 Changeset [15432] by brmorris

2006-07-11 brmorris <bradley.morrison@nokia.com>

Reviewed by dacarson.


Fix for:
http://bugzilla.opendarwin.org/show_bug.cgi?id=9755


  • ChangeLog: Re-arranged all ChangeLog entry locations.
  • JavaScriptCore/ChangeLog: Stripped to S60WebKit only.
  • MemoryManager/ChangeLog: Added.
  • S60Internals/ChangeLog: Added.
  • S60Tools/ChangeLog: Added.
  • S60WebUi/ChangeLog: Added.
  • WebCore/ChangeLog: Added.
  • WebKit/ChangeLog: Re-arranged.
13:07 Changeset [15431] by brmorris

2006-07-11 brmorris <bradley.morrison@nokia.com>

Reviewed by zbujtas@gmail.com.


Fix for:
http://bugzilla.opendarwin.org/show_bug.cgi?id=9852


  • runATF.bat: Now supports SDK 3rd ed maintenance release.

Calls Epoc.exe directly

  • emu.bat: Calls Epoc.exe directly
12:09 Changeset [15430] by adele

WebCore:

RS by Darin.

Backing out fix for <rdar://problem/4604703>
REGRESSION (NativeTextField): Focus is not removed from password field after I ctrl-click into a different field

Darin had a better fix in WebKit for this.

  • bridge/mac/FrameMac.mm: (WebCore::FrameMac::sendContextMenuEvent):

WebKit:

Reviewed by Adele.

  • WebView/WebHTMLView.m: (-[NSArray menuForEvent:]): Set handlingMouseDownEvent to YES while calling sendContextMenuEvent: on the bridge.
11:53 Changeset [15429] by adele

Reviewed by Darin.

  • Fix for <rdar://problem/4614054> REGRESSION: Safari submits forms when the Return key is hit to complete inline inputs
  • page/Frame.h: (WebCore::Frame::inputManagerHasMarkedText): Added.
  • bridge/mac/FrameMac.h: ditto.
  • bridge/mac/FrameMac.mm: (WebCore::FrameMac::inputManagerHasMarkedText): Added. Asks the input manager if there's marked text.
  • html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler): For text fields, don't submit the form on Enter if the input manager says there's marked text. I added this code for all text field paths. For widgets, WebCoreTextField.mm has code to deal with this case. But as we convert search, password, and isindex, they will need to do this check too.
10:41 Changeset [15428] by ggaren

Reviewed by Beth.


Moved JSCheckScriptSyntax, JSEvaluateScript, and JSGarbageCollect into
JSBase.h/.cpp. They don't belong in the value-specific or context-specific
files because they're not part of the value or context implementations.

  • API/JSBase.h:
  • API/JSContextRef.cpp: (JSContextGetGlobalObject):
  • API/JSContextRef.h:
  • API/JSValueRef.cpp: (JSValueUnprotect):
  • API/JSValueRef.h:
  • JavaScriptCore.xcodeproj/project.pbxproj:
06:18 Changeset [15427] by ddkilzer

WebCore:

Reviewed by Darin. Patch by Mitz.

  • rendering/RenderText.cpp: (WebCore::RenderText::caretRect): Fixed the calculation of the max/min allowed caret position.
06:14 Changeset [15426] by ddkilzer

LayoutTests:

Reviewed by Darin.

  • editing/deleting/delete-at-start-or-end-expected.checksum: Added.
  • editing/deleting/delete-at-start-or-end-expected.png: Added.
  • editing/deleting/delete-at-start-or-end-expected.txt: Added.
  • editing/deleting/delete-at-start-or-end.html: Added.

WebCore:

Reviewed by Darin.

Test: editing/deleting/delete-at-start-or-end.html

  • editing/TypingCommand.cpp: (WebCore::TypingCommand::deleteKeyPressed): Added null check. (WebCore::TypingCommand::forwardDeleteKeyPressed): Ditto.
05:33 Changeset [15425] by ddkilzer

LayoutTests:

Reviewed by Darin.

NOTE: Only the layout test part of this patch was landed since an alternate
fix was committed in r15401: <rdar://problem/4509393> selected DOM range
starts with <object>, 0 offset but selection should include the <object>

  • fast/table/click-near-anonymous-table-expected.checksum: Added.
  • fast/table/click-near-anonymous-table-expected.png: Added.
  • fast/table/click-near-anonymous-table-expected.txt: Added.
  • fast/table/click-near-anonymous-table.html: Added.
05:05 Changeset [15424] by ddkilzer

WebCore:

Reviewed by Geoffrey.

No test cases since there is no change in functionality.

  • bindings/js/JSHTMLOptionsCollectionCustom.cpp: (WebCore::JSHTMLOptionsCollection::setLength): Simplified logic by using the no-argument getNumber() method.
01:07 Changeset [15423] by ggaren

Reviewed by Adele.

  • Build fix: don't need BLOCK_OBJC_EXCEPTIONS because we already have one surrounding this function, and the nested one makes the compiler think our local variable is volatile (seems like a compiler bug to me).


  • bridge/mac/FrameMac.mm: (WebCore::FrameMac::sendContextMenuEvent):
00:46 Changeset [15422] by thatcher

Reviewed by Maciej.

Make JavaScriptCore a public framework. Adjusted the paths.

  • WebCore.xcodeproj/project.pbxproj:
00:45 Changeset [15421] by mjs

LayoutTests:

Reviewed by Hyatt.


Test cases for <rdar://problem/4567031> REGRESSION: Crash at WebCore::RenderBlock::createLineBoxes (seems to be a security hole?)


I included the test case from the bug plus variants for other broken cases that
were similar but needed separate fixes.

  • fast/table/cell-in-row-before-misnested-text-crash-expected.txt: Added.
  • fast/table/cell-in-row-before-misnested-text-crash.xhtml: Added.
  • fast/table/form-in-row-before-misnested-text-crash-expected.txt: Added.
  • fast/table/form-in-row-before-misnested-text-crash.xhtml: Added.
  • fast/table/form-in-table-before-misnested-text-crash-expected.txt: Added.
  • fast/table/form-in-table-before-misnested-text-crash.xhtml: Added.
  • fast/table/form-in-tbody-before-misnested-text-crash-expected.txt: Added.
  • fast/table/form-in-tbody-before-misnested-text-crash.xhtml: Added.
  • fast/table/row-in-tbody-before-misnested-text-crash-expected.txt: Added.
  • fast/table/row-in-tbody-before-misnested-text-crash.xhtml: Added.
  • fast/table/section-in-table-before-misnested-text-crash-expected.txt: Added.
  • fast/table/section-in-table-before-misnested-text-crash.xhtml: Added.

WebCore:

Reviewed by Hyatt.

  • fixed <rdar://problem/4567031> REGRESSION: Crash at WebCore::RenderBlock::createLineBoxes (seems to be a security hole?)


I also fixed all the similar crash / assertion failure cases I could think of.

  • dom/Node.cpp: (WebCore::Node::nextRendererWithSameParent): Helper function for some of the above.
  • dom/Node.h:
  • rendering/RenderTable.cpp: (WebCore::RenderTable::addChild): Don't allow inserting forms when not in an HTML document, since we don't need that quirk and because parsing won't do certain render tree fixups. Also watch out for case when inserting before the renderer of a misnested child.
  • rendering/RenderTableRow.cpp: (WebCore::RenderTableRow::addChild): ditto
  • rendering/RenderTableSection.cpp: (WebCore::RenderTableSection::addChild): ditto
00:15 Changeset [15420] by thatcher

JavaScriptCore:

Reviewed by Maciej.

Moved JavaScriptCore to be a public framework.

WebKit:

Reviewed by Maciej.

Moved JavaScriptCore to be a public framework.

  • WebKit.xcodeproj/project.pbxproj:

07/13/06:

23:48 Changeset [15419] by adele

Reviewed by Maciej.

  • Fix for <rdar://problem/4604703> REGRESSION (NativeTextField): Focus is not removed from password field after I ctrl-click into a different field

Test:

  • manual-tests/password-ctrl-click-lose-focus.html: Added.
  • bridge/mac/FrameMac.mm: (WebCore::FrameMac::sendContextMenuEvent): If we're about to set a selection in the current view, make sure its the first responder. In this case, this will cause the password field to resign first responder at the right time.
21:42 Changeset [15418] by ddkilzer

LayoutTests:

Reviewed by Hyatt. Patch by Mitz.

  • editing/deleting/delete-to-select-table-expected.txt:
  • editing/execCommand/boldSelection-expected.txt:
  • editing/execCommand/italicizeByCharacter-expected.txt:
  • editing/execCommand/modifyForeColorByCharacter-expected.txt:
  • editing/execCommand/print-expected.txt:
  • editing/execCommand/selectAll-expected.txt:
  • editing/execCommand/strikethroughSelection-expected.txt:
  • editing/inserting/insert-div-027-expected.txt:
  • editing/selection/after-line-wrap-expected.txt:
  • editing/selection/mixed-editability-1-expected.txt:
  • editing/selection/select-all-001-expected.txt:
  • editing/selection/select-all-002-expected.txt:
  • editing/selection/select-all-003-expected.txt:
  • fast/clip/outline-overflowClip-expected.txt:
  • fast/text/international/rtl-white-space-pre-wrap-expected.checksum: Added.
  • fast/text/international/rtl-white-space-pre-wrap-expected.png: Added.
  • fast/text/international/rtl-white-space-pre-wrap-expected.txt: Added.
  • fast/text/international/rtl-white-space-pre-wrap.html: Added.
  • fast/text/whitespace/pre-wrap-overflow-selection-expected.txt:
  • fast/text/whitespace/pre-wrap-spaces-after-newline-expected.txt:

WebCore:

Reviewed by Hyatt. Patch by Mitz.

Test: fast/text/international/rtl-white-space-pre-wrap.html

  • rendering/RenderText.cpp: (WebCore::RenderText::caretRect): Fixed LTR case and added the RTL case of clipping the caret position to the text box when the caret is after the trailing space of an autowrapped line.
  • rendering/bidi.cpp: (WebCore::RenderBlock::computeHorizontalPositionsForLine): Changed to truncate- to-fit the logically last text box if it contains the trailing spaces of an autowrapped line. (WebCore::RenderBlock::bidiReorderLine): Remember the logically last text run. In the case of autowrapped text with white space that overflows beyond the line, the last text run is the one containing the overflowing white space. (WebCore::RenderBlock::findNextLineBreak): Split overflowing white space on a line that autowraps only after white space into a separate text run.
20:29 Changeset [15417] by ddkilzer

JavaScriptCore:

Reviewed by Geoffrey. Patch by Mark Rowe.

http://bugzilla.opendarwin.org/show_bug.cgi?id=9742
Bug 9742: REGRESSION: WebKit hangs when loading <http://www.vtbook.com>

  • kjs/value.h: (KJS::JSValue::getUInt32): Only types tagged as numeric can be converted to UInt32.

LayoutTests:

Reviewed by Geoffrey. Patch by Mark Rowe.

http://bugzilla.opendarwin.org/show_bug.cgi?id=9742
Bug 9742: REGRESSION: WebKit hangs when loading <http://www.vtbook.com>

This includes tests for indexing an array with immediate types, and for
setting selectField.options.length to immediate types.

  • fast/dom/select-selectedIndex-expected.txt:
  • fast/dom/select-selectedIndex-multiple-expected.txt:
  • fast/dom/select-selectedIndex-multiple.html: Update to test setting length to true and false.
  • fast/dom/select-selectedIndex.html: Ditto.
  • fast/js/array-index-immediate-types-expected.txt: Added.
  • fast/js/array-index-immediate-types.html: Added.
  • fast/js/resources/array-index-immediate-types.js: Added.
19:37 Changeset [15416] by bdakin

Reviewed by Darin.

  • WebView/WebHTMLView.m: (-[WebHTMLView _updateMouseoverWithEvent:]): Return immediately if the view has already been closed.
16:17 Changeset [15415] by harrison

Reviewed by Dave Hyatt.

<rdar://problem/4624203> -webkit-highlight should be behind images

  • rendering/RenderImage.cpp: (WebCore::RenderImage::paint):
  • rendering/RenderListMarker.cpp: (WebCore::RenderListMarker::paint):
  • rendering/RenderWidget.cpp: (WebCore::RenderWidget::paint): Call custom highlighter before painting the image, marker, or widget.
14:08 Changeset [15414] by harrison

LayoutTests:

Reviewed by Justin and Levi.

<rdar://problem/4620743> REGRESSION: Option-Delete doesn't delete words during typing

  • editing/deleting/delete-by-word-001-expected.checksum: Added.
  • editing/deleting/delete-by-word-001-expected.png: Added.
  • editing/deleting/delete-by-word-001-expected.txt: Added.
  • editing/deleting/delete-by-word-001.html: Added.
  • editing/deleting/delete-by-word-002-expected.checksum: Added.
  • editing/deleting/delete-by-word-002-expected.png: Added.
  • editing/deleting/delete-by-word-002-expected.txt: Added.
  • editing/deleting/delete-by-word-002.html: Added.

WebCore:

Reviewed by Justin and Levi.

<rdar://problem/4620743> REGRESSION: Option-Delete doesn't delete words during typing

  • Tests: editing/deleting/delete-by-word-001.html editing/deleting/delete-by-word-002.html
  • editing/TypingCommand.cpp: (WebCore::TypingCommand::deleteKeyPressed): (WebCore::TypingCommand::forwardDeleteKeyPressed): (WebCore::TypingCommand::doApply):
  • editing/TypingCommand.h: Delete and forward delete to use specified granularity. Undo of delete and forward delete to select what had been deleted (non-char granularity only).


  • page/Frame.cpp: (WebCore::Frame::setSelection): Close typing and end style even if selection is not changing.
  • page/Frame.h: Remove unused setSelection parameter keepTypingStyle.

WebKit:

Reviewed by Justin and Levi.

<rdar://problem/4620743> REGRESSION: Option-Delete doesn't delete words during typing

  • Tests: editing/deleting/delete-by-word-001.html editing/deleting/delete-by-word-002.html
  • WebView/WebHTMLView.m: (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:deletionAction:granularity:]):
11:45 Changeset [15413] by thatcher

Reviewed by Darin.

<rdar://problem/4616920> REGRESSION: tabbing in mail moves focus
to next control instead of inserting a tab space.

Change editible WebView's tabKeyCyclesThroughElements to NO only
if the setTabKeyCyclesThroughElements SPI wasn't called.

  • WebView/WebView.m: (-[WebView setEditable:]):
11:44 Changeset [15412] by thatcher

Reviewed by Brady Eidson


  • fixed <rdar://problem/4611164> REGRESSION: Crash occurs when undoing a series of misspelled words (WebCore::RenderObject::repaint(bool)
  • dom/Document.cpp: (WebCore::Document::removeMarkers): put (it - markers.begin()) in a local variable before altering markers, in every case where this was happening. One of the cases like this was fixed a while back, but other cases were either missed at that time or crept in since.
11:34 Changeset [15411] by thatcher

New tag.

11:33 Changeset [15410] by thatcher

New tag (part 2)

11:32 Changeset [15409] by thatcher

New tag.

11:28 Changeset [15408] by lweintraub

LayoutTests:

Reviewed by justin

<rdar://problem/4622763> Deleting from beginning of paragraph following a table deletes rather than selects the table

  • editing/deleting/delete-block-table-expected.checksum: Added.
  • editing/deleting/delete-block-table-expected.png: Added.
  • editing/deleting/delete-block-table-expected.txt: Added.
  • editing/deleting/delete-block-table.html: Added.
  • editing/deleting/delete-hr-expected.checksum: Added.
  • editing/deleting/delete-hr-expected.png: Added.
  • editing/deleting/delete-hr-expected.txt: Added.
  • editing/deleting/delete-hr.html: Added.
  • editing/deleting/delete-to-select-table-expected.png:
  • editing/execCommand/insertHorizontalRule-expected.txt:
  • fast/lists/markers-in-selection-expected.txt:

WebCore:

Reviewed by justin

<rdar://problem/4622763> Deleting from beginning of paragraph following a table deletes rather than selects the table

  • editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::initializeStartEnd): Added selection expansion for HRs. (WebCore::DeleteSelectionCommand::initializePositionData): Now uses enclosingBlockFlowOrTableElement instead of enclosingBlockFlowElement. (WebCore::DeleteSelectionCommand::removeNode): Use to identify that we need a placeholder when the start or end block is removed. (WebCore::DeleteSelectionCommand::handleGeneralDelete): Added check for canHaveChildrenForEditing to keep things like HRs from being given children. (WebCore::DeleteSelectionCommand::doApply): Switched to use member variable for needPlaceholder.
  • editing/DeleteSelectionCommand.h: Made needPlaceholder a member variable.
  • editing/TypingCommand.cpp: (WebCore::TypingCommand::deleteKeyPressed): Fixed selection bug for tables and open typing commands. (WebCore::TypingCommand::forwardDeleteKeyPressed): Ditto.
  • editing/htmlediting.cpp: (WebCore::editingIgnoresContent): Added check for HRs, since it's not considered a widget.
  • editing/visible_units.cpp: (WebCore::startOfParagraph): Fix for HRs and tables. (WebCore::endOfParagraph): Ditto.
11:27 Changeset [15407] by thatcher

Rolling out this earlier change (r15378) now that it is fixed on AGL's end.
Fixes <rdar://problem/4624865> Restore 64-bit OpenGL plug-in support once AGL is 64-bit

<rdar://problem/4624858> AGL isn't 64-bit yet; temporarily remove it from WebKit 64-bit build

  • Plugins/WebBaseNetscapePluginView.h:
  • Plugins/WebBaseNetscapePluginView.m:
11:06 Changeset [15406] by thatcher

Reviewed by Darin.

<rdar://problem/4616920> REGRESSION: tabbing in mail moves focus
to next control instead of inserting a tab space.

Change editible WebView's tabKeyCyclesThroughElements to NO only
if the setTabKeyCyclesThroughElements SPI wasn't called.

  • WebView/WebView.m: (-[WebView setEditable:]):
08:54 Changeset [15405] by ap

Reviewed by Darin.

No change in behavior, thus no test included.

  • bridge/mac/FrameMac.mm: (WebCore::FrameMac::setStatusBarText): Use a local autorelease pool to release the temporaries - the test runs non-stop, and the enclosing pool doesn't get a chance to be drained.
01:56 Changeset [15404] by ggaren

Pleasing to Maciej.


  • Renamed JSEvaluate -> JSEvaluateScript, JSCheckSyntax -> JSCheckScriptSyntax
  • Added exception out parameters to JSValueTo* and JSValueIsEqual because they can throw
  • Removed JSObjectGetDescription because it's useless and vague, and JSValueToString/JSValueIsObjectOfClass do a better job, anyway
  • Clarified comments about "IsFunction/Constructor" to indicate that they are true of all functions/constructors, not just those created by JSObjectMake*
00:11 Changeset [15403] by thatcher

Reviewed by Timothy.

Bug 9889: [Drosera] Stepping out when paused after last statement in function skips a frame
http://bugzilla.opendarwin.org/show_bug.cgi?id=9889

  • Drosera/debugger.js: Track whether we paused during the execution of willLeaveFrame. If so, have stepOut pause on the next call to willExecuteStatement rather than second.

07/12/06:

21:52 Changeset [15402] by ddkilzer

WebCore:

Reviewed by Adele. Patch by Mitz.

Test: fast/frames/repaint-display-none-crash.html

  • rendering/RenderView.cpp: (WebCore::RenderView::repaintViewRectangle): Added null checking of the owner element's renderer, which can be null if the iframe is set to display:none.

LayoutTests:

Reviewed by Adele. Patch by Mitz.

  • fast/frames/repaint-display-none-crash-expected.txt: Added.
  • fast/frames/repaint-display-none-crash.html: Added.
19:31 Changeset [15401] by justing

LayoutTests:

Reviewed by levi


<rdar://problem/4509393>
selected DOM range starts with <object>, 0 offset but selection should include the <object>

  • editing/selection/legal-positions-expected.txt: Added.
  • editing/selection/legal-positions.html: Added.
  • editing/deleting/delete-3608430-fix-expected.txt:
  • editing/deleting/delete-image-001-expected.txt:
  • editing/deleting/delete-image-002-expected.txt:
  • editing/deleting/delete-image-003-expected.txt:
  • editing/deleting/delete-image-004-expected.txt:
  • editing/selection/drag-to-contenteditable-iframe-expected.txt:
  • editing/selection/replaced-boundaries-3-expected.txt:
  • editing/selection/select-box-expected.txt:

WebCore:

Reviewed by levi


<rdar://problem/4509393>
selected DOM range starts with <object>, 0 offset but selection should include the <object>

  • editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::shouldMergeStart): Don't pull content out of a table cell.
  • editing/htmlediting.cpp: (WebCore::editingIgnoresContent): Added <select> nodes. (WebCore::rangeCompliantEquivalent): Convert [node, 0] positions to positionBeforeNode(node) for more types of nodes.
  • rendering/RenderContainer.cpp: (WebCore::RenderContainer::positionForCoordinates): Fix a crasher when right clicking on an anonymous table.
19:15 Changeset [15400] by ggaren

RS by Beth.


Finished previously approved JSInternalString -> JSString conversion
by renaming the files.

  • API/JSCallbackObject.cpp:
  • API/JSInternalStringRef.cpp: Removed.
  • API/JSInternalStringRef.h: Removed.
  • API/JSStringRef.cpp: Added.
  • API/JSStringRef.h: Added.
  • API/JavaScriptCore.h:
  • JavaScriptCore.xcodeproj/project.pbxproj:
17:36 Changeset [15399] by sullivan

Reviewed by Brady Eidson (and written by Justin Garcia)


  • layout test corresponding to <rdar://problem/4611164>
  • editing/undo/undo-misspellings-expected.checksum: Added.
  • editing/undo/undo-misspellings-expected.png: Added.
  • editing/undo/undo-misspellings-expected.txt: Added.
  • editing/undo/undo-misspellings.html: Added.
17:29 Changeset [15398] by sullivan

Reviewed by Brady Eidson


  • fixed <rdar://problem/4611164> REGRESSION: Crash occurs when undoing a series of misspelled words (WebCore::RenderObject::repaint(bool)
  • dom/Document.cpp: (WebCore::Document::removeMarkers): put (it - markers.begin()) in a local variable before altering markers, in every case where this was happening. One of the cases like this was fixed a while back, but other cases were either missed at that time or crept in since.
17:20 Changeset [15397] by andersca

WebCore:

2006-07-13 Anders Carlsson <acarlsson@apple.com>

Reviewed by Justin.

http://bugzilla.opendarwin.org/show_bug.cgi?id=9663
REGRESSION (r14948-r14956): Selection in text field remains highlighted when the text field loses focus


  • dom/Document.cpp: (WebCore::Document::updateSelection): Don't return early if the selection is empty.

LayoutTests:

2006-07-13 Anders Carlsson <acarlsson@apple.com>

Reviewed by Justin.

http://bugzilla.opendarwin.org/show_bug.cgi?id=9663
REGRESSION (r14948-r14956): Selection in text field remains highlighted when the text field loses focus

  • editing/selection/clear-selection-expected.checksum: Added.
  • editing/selection/clear-selection-expected.png: Added.
  • editing/selection/clear-selection-expected.txt: Added.
  • editing/selection/clear-selection.html: Added.
14:47 Changeset [15396] by andersca

2006-07-12 Anders Carlsson <acarlsson@apple.com>

Reviewed by Darin.

http://bugzilla.opendarwin.org/show_bug.cgi?id=9624
REGRESSION: After ctrl-clicking in a EMPTY input or textarea field, the contextual menu shows "Search in Google" and "Search in Spotlight" as active menu items


  • DefaultDelegates/WebDefaultContextMenuDelegate.m: (-[WebDefaultUIDelegate editingContextMenuItemsForElement:defaultMenuItems:]): Don't create Dictionary, Spotlight or Google lookup items if there's no selection.
10:31 Changeset [15395] by andersca

2006-07-12 Anders Carlsson <acarlsson@apple.com>

Reviewed by Adele.

<rdar://problem/4614656> REGRESSION: onpaste() handlers don't run for textarea elements


  • bridge/mac/FrameMac.mm: (WebCore::FrameMac::dispatchCPPEvent): If the element is a shadow node, dispatch the event to its real parent.
  • manual-tests/textarea-onpaste.html: Added.
10:00 Changeset [15394] by bdakin

Reviewed by Anders.

Fix for layout test regressions after my check-in last night. Just
a silly mistake where I should have asked if we were NOT printing
instead of if we were in the listbox code.

  • WebCore.xcodeproj/project.pbxproj: Project file wars. Back to XCode 2.3
  • platform/mac/ListBoxMac.mm: (itemTextRenderer): Inverted check. (groupLabelTextRenderer): Inverted check.
09:15 Changeset [15393] by ddkilzer

WebKitTools:

Reviewed by Darin.

  • Scripts/svn-apply: Added fixChangeLogPatch() and invoked it in the proper place.
  • Scripts/svn-create-patch: Ditto.
  • Scripts/svn-unapply: Ditto.
09:09 Changeset [15392] by ddkilzer

LayoutTests:

Reviewed by NOBODY (layout test fix).

Remove property information left in files from svn-apply.

  • fast/table/large-rowspan-crash-expected.txt:
  • fast/table/large-rowspan-crash.html:
08:52 Changeset [15391] by darin

Fix date.

08:30 Changeset [15390] by darin

LayoutTests:

Reviewed by Maciej.

  • another large rowspan test case
  • fast/table/large-rowspan-crash-expected.txt: Added.
  • fast/table/large-rowspan-crash.html: Added.

WebCore:

Reviewed by Maciej.

Test: fast/table/large-rowspan-crash.html

  • rendering/RenderTableSection.cpp: (WebCore::RenderTableSection::ensureRows): Use sizeof(RowStruct) instead of sizeof(int). Clearly we'll need something better to solve this completely. I expect another smaller, but still huge, value will still cause a problem.
06:32 Changeset [15389] by ddkilzer

WebKitTools:

Reviewed by ggaren.

Bug 9869: [Drosera] JS Console fails to evaluate input when paused in global scope
http://bugzilla.opendarwin.org/show_bug.cgi?id=9869

  • Drosera/DebuggerDocument.m: (-[WebScriptObject currentFunctionStack]): Include the global frame in the stack.
04:28 Changeset [15388] by ddkilzer

WebKitTools:

Reviewed by ggaren.

Bug 9863: Drosera needs to show something at launch
http://bugzilla.opendarwin.org/show_bug.cgi?id=9863

  • Drosera/DebuggerApplication.m: (-[DebuggerApplication applicationDidFinishLaunching:]): Show the attach window on launch.
03:33 Changeset [15387] by andersca

WebCore:

2006-07-12 Anders Carlsson <acarlsson@apple.com>

Reviewed by Maciej.

<rdar://problem/4586665> REGRESSION: autorestore.apple.com: Crashes Safari in WebCore::Widget::client() const

  • bridge/mac/FrameMac.h: Add focusCallResultedInViewBeingCreated argument.


  • bridge/mac/FrameMac.mm: (WebCore::FrameMac::nextKeyViewInFrame): If the call to focus() caused the node to get a native widget, set focusCallResultedInViewBeingCreated to true.


(WebCore::FrameMac::nextKeyViewInFrameHierarchy):
Don't reset the focus node if focusCallResultedInViewBeingCreated is true. Also, add magic to prevent setting
a text field as the first responder if its field editor already is the current first responder.


  • page/FrameView.cpp: (WebCore::FrameView::handleMousePressEvent): In some cases, get the event target node again after dispatching the mouse event.

LayoutTests:

2006-07-12 Anders Carlsson <acarlsson@apple.com>

Reviewed by Maciej.

<rdar://problem/4586665> REGRESSION: autorestore.apple.com: Crashes Safari in WebCore::Widget::client() const

  • fast/forms/input-type-change-in-onfocus-keyboard-expected.txt: Added.
  • fast/forms/input-type-change-in-onfocus-keyboard.html: Added.
  • fast/forms/input-type-change-in-onfocus-mouse-expected.txt: Added.
  • fast/forms/input-type-change-in-onfocus-mouse.html: Added.
03:18 Changeset [15386] by andersca

2006-07-12 Anders Carlsson <acarlsson@apple.com>

Build fix


  • JSUtils.cpp: (KJSValueToCFTypeInternal):
  • JSValueWrapper.cpp: (JSValueWrapper::JSObjectCopyPropertyNames):
  • UserObjectImp.cpp: (UserObjectImp::getPropertyList):
03:01 Changeset [15385] by ggaren

Reviewed by Maciej.


  • Removed context and exception parameters from JSObjectGetPropertyEnumerator, removing the spurious use of ExecState inside JavaScriptCore that made us think this was necessary in the first place.

(StringInstance::getPropertyList): Use getString instead of toString because
we know we're dealing with a string -- we put it there in the first place.
While we're at it, store the string's size instead of retrieving it each time
through the loop, to avoid the unnecessary killing of puppies.

  • kjs/string_object.h:
02:55 Changeset [15384] by mjs

4eviewed by Geoff.


  • add handling of hasInstance callback for API objects
  • API/JSCallbackObject.cpp: (KJS::JSCallbackObject::implementsHasInstance): Check if callback is present. (KJS::JSCallbackObject::hasInstance): Invoke appropriate callback.
  • API/JSCallbackObject.h:
  • API/JSClassRef.cpp:
  • API/JSObjectRef.h:
  • API/testapi.c: (MyObject_hasInstance): Test case; should match what construct would do.
  • API/testapi.js:
02:52 Changeset [15383] by bdakin

--This Reviewed by Adele.

Fix for <rdar://problem/4615765> Input[type='search' fields
initially render too large in Widgets

Fundamentally, the problem here is that we were miscalculating
things because [NSGraphicsContext currentContextDrawingToScreen]
was evaluating to false when widgets first load. We only ever used
this check, however, to determine if we were printing or not, so it
should not have evaluated to false for loading in Dashbaord.
Instead, if we query the RenderView about whether or not we are
printing, we will get the right answer.

No test case added since this appears only to affect Dashboard.

  • bridge/mac/WebCoreFrameBridge.mm: (-[WebCoreFrameBridge drawRect:]): Ask the RenderView if we are printing instead. This is not part of the actual bug fix, but it seems wise to get rid of all calls to [NSGraphicsContext currentContextDrawingToScreen] when we are just trying to determine if we are printing or not.
  • platform/mac/ListBoxMac.mm: (itemTextRenderer):This function now takes a boolean, isPrinting. (groupLabelTextRenderer): Same as above. (ListBox::sizeForNumberOfLines): Ask the RenderView if we are printing. (-[WebCoreTableView drawRow:clipRect:]): Same as above.
  • platform/mac/PopUpButtonMac.mm: (PopUpButton::sizeHint): Same as above.
  • platform/mac/TextFieldMac.mm: (-[NSSearchFieldCell _addStringToRecentSearches:]):
  • rendering/RenderLineEdit.cpp: Same as above.

M WebCore/platform/mac/TextFieldMac.mm
M WebCore/platform/mac/PopUpButtonMac.mm
M WebCore/platform/mac/ListBoxMac.mm
M WebCore/rendering/RenderLineEdit.cpp
M WebCore/ChangeLog
M WebCore/bridge/mac/WebCoreFrameBridge.mm

02:32 Changeset [15382] by thatcher

Reviewed by Timothy.

http://bugzilla.opendarwin.org/show_bug.cgi?id=9868
Applications shown in Drosera's "Attach" window remain after exit

  • DefaultDelegates/WebScriptDebugServer.m: (-[WebScriptDebugServer init]): Register for NSApplicationWillTerminateNotification so we will know when the application is being exited. (-[WebScriptDebugServer dealloc]): Unregister notification before we are deallocated. (-[WebScriptDebugServer applicationTerminating:]): Inform anyone listening that we are going away.
01:55 Changeset [15381] by thatcher

Reviewed by Timothy.


Lets Drosera build universal for the nightlies. Right now it is not
possible to build a universal binary on a PPC machine because of a
conflict with the universal SDK.

  • BuildSlaveSupport/build-launcher-app:
  • WebKitLauncher/WebKitLauncher.xcodeproj/project.pbxproj:
01:31 Changeset [15380] by thatcher

Build fix for AGL. Versioning.

01:26 Changeset [15379] by thatcher

new tag.

01:25 Changeset [15378] by tomernic

Reviewed by Tim Hatcher.

<rdar://problem/4624858> AGL isn't 64-bit yet; temporarily remove it from WebKit 64-bit build

Also, fixed a LOG_ERROR() so that it uses the CGL error instead of the AGL error; Tim H missed this in his build fix
from earlier.

  • Plugins/WebBaseNetscapePluginView.h:
  • Plugins/WebBaseNetscapePluginView.m:
01:17 Changeset [15377] by adele

LayoutTests:

Reviewed by Maciej.

Test for: http://bugzilla.opendarwin.org/show_bug.cgi?id=9813
OPTION text can paint over select element's scrollbar

  • fast/forms/option-text-clip-expected.checksum: Added.
  • fast/forms/option-text-clip-expected.png: Added.
  • fast/forms/option-text-clip-expected.txt: Added.
  • fast/forms/option-text-clip.html: Added.

WebCore:

Reviewed by Maciej.

Fix for: http://bugzilla.opendarwin.org/show_bug.cgi?id=9813
OPTION text can paint over select element's scrollbar

Test: fast/forms/option-text-clip.html

  • rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::paintObject): When calculating the clip to apply to the button text, also consider padding. In the future, we may have separate renderers for the text part, and the arrow part of the control, and then the separation should be natural. For now, we use padding.
01:12 Changeset [15376] by ggaren

Reviewed by Maciej.


  • Implemented a vast number of renames and comment clarifications suggested during API review.


JSInternalString -> JSString
JS*Make -> JSValueMake*, JSObjectMake*
JSTypeCode -> JSType
JSValueIsInstanceOf -> JSValueIsInstanceOfConstructor (reads strangely well in client code)
JSGC*Protect -> JSValue*Protect
JS*Callback -> JSObject*Callback
JSGetPropertyListCallback -> JSObjectAddPropertiesToListCallback
JSPropertyEnumeratorGetNext -> JSPropertyEnumeratorGetNextName
JSString* ->

JSStringCreateWithUTF8CString, JSStringGetUTF8CString,
JSStringGetMaximumUTF8CStringSize JSStringIsEqualToUTF8CString,
JSStringCreateWithCFString, JSStringCopyCFString, JSStringCreateWithCharacters.


  • Changed functions taking a JSValue out arg and returning a bool indicating whether it was set to simply return a JSValue or NULL.


  • Removed JSStringGetCharacters because it's more documentation than code, and it's just a glorified memcpy built on existing API functionality.


  • Moved standard library includes into the headers that actually require them.


  • Standardized use of the phrase "Create Rule."


  • Removed JSLock from make functions that don't allocate.


  • Added exception handling to JSValueToBoolean, since we now allow callback objects to throw exceptions upon converting to boolean.


  • Renamed JSGCCollect to JSGarbageCollect.
Note: See TracTimeline for information about the timeline view.