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

Timeline



Jun 18, 2004:

9:33 PM Changeset in webkit [6900]
  • 4 copies
    3 deletes in tags/JavaScriptCore-146~1

This commit was manufactured by cvs2svn to create tag
'JavaScriptCore-146~1'.

9:33 PM Changeset in webkit [6899] by vicki
  • 2 edits in branches/WWDC-2004-branch/JavaScriptCore
  • versioning for JSC-146~1
9:25 PM Changeset in webkit [6898] by vicki
  • 2 edits in branches/WWDC-2004-branch/JavaScriptCore
  • merge this fix from HEAD. Even if we can't submit this to Tiger for WWDC, we'll still need it for the Dashboard demo. No harm in merging this now.

2004-06-16 Richard Williamson <rjw@apple.com>

Fixed <rdar://problem/3702287> Crash returning nil from bound ObjC

This turned out to be a show stopper for Dashboard. Accessing a nil
ObjC property from JS caused a crash. Similar to the problem
3696112 fixed below.

Reviewed by Trey.

  • bindings/objc/objc_runtime.mm: (KJS::Bindings::ObjcField::valueFromInstance):
8:49 PM Changeset in webkit [6897]
  • 1 copy
    23 deletes in branches/unlabeled-1.384.2.1.2

This commit was manufactured by cvs2svn to create branch
'unlabeled-1.384.2.1.2'.

8:49 PM Changeset in webkit [6896]
  • 1 copy
    22 deletes in branches/unlabeled-1.2930.2.4.2

This commit was manufactured by cvs2svn to create branch
'unlabeled-1.2930.2.4.2'.

8:49 PM Changeset in webkit [6895]
  • 7 copies
    2 deletes in tags/WebCore-146~1

This commit was manufactured by cvs2svn to create tag
'WebCore-146~1'.

8:49 PM Changeset in webkit [6894]
  • 7 copies
    1 delete in branches/WWDC-demo-branch

This commit was manufactured by cvs2svn to create branch
'WWDC-demo-branch'.

8:49 PM Changeset in webkit [6893] by vicki
  • 2 edits in branches/WWDC-2004-branch/WebCore
  • versioning for WebCore-146.1
6:41 PM Changeset in webkit [6892] by rjw
  • 2 edits in trunk/JavaScriptCore

Fixed <rdar://problem/3702287> Crash returning nil from bound ObjC

This turned out to be a show stopper for Dashboard. Accessing a nil
ObjC property from JS caused a crash. Similar to the problem
3696112 fixed below.

Reviewed by Trey.

  • bindings/objc/objc_runtime.mm: (KJS::Bindings::ObjcField::valueFromInstance):
6:16 PM Changeset in webkit [6891] by vicki
  • 2 edits in branches/WWDC-2004-branch/WebCore
  • merge this change from HEAD

2004-06-18 Trey Matteson <trey@apple.com>

3702053 - DHTML dragging destination can't control the cursor (by setting the drop operation)

Fallout from security work, but an easy fix.

Reviewed by Darin

  • kwq/KWQClipboard.mm: (KWQClipboard::setDropEffect): Allow dest side to set dropEffect.
6:08 PM Changeset in webkit [6890] by vicki
  • 2 edits in branches/WWDC-2004-branch/WebCore
  • merge this change from HEAD

2004-06-18 Darin Adler <Darin Adler>

Reviewed by John.

  • re-fixed <rdar://problem/3701893> show expert preferences notes in xcode causes crash (in EllipsisBox code)
  • khtml/rendering/render_block.cpp: (khtml::RenderBlock::paintEllipsisBoxes): Check !isInlineFlow rather than checking hasMarkupTruncation. Otherwise, we break plain old non-markup truncation.
6:05 PM Changeset in webkit [6889] by vicki
  • 2 edits in branches/WWDC-2004-branch/WebCore
  • merge this change from HEAD

2004-06-18 Darin Adler <Darin Adler>

Reviewed by John.

  • fixed <rdar://problem/3701893> show expert preferences notes in xcode causes crash (in EllipsisBox code)
  • khtml/rendering/render_block.cpp: (khtml::RenderBlock::paintEllipsisBoxes): Only walk the ellipsis list if hasMarkupTruncation is true.
4:58 PM Changeset in webkit [6888] by trey
  • 2 edits in trunk/WebCore

3702053 - DHTML dragging destination can't control the cursor (by setting the drop operation)

Fallout from security work, but an easy fix.

Reviewed by Darin

  • kwq/KWQClipboard.mm: (KWQClipboard::setDropEffect): Allow dest side to set dropEffect.
4:50 PM Changeset in webkit [6887] by darin
  • 2 edits in trunk/WebCore

Reviewed by John.

  • re-fixed <rdar://problem/3701893> show expert preferences notes in xcode causes crash (in EllipsisBox code)
  • khtml/rendering/render_block.cpp: (khtml::RenderBlock::paintEllipsisBoxes): Check !isInlineFlow rather than checking hasMarkupTruncation. Otherwise, we break plain old non-markup truncation.
4:21 PM Changeset in webkit [6886] by darin
  • 3 edits in trunk/WebCore

Reviewed by John.

  • fixed <rdar://problem/3701893> show expert preferences notes in xcode causes crash (in EllipsisBox code)
  • khtml/rendering/render_block.cpp: (khtml::RenderBlock::paintEllipsisBoxes): Only walk the ellipsis list if hasMarkupTruncation is true.
1:57 PM Changeset in webkit [6885] by sullivan
  • 2 edits in trunk/WebCore

Reviewed by Darin

  • fixed <rdar://problem/3534851> Pop up windows not showing up within SAP's BW Module (changing location.href on new window created by window.open)
  • khtml/khtml_part.cpp: (KHTMLPart::scheduleRedirection): allow new redirect to win if delay <= current delay, not just <

Jun 17, 2004:

3:46 PM Changeset in webkit [6884] by vicki
  • 3 edits in trunk

set version to 147u

3:39 PM Changeset in webkit [6883]
  • 3 copies in branches/WWDC-2004-branch

This commit was manufactured by cvs2svn to create branch
'WWDC-2004-branch'.

3:39 PM Changeset in webkit [6882]
  • 3 copies in tags/WWDC-2004-anchor

This commit was manufactured by cvs2svn to create tag
'WWDC-2004-anchor'.

3:39 PM Changeset in webkit [6881]
  • 3 copies in tags/Safari-146

This commit was manufactured by cvs2svn to create tag 'Safari-146'.

3:39 PM Changeset in webkit [6880] by vicki
  • 6 edits in trunk

Safari-146 stamp

1:18 PM Changeset in webkit [6879] by rjw
  • 2 edits in trunk/WebKit

Changed private headers to be pubic for npapi.h and npfunctions.h. That
API was approved but never marked as public in the project file. This change does
not make npruntime.h public, which contains the not yet approved changes
for script-ability of netscape plugins. Unfortunately, that API will not
be public for WWDC.

Reviewed by Chris.

  • WebKit.pbproj/project.pbxproj:
11:24 AM Changeset in webkit [6878] by rjw
  • 2 edits in trunk/WebCore

Fixed <rdar://problem/3698867> setting the canvas or parent to display:none and updating the causes a nil-deref

Ensured that we have a renderer before rendering.

Reviewed by John.

  • khtml/ecma/kjs_html.cpp: (KJS::Context2DFunction::tryCall):
11:09 AM Changeset in webkit [6877] by hyatt
  • 9 edits in trunk/WebCore

Fix for 3674601, "Read More..." links should trail articles in Emerson.

Reviewed by darin

  • khtml/rendering/bidi.cpp: (khtml::RenderBlock::layoutInlineChildren): (khtml::RenderBlock::deleteEllipsisLineBoxes): (khtml::RenderBlock::checkLinesForTextOverflow):
  • khtml/rendering/render_block.cpp: (khtml:::RenderFlow): (khtml::RenderBlock::paintEllipsisBoxes): (khtml::RenderBlock::nodeAtPoint): (khtml::shouldCheckLines): (khtml::getLineAtIndex): (khtml::getHeightForLineCount): (khtml::RenderBlock::lineAtIndex): (khtml::RenderBlock::lineCount): (khtml::RenderBlock::heightForLineCount): (khtml::RenderBlock::clearTruncation):
  • khtml/rendering/render_block.h: (khtml::RenderBlock::setHasMarkupTruncation): (khtml::RenderBlock::hasMarkupTruncation):
  • khtml/rendering/render_flexbox.cpp: (khtml::RenderFlexibleBox::layoutVerticalBox):
  • khtml/rendering/render_line.cpp: (khtml::EllipsisBox::m_str): (khtml::InlineBox::adjustPosition): (khtml::InlineFlowBox::adjustPosition): (khtml::InlineFlowBox::clearTruncation): (khtml::EllipsisBox::paint): (khtml::EllipsisBox::nodeAtPoint): (khtml::RootInlineBox::clearTruncation): (khtml::RootInlineBox::placeEllipsis): (khtml::RootInlineBox::paintEllipsisBox): (khtml::RootInlineBox::hitTestEllipsisBox): (khtml::RootInlineBox::adjustPosition): (khtml::RootInlineBox::childRemoved):
  • khtml/rendering/render_line.h: (khtml::InlineBox::clearTruncation):
  • khtml/rendering/render_text.cpp:
  • khtml/rendering/render_text.h: (khtml::InlineTextBox::clearTruncation):
1:30 AM Changeset in webkit [6876] by trey
  • 9 edits in trunk

WebCore:

3698514 - coordinates in ondragstart and ondrag events are wrong

This part fixes the ondragstart coords. We salt away the window-based mouseDown
location, since we need that when we dispatch the ondragstart event. Previously
we were errantly using a mouseDown point that had already been converted to view
coords, and then the dispatch converted it again.

Reviewed by Maciej.

  • kwq/KWQKHTMLPart.h:
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::khtmlMouseMoveEvent): Use window based mouse event coords to dispatch event. (KWQKHTMLPart::mouseDown): Save window based mouse event coords .

WebKit:

3698514 - coordinates in ondragstart and ondrag events are wrong

This part fixes the ondrag coords. I thought Cocoa passed us the mouse location
in draggedImage:movedTo:, but no, it's the position of the dragged image.
WebCore needs the mouse location, so to calc that we must save away the
offset of the mouse relative to the image when we kick off the drag.

Reviewed by Maciej.

  • Misc.subproj/WebNSViewExtras.h:
  • Misc.subproj/WebNSViewExtras.m: (-[NSView _web_dragImage:rect:event:pasteboard:source:offset:]): Add the ability to return the offset of the cursor wrt to the drag image, since this routine generates its own drag image and positions it.
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): Calc the offset of the cursor wrt to the drag image in the myriad of ways that we kick off the drag. (-[WebHTMLView draggedImage:movedTo:]): Adjust the location by the offset we save when we kicked off the drag. (-[WebHTMLView draggedImage:endedAt:operation:]): Ditto.
  • WebView.subproj/WebHTMLViewInternal.h:
  • WebView.subproj/WebImageView.m: (-[WebImageView mouseDragged:]): Pass nil for new arg, we don't care.

Jun 16, 2004:

9:52 PM Changeset in webkit [6875]
  • 5 copies
    2 deletes in tags/WebCore-145~1

This commit was manufactured by cvs2svn to create tag
'WebCore-145~1'.

9:52 PM Changeset in webkit [6874] by vicki
  • 2 edits in trunk/WebCore
  • versioning and ChangeLog marker for WebCore-145.1 (WebCore-145 plus the selection fix)
6:38 PM Changeset in webkit [6873] by hyatt
  • 15 edits in trunk

WebCore:

Fix for 3596620, implement a subset of CSS3 text truncation for Emerson.

Reviewed by mjs

  • khtml/rendering/bidi.cpp: (khtml::RenderBlock::checkLinesForTextOverflow):
  • khtml/rendering/font.cpp: (Font::checkSelectionPoint):
  • khtml/rendering/font.h:
  • khtml/rendering/render_block.cpp: (khtml::RenderBlock::paintObject): (khtml::RenderBlock::paintFloats): (khtml::RenderBlock::paintEllipsisBoxes):
  • khtml/rendering/render_block.h:
  • khtml/rendering/render_line.cpp: (InlineBox::canAccommodateEllipsis): (InlineBox::placeEllipsisBox): (InlineFlowBox::paintDecorations): (InlineFlowBox::placeEllipsisBox): (EllipsisBox::paint): (RootInlineBox::placeEllipsis): (RootInlineBox::placeEllipsisBox):
  • khtml/rendering/render_line.h: (khtml::EllipsisBox::m_str): (khtml::RootInlineBox::ellipsisBox):
  • khtml/rendering/render_text.cpp: (InlineTextBox::placeEllipsisBox): (InlineTextBox::paintDecoration): (InlineTextBox::offsetForPosition): (RenderText::positionForCoordinates): (RenderText::paint):
  • khtml/rendering/render_text.h:
  • kwq/KWQFontMetrics.h:
  • kwq/KWQFontMetrics.mm: (QFontMetrics::checkSelectionPoint):
  • kwq/WebCoreTextRenderer.h:

WebKit:

In order to support truncation in Emerson, enhance pointToOffset so that it needn't include partial
character glyphs (the left half of a glyph).

Reviewed by mjs

  • WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer pointToOffset:style:position:reversed:includePartialGlyphs:]): (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]): (-[WebTextRenderer _CG_pointToOffset:style:position:reversed:includePartialGlyphs:]):
6:19 PM Changeset in webkit [6872] by mjs
  • 2 edits in trunk/WebCore

Reviewed by John.

<rdar://problem/3697602> REGRESSION (144.2-TOT) Selection highlight does not draw

  • khtml/rendering/render_canvas.cpp: (RenderCanvas::setSelection):
5:54 PM Changeset in webkit [6871] by rjw
  • 2 edits in trunk/JavaScriptCore

Fixed <rdar://problem/3696112>: nil from an Objective-C class seems to get wrapped as a JavaScript proxy that will not print.

This turned out to be a show stopper for Dashboard. We now
return Undefined() when nil is returned from a ObjC method
that returns an object type.

Reviewed by Maciej.

  • bindings/objc/objc_utility.mm: (KJS::Bindings::convertObjcValueToValue):
4:46 PM Changeset in webkit [6870] by vicki
  • 3 edits in trunk

change version number to 146u -- the tree is open

4:32 PM Changeset in webkit [6869]
  • 3 copies in tags/Safari-145

This commit was manufactured by cvs2svn to create tag 'Safari-145'.

4:32 PM Changeset in webkit [6868] by vicki
  • 6 edits in trunk

Safari-145 stamp

11:37 AM Changeset in webkit [6867] by sullivan
  • 1 edit in trunk/WebKit/WebKit.pbproj/project.pbxproj

Reviewed by Darin.

  • fixed <rdar://problem/3685827> Add standard news feeds from marketing.
  • BookmarksController.m: (-[BookmarksController mergeBuiltInBookmarksIfNecessary]): Use a different file for Tiger than for Panther; only the Tiger one has the news feeds in it.
  • English.lproj/BuiltInBookmarks.plist: new file that contains news feeds from marketing
  • English.lproj/OldBuiltInBookmarks.plist: Added. New name for old file.
  • WebBookmark.m: (-[WebBookmark dictionaryRepresentation]): #ifdeffed hack to avoid writing out UUIDs; used for creating built-in bookmarks file
  • WebBookmarkLeaf.m: (-[WebBookmarkLeaf dictionaryRepresentation]): #ifdeffed hack to avoid writing out last visited time; used for creating built-in bookmarks file
  • WebBookmarkList.m: (-[WebBookmarkList dictionaryRepresentation]): #ifdeffed hack to avoid writing out proxy bookmarks; used for creating built-in bookmarks file
  • WebBrowser.pbproj/project.pbxproj: updated for new file
11:18 AM Changeset in webkit [6866] by darin
  • 2 edits in trunk/WebKit
  • fixed <rdar://problem/3696081> REGRESSION: <WebKit/CarbonUtils.h> doesn't build any more

Reviewed by Trey.

  • Carbon.subproj/CarbonUtils.h: Fixed include. Need to include <ApplicationServices/ApplicationServices.h> to get CGImageRef; can't include an individual header.
11:09 AM Changeset in webkit [6865]
  • 1 copy
    39 deletes in branches/unlabeled-1.48.4/WebCore/khtml/html

This commit was manufactured by cvs2svn to create branch
'unlabeled-1.48.4'.

11:09 AM Changeset in webkit [6864] by rjw
  • 13 edits in trunk/WebCore

Fixed 3695730: Added support for document.embeds[], much like
document.applets[], to allow access to a plugin's exported interface.

Reviewed by Chris.

  • khtml/dom/html_document.cpp: (HTMLDocument::embeds):
  • khtml/dom/html_document.h:
  • khtml/ecma/kjs_dom.cpp: (KJS::getRuntimeObject):
  • khtml/ecma/kjs_html.cpp: (KJS::HTMLDocument::tryGet): (KJS::HTMLElement::tryGet): (KJS::HTMLCollection::tryGet): (KJS::HTMLCollection::getNamedItems):
  • khtml/ecma/kjs_html.h: (KJS::HTMLDocument::):
  • khtml/ecma/kjs_html.lut.h: (KJS::):
  • khtml/html/html_miscimpl.cpp: (HTMLCollectionImpl::calcLength): (HTMLCollectionImpl::getItem): (HTMLCollectionImpl::getNamedItem):
  • khtml/html/html_miscimpl.h: (DOM::HTMLCollectionImpl::):
  • khtml/html/html_objectimpl.cpp: (HTMLEmbedElementImpl::getEmbedInstance):
  • khtml/html/html_objectimpl.h:
  • kwq/KWQKHTMLPart.h:
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::getEmbedInstanceForView):

Jun 15, 2004:

11:29 PM Changeset in webkit [6863] by mjs
  • 5 edits in trunk/WebCore

Reviewed by Dave.

<rdar://problem/3695907>: (can't enable selection inside parent where it is disabled via CSS)

  • khtml/css/cssparser.cpp: (CSSParser::parseValue):
  • khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::applyProperty):
  • khtml/rendering/render_object.cpp: (RenderObject::shouldSelect):
  • khtml/rendering/render_style.h: (khtml::): (khtml::RenderStyle::userSelect): (khtml::RenderStyle::setUserSelect): (khtml::RenderStyle::initialUserSelect):
7:12 PM Changeset in webkit [6862] by rjw
  • 4 edits in trunk

WebKit:

Fixed <rdar://problem/3695875>: Objective-C instances that are exported to JavaScript are too promiscuous

Flip the policy for exposing Objective-C methods and properties.

Reviewed by Trey.

  • Plugins.subproj/WebPluginPackage.m: (+[NSObject isSelectorExcludedFromWebScript:]): Just return YES. (+[NSObject isKeyExcludedFromWebScript:]): Just return YES.

JavaScriptCore:

Fixed <rdar://problem/3695875>: Objective-C instances that are exported to JavaScript are too promiscuous

No longer need to check respondsToSelector: for
isSelectorExcludedFromWebScript: and isKeyExcludedFromWebScript:
because these now have a default implementation on NSObject.

Reviewed by Trey.

  • bindings/objc/objc_class.mm: (ObjcClass::methodsNamed): (ObjcClass::fieldNamed):
6:59 PM Changeset in webkit [6861] by trey
  • 4 edits in trunk/WebKit

3639321 - Harvard PIN authentication ends up sending PIN as clear text with POST action

When going back/forward to an item, if we went there originally via a POST,
we ask the user about rePOSTing, and if they say yes, we resend the POST.
This rePOST case is triggered by the form data that we saved on the b/f item.
In the case of this bug, the overall navigation was accomplished by a POST,
then a redirect, causing a GET. When a load of type redirect achieves the Committed
stage, we replace the current URL in the b/f item with the new URL (instead of
adding a new item to the b/f list).

The bug is that at the same time we should also update the form data in
the b/f item to match that of the new request. I think this will normally
mean nil'ing it out, unless there's some way for the result of the redirect
to be another POST.

The security leak occurred because we did not clear the form data on the item,
so when going back or forward to the page, we would go into the rePOSTing code,
even though we eventually reached that page via a GET (caused by the redirect).
So we would do a POST to the redirect URL containing the private data sent in
the original POST.

Reviewed by mjs and rjw.

  • History.subproj/WebHistoryItem.m: (-[WebHistoryItem _setFormInfoFromRequest:]): New method, just wraps 3 old set methods. (-[WebHistoryItem formData]): Diff being dumb, no change. (-[WebHistoryItem formContentType]): Ditto (-[WebHistoryItem formReferrer]): Ditto
  • History.subproj/WebHistoryItemPrivate.h:
  • WebView.subproj/WebFrame.m: (-[WebFrame _createItem:]): Call new WebHistoryItem method - no change in real behavior (-[WebFrame _transitionToCommitted:]): Clear out the form data at the key time, to fix the bug.
6:19 PM Changeset in webkit [6860] by hyatt
  • 4 edits in trunk/WebCore

Initial impl of the EllipsisBox. This code just gets the box created and gets it placed vertically. The next
stage will be to position the box horizontally as well.

Reviewed by trey

  • khtml/rendering/bidi.cpp: (khtml::RenderBlock::checkLinesForTextOverflow):
  • khtml/rendering/render_line.cpp: (RootInlineBox::placeEllipsis):
  • khtml/rendering/render_line.h: (khtml::EllipsisBox::m_str):
5:41 PM Changeset in webkit [6859] by cblu
  • 4 edits in trunk/WebKit

Fixed: <rdar://problem/3695724> WebKit plug-ins should only have to implement plugInViewWithArguments:

Reviewed by rjw.

  • ChangeLog:
  • Plugins.subproj/WebPluginViewFactory.h: mention that plugInViewWithArguments is required
  • WebView.subproj/WebFrame.m: (-[WebFrame _reloadForPluginChanges]): check for plugInViewWithArguments: not webPlugInInitialize
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView addSubview:]): ditto
5:00 PM Changeset in webkit [6858] by hyatt
  • 4 edits in trunk/WebCore

Implement canAccommodateEllipsis. The basic idea is that everything on a line will allow an ellipsis to be
drawn on top of it unless it's a replaced element. Then, if the replaced element overlaps, the ellipsis won't
be allowed.

Reviewed by john

  • khtml/rendering/bidi.cpp: (khtml::RenderBlock::checkLinesForTextOverflow):
  • khtml/rendering/render_line.cpp: (InlineBox::closestLeafChildForXPos): (InlineBox::canAccommodateEllipsis): (InlineFlowBox::canAccommodateEllipsis): (RootInlineBox::canAccommodateEllipsis):
  • khtml/rendering/render_line.h:
3:48 PM Changeset in webkit [6857] by trey
  • 2 edits in trunk/WebKit

3695240 - pasting plain text with newlines in it turns them into spaces

Easy fix, we just need to consume the incoming data as text instead of markup.

Reviewed by John and Darin.

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]):
11:07 AM Changeset in webkit [6856] by vicki
  • 1 edit
    4 adds in trunk
  • added a few layout tests, rdar://3694510
  • layout-tests/editing/deleting/delete-image-004-expected.txt: Added.
  • layout-tests/editing/deleting/delete-image-004.html: Added.
  • layout-tests/editing/selection/extend-by-character-006-expected.txt: Added.
  • layout-tests/editing/selection/extend-by-character-006.html: Added.
9:15 AM Changeset in webkit [6855] by trey
  • 2 edits in trunk/WebCore

Dragging tweak: We pass the mouse down coords instead of the
latest mouse drag coords to the ondragstart event. This makes it
easy for the client to figure the correct drag image offset,
whereas the mouse drag location is next to useless for that.

Reviewed by Louch

  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::khtmlMouseMoveEvent):
2:44 AM Changeset in webkit [6854] by mjs
  • 11 edits in trunk/WebCore

Reviewed by Darin.

<rdar://problem/3685236>: (Safari does not support onselectstart event handler)

  • khtml/ecma/kjs_dom.cpp: (DOMNode::getValueProperty): (DOMNode::putValue):
  • khtml/ecma/kjs_dom.h: (KJS::DOMNode::):
  • khtml/ecma/kjs_dom.lut.h: (KJS::):
  • khtml/html/html_elementimpl.cpp: (HTMLElementImpl::parseHTMLAttribute):
  • khtml/misc/htmlattrs.c: (hash_attr): (findAttr):
  • khtml/misc/htmlattrs.h:
  • khtml/misc/htmlattrs.in:
  • khtml/rendering/render_object.cpp: (RenderObject::shouldSelect):
  • khtml/xml/dom2_eventsimpl.cpp: (EventImpl::typeToId): (EventImpl::idToType):
  • khtml/xml/dom2_eventsimpl.h: (DOM::EventImpl::):
1:49 AM Changeset in webkit [6853] by mjs
  • 2 edits in trunk/WebCore

Reviewed by Darin.

Fix crash with last checkin.

  • khtml/ecma/kjs_binding.cpp: (ScriptInterpreter::domObjectsPerDocument): check the same property we want to initialize.
1:30 AM Changeset in webkit [6852] by darin
  • 2 edits in trunk/WebKit
  • fixed crash introduced by my earlier change
  • WebCoreSupport.subproj/WebImageRenderer.m: (-[WebImageContext dealloc]): Set _cgsContext to 0 before calling super as before. (-[WebImageContext finalize]): Ditto.
1:12 AM Changeset in webkit [6851] by mjs
  • 3 edits in trunk/WebCore

Reviewed by Darin.

<rdar://problem/3685309>: (properties not shared for JS wrappers of same DOM object, accessed from different frames)

  • khtml/ecma/kjs_binding.cpp: (ScriptInterpreter::domObjects): (ScriptInterpreter::domObjectsPerDocument): (ScriptInterpreter::ScriptInterpreter): (ScriptInterpreter::forgetDOMObject): (ScriptInterpreter::getDOMObjectForDocument): (ScriptInterpreter::putDOMObjectForDocument): (ScriptInterpreter::deleteDOMObjectsForDocument): (ScriptInterpreter::mark): (ScriptInterpreter::forgetDOMObjectsForDocument): (ScriptInterpreter::updateDOMObjectDocument):
  • khtml/ecma/kjs_binding.h: (KJS::ScriptInterpreter::getDOMObject): (KJS::ScriptInterpreter::putDOMObject): (KJS::ScriptInterpreter::deleteDOMObject):
1:07 AM Changeset in webkit [6850] by darin
  • 2 edits in trunk/WebCore
  • rolled out Ken's fix for <rdar://problem/3672377> assertion failure in AppendNodeCommandImpl::doApply due to non-0 exception code trying to insert a DIV markup string (it was making most layout tests fail)
  • khtml/xml/dom_nodeimpl.cpp: (NodeImpl::checkAddChild): Rolled check back in.
1:01 AM Changeset in webkit [6849] by hyatt
  • 3 edits in trunk/WebCore

Add a truncation variable to text run boxes that will eventually be used to know how to cut out some of the glyphs when
rendering.

Reviewed by darin

  • khtml/rendering/render_text.cpp: (RenderText::clearTextOverflowTruncation):
  • khtml/rendering/render_text.h: (khtml::InlineTextBox:::InlineRunBox): (khtml::InlineTextBox::clearTruncation):
12:53 AM Changeset in webkit [6848] by darin
  • 7 edits in trunk/WebKit

Reviewed by Maciej.

  • fixed some things for GC that Patrick missed, or that happened after the branch
  • Carbon.subproj/HIWebView.m: (HIWebViewConstructor): Use CFRetain instead of retain. (HIWebViewDestructor): Use CFRelease instead of release.
  • Misc.subproj/WebFileDatabase.m: (-[WebFileDatabase initWithPath:]): Use release instead of dealloc.
  • WebCoreSupport.subproj/WebImageRenderer.m: (-[WebImageContext finalize]): Had [super dealloc] here by mistake; change to [super finalize].
  • WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer finalize]): Added.
  • WebView.subproj/WebDebugDOMNode.m: (-[WebDebugDOMNode initWithWebFrameView:]): Use release instead of dealloc.
  • WebView.subproj/WebRenderNode.m: (-[WebRenderNode initWithWebFrameView:]): Use release instead of dealloc.
12:46 AM Changeset in webkit [6847] by darin
  • 11 edits in trunk/WebCore

Reviewed by Maciej.

  • fixed some things for GC that Patrick missed, or that happened after the branch
  • kwq/DOM-CSS.mm: (-[DOMStyleSheet finalize]): Added. (-[DOMStyleSheetList finalize]): Added. (-[DOMCSSStyleSheet finalize]): Added. (-[DOMMediaList finalize]): Added. (-[DOMCSSRuleList finalize]): Added. (-[DOMCSSRule finalize]): Added. (-[DOMCSSStyleDeclaration finalize]): Added. (-[DOMCSSValue finalize]): Added. (-[DOMRGBColor finalize]): Added. (-[DOMRect finalize]): Added. (-[DOMCounter finalize]): Added.
  • kwq/DOM.mm: (-[DOMObject finalize]): Added. (-[DOMNode finalize]): Added. (-[DOMNamedNodeMap finalize]): Added. (-[DOMNodeList finalize]): Added. (-[DOMImplementation finalize]): Added. (-[DOMRange finalize]): Added. (-[DOMNodeFilter finalize]): Added. (-[DOMNodeIterator finalize]): Added. (-[DOMTreeWalker dealloc]): Removed unneeded nil check. (-[DOMTreeWalker finalize]): Added.
  • kwq/DOMHTML.mm: (-[DOMHTMLCollection finalize]): Added. (-[DOMHTMLOptionsCollection finalize]): Added.
  • kwq/KWQClipboard.mm: (KWQClipboard::KWQClipboard): Use KWQRetain instead of retain. (KWQClipboard::~KWQClipboard): Use KWQRelease instead of release.
  • kwq/KWQEditCommand.mm: (-[KWQEditCommand finalize]): Added.
  • kwq/KWQFont.mm: (QFont::~QFont): Use KWQRelease instead of release.
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::keyEvent): Use KWQRetain instead of retain, and KWQRelease instead of release. (KWQKHTMLPart::mouseDown): Use KWQRetain instead of retain, and KWQRelease instead of release. (KWQKHTMLPart::mouseDragged): Use KWQRetain instead of retain, and KWQRelease instead of release. (KWQKHTMLPart::mouseUp): Use KWQRetain instead of retain, and KWQRelease instead of release. (KWQKHTMLPart::mouseMoved): Use KWQRetain instead of retain, and KWQRelease instead of release. (KWQKHTMLPart::sendContextMenuEvent): Use KWQRetain instead of retain, and KWQRelease instead of release.
  • kwq/KWQPageState.mm: (-[KWQPageState finalize]): Added. Filed <rdar://problem/3694163> about the fact that this is not right.
  • kwq/KWQTimer.mm: (-[KWQSingleShotTimerTarget finalize]): Added.
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge finalize]): Added. Filed <rdar://problem/3694165> about the fact that this is not right.
12:38 AM Changeset in webkit [6846] by darin
  • 3 edits in trunk/JavaScriptCore

Reviewed by Maciej.

  • fixed some things for GC that Patrick missed, or that happened after the branch
  • bindings/objc/WebScriptObject.mm: (-[WebScriptObject dealloc]): Moved removeNativeReference call here from private object. (-[WebScriptObject finalize]): Added.
  • added some missing nil checks
  • bindings/objc/objc_instance.mm: (ObjcInstance::ObjcInstance): Check for nil. (ObjcInstance::~ObjcInstance): Check for nil. (ObjcInstance::operator=): Check for nil.
12:24 AM Changeset in webkit [6845] by hyatt
  • 1 edit in trunk/WebCore/khtml/rendering/bidi.cpp

Typo in src comment.

12:23 AM Changeset in webkit [6844] by trey
  • 2 edits in trunk/WebKit

Fix ASSERT/crash we get sometimes when dragging link images. Turns
out there was an uninitialized variable for the image size,
so at random we would try to create huge images that could not
be focused.

Reviewed by Maciej and Darin.

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _dragImageForLinkElement:]): Trivial fix to not use += with uninited variable.
12:21 AM Changeset in webkit [6843] by hyatt
  • 7 edits in trunk/WebCore

Initial work on text truncation. Working top-down, I think I've made all the changes I will need to bidi.cpp
and to the block code itself. The rest of the code can be concentrated in the render_line and render_text files.

Reviewed by darin

  • khtml/rendering/bidi.cpp: (khtml::RenderBlock::layoutInlineChildren): (khtml::RenderBlock::findNextLineBreak): (khtml::RenderBlock::deleteEllipsisLineBoxes): (khtml::RenderBlock::checkLinesForTextOverflow):
  • khtml/rendering/render_block.h:
  • khtml/rendering/render_line.cpp: (RootInlineBox::detach): (RootInlineBox::detachEllipsisBox): (RootInlineBox::canAccommodateEllipsis): (RootInlineBox::placeEllipsis):
  • khtml/rendering/render_line.h: (khtml::RootInlineBox::RootInlineBox):
  • khtml/rendering/render_text.cpp: (RenderText::clearTextOverflowTruncation):
  • khtml/rendering/render_text.h:
12:01 AM Changeset in webkit [6842] by trey
  • 2 edits in trunk/WebCore

3692690 - REGRESSION: canceling drag from WebView cause link to load
Just need to take extra care to cancel any click handling in
all cases once we're committed to doing the drag.

Reviewed by Darin.

  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::khtmlMouseMoveEvent): Call invalidateClick once we're past the hysteresis point, and definitely going to try to start a drag and drop.

Jun 14, 2004:

11:48 PM Changeset in webkit [6841] by darin
  • 2 edits in trunk/WebCore
  • fixed crash on boot
  • kwq/KWQFoundationExtras.h: (KWQRetainNSRelease): Fixed return value of this method; was uninitialized.
11:22 PM Changeset in webkit [6840] by trey
  • 4 edits in trunk/WebCore

Dashboard wants access to pastboard data during the drag gesture.

We address this need be allowing docs that are local files to access the
pasteboard data during a drag, while other pages can only get at the types
list until the drop happens. This is deemed safe because local files already
have such broad super powers.

Reviewed by Maciej.

  • kwq/KWQKURL.h:
  • kwq/KWQKURL.mm: (KURL::isLocalFile): Implement this QT method to look for the file scheme.
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge dragOperationForDraggingInfo:]): Use more relaxed clipboard security for local file pages. (-[WebCoreBridge dragExitedWithDraggingInfo:]): Ditto.
10:55 PM Changeset in webkit [6839] by darin
  • 26 edits
    1 add in trunk/WebKit

Reviewed by me, code changes by Patrick Beard.

  • fixed <rdar://problem/3671507>: (WebKit should adopt GC changes and compile with GC enabled)
  • WebKit.pbproj/project.pbxproj: Added WebNSObjectExtras.h.
  • Misc.subproj/WebNSObjectExtras.h: Added. Includes WebMakeCollectable, a cover for CFMakeCollectable that returns type id, for less casting, and works on Panther as well as Tiger. Also declares finalize in NSObject so we can call super without warnings on Panther.
  • Carbon.subproj/CarbonWindowAdapter.m: Fixed header and includes a bit. (-[CarbonWindowAdapter finalize]): Added.
  • History.subproj/WebBackForwardList.m: (-[WebBackForwardList dealloc]): Got count outside loop. (-[WebBackForwardList finalize]): Added.
  • History.subproj/WebHistoryItem.m: (-[WebHistoryItem finalize]): Added.
  • Misc.subproj/WebFileDatabase.m: (-[WebFileDatabase _createLRUList:]): Use release on Panther, drain on Tiger. (+[WebFileDatabase _syncLoop:]): Ditto. (-[WebFileDatabase dealloc]): Removed, since we never deallocate objects of this class, and the method was untested.
  • Misc.subproj/WebKitErrors.m: (registerErrors): Use release on Panther, drain on Tiger.
  • Misc.subproj/WebKitNSStringExtras.m: (+[NSString _web_encodingForResource:]): Use WebMakeCollectable. Also fixed indenting.
  • Misc.subproj/WebNSURLExtras.m: (+[NSURL _web_URLWithData:relativeToURL:]): Use WebMakeCollectable. (-[NSURL _web_URLWithLowercasedScheme]): Use WebMakeCollectable. (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Change code to use CFRelease to balance CFURLCreateStringByReplacingPercentEscapes CFString creation, not release.
  • Plugins.subproj/WebBaseNetscapePluginStream.m: (-[WebBaseNetscapePluginStream finalize]): Added.
  • Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView freeAttributeKeysAndValues]): Added. Shared code for dealloc and finalize. (-[WebBaseNetscapePluginView dealloc]): Call freeAttributeKeysAndValues. (-[WebBaseNetscapePluginView finalize]): Added. (-[WebBaseNetscapePluginView requestWithURLCString:]): Changed so that CFString objects are released with CFRelease, not release. (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]): Fixed storage leak in error case. Made sure CFString object is released with CFRelease, not release. (-[WebBaseNetscapePluginView _postURLNotify:target:len:buf:file:notifyData:allowHeaders:]): Another CFString that needed to a CFRelease, not a release. (-[WebBaseNetscapePluginView status:]): Ditto.
  • Plugins.subproj/WebBasePluginPackage.m: (-[WebBasePluginPackage pathByResolvingSymlinksAndAliasesInPath:]): Changed code to CFRelease a CFURLRef, instead of release. (-[WebBasePluginPackage finalize]): Added.
  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge fini]): Added. Shared code for dealloc and finalize. (-[WebBridge dealloc]): Call fini. (-[WebBridge finalize]): Added.
  • WebCoreSupport.subproj/WebGlyphBuffer.m: (-[WebGlyphBuffer finalize]): Added.
  • WebCoreSupport.subproj/WebImageRenderer.m: (-[WebImageContext initWithBounds:context:]): Use CGContextRetain to avoid cast. (-[WebImageContext dealloc]): Tweaked. (-[WebImageContext finalize]): Added. (-[WebImageRenderer finalize]): Added. (-[WebPDFDocument finalize]): Added.
  • WebView.subproj/WebDataProtocol.m: (+[NSURL _web_uniqueWebDataURL]): Changed so that CFString object is released with CFRelease, not release.
  • WebView.subproj/WebDataSource.m: (-[WebDataSourcePrivate dealloc]): Took non-release work out of here. (-[WebDataSource dealloc]): Moved it here. (-[WebDataSource finalize]): Added. (-[WebDataSource isLoading]): Use release on Panther, drain on Tiger.
  • WebView.subproj/WebFrame.m: (-[WebFramePrivate dealloc]): Took non-release work out of here. (-[WebFrame dealloc]): Moved it here. (-[WebFrame finalize]): Added.
  • WebView.subproj/WebFrameView.m: (-[WebFrameView finalize]): Added.
  • WebView.subproj/WebHTMLRepresentation.m: (-[WebHTMLRepresentation finalize]): Added.
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLViewPrivate dealloc]): Moved non-release work out of here. (-[WebHTMLView dealloc]): Moved it here. (-[WebHTMLView finalize]): Added.
  • WebView.subproj/WebImageView.m: (-[WebImageView finalize]): Added.
  • WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient finalize]): Added.
  • WebView.subproj/WebTextView.m: (-[WebTextView finalize]): Added.
  • WebView.subproj/WebView.m: (-[WebView finalize]): Added.
10:33 PM Changeset in webkit [6838] by darin
  • 17 edits
    1 add in trunk/WebCore

Reviewed by me, code changes by Patrick Beard.

  • fixed <rdar://problem/3671507>: (WebKit should adopt GC changes and compile with GC enabled)
  • WebCore.pbproj/project.pbxproj: Added KWQFoundationExtras.h.
  • kwq/KWQFoundationExtras.h: Added. (KWQRetain): Cover for CFRetain that is tolerant of nil. (KWQRelease): Cover for CFRelease that is tolerant of nil. (KWQRetainNSRelease): Combination of a CFRetain and an -[NSObject release] that is tolerant of nil. Also includes a declaration of finalize so we can call [super finalize] without warnings on Panther.
  • kwq/DOM.mm: (ObjCNodeFilterCondition::ObjCNodeFilterCondition): Use CFRetain instead of retain. (ObjCNodeFilterCondition::~ObjCNodeFilterCondition): Use CFRelease instead of release.
  • kwq/KWQComboBox.mm: (QComboBox::~QComboBox): Use KWQRelease instead of release. (QComboBox::setFont): Use KWQRelease instead of release. (QComboBox::labelFont): Use KWQRetain instead of retain.
  • kwq/KWQCursor.mm: (QCursor::QCursor): Use KWQRetain instead of retain. (QCursor::~QCursor): Use KWQRelease instead of release. (QCursor::operator=): More of the same.
  • kwq/KWQFileButton.mm: (KWQFileButton::KWQFileButton): Use KWQRetainNSRelease to retain a newly-allocated object. (KWQFileButton::~KWQFileButton): Use CFRelease instead of release.
  • kwq/KWQFont.mm: (QFont::QFont): Use KWQRetain instead of retain. (QFont::operator=): More of the same. (QFont::setFamily): Use KWQRelease instead of release. (QFont::setFirstFamily): Use KWQRelease instead of release. (QFont::setPixelSize): Use KWQRelease instead of release. (QFont::setWeight): Use KWQRelease instead of release. (QFont::setItalic): Use KWQRelease instead of release. (QFont::getNSFont): Use KWQRetain instead of retain.
  • kwq/KWQFontMetrics.mm: (QFontMetricsPrivate::~QFontMetricsPrivate): Use KWQRelease instead of release. (QFontMetricsPrivate::getRenderer): Use KWQRetain instead of retain. (QFontMetricsPrivate::setFont): Use KWQRelease instead of release.
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::~KWQKHTMLPart): Use KWQRelease instead of release. (KWQKHTMLPart::clearRecordedFormValues): Use KWQRelease instead of release. (KWQKHTMLPart::recordFormValue): Use KWQRetainNSRelease and use KWQRetain instead of retain. (KWQKHTMLPart::windowScriptObject): Use KWQRetainNSRelease.
  • kwq/KWQKJobClasses.mm: (KIO::TransferJobPrivate::TransferJobPrivate): Use KWQRetainNSRelease. (KIO::TransferJobPrivate::~TransferJobPrivate): Use KWQRelease instead of release. (KIO::TransferJob::setLoader): More of the same.
  • kwq/KWQLoader.mm: (KWQRetainResponse): Use KWQRetain instead of retain. (KWQReleaseResponse): Use KWQRelease instead of release.
  • kwq/KWQPainter.mm: (QPainterPrivate::~QPainterPrivate): Use KWQRelease instead of release. (QPainter::_updateRenderer): More of the same. (QPainter::initFocusRing): Use KWQRetainNSRelease. (QPainter::clearFocusRing): Use KWQRelease instead of release.
  • kwq/KWQPixmap.mm: (QPixmap::QPixmap): Use KWQRetain instead of retain. (QPixmap::~QPixmap): Use KWQRelease instead of release. (QPixmap::receivedData): Use KWQRetain instead of retain. (QPixmap::resize): Use KWQRetainNSRelease and use KWQRelease instead of release. (QPixmap::operator=): More of the same.
  • kwq/KWQRegion.mm: (QRegion::QRegion): Use KWQRetain instead of retain. (QRegion::~QRegion): Use KWQRelease instead of release. (QRegion::operator=): More of the same.
  • kwq/KWQTimer.mm: (QTimer::start): Use KWQRetain instead of retain. (QTimer::stop): Use KWQRelease instead of release. (QTimer::fire): Use KWQRelease instead of release.
  • kwq/KWQWidget.mm: (QWidget::QWidget): Use KWQRetain instead of retain. (QWidget::~QWidget): Use KWQRelease instead of release. (QWidget::setView): More of the same.
  • kwq/WebCoreSettings.mm: (-[WebCoreSettings finalize]): Delete the storage here, as well as in dealloc.
10:17 PM Changeset in webkit [6837] by darin
  • 4 edits in trunk/JavaScriptCore

Reviewed by me, code changes by Patrick Beard.

  • fixed <rdar://problem/3671507>: (WebKit should adopt GC changes and compile with GC enabled)
  • bindings/objc/objc_instance.mm: (ObjcInstance::ObjcInstance): Use CFRetain instead of retain. (ObjcInstance::~ObjcInstance): Use CFRelease instead of release. (ObjcInstance::operator=): More of the same. (ObjcInstance::end): Use [pool drain] if compiling on Tiger.
  • bindings/objc/objc_runtime.mm: (ObjcArray::ObjcArray): Use CFRetain instead of retain. (ObjcArray::~ObjcArray): Use CFRelease instead of release. (ObjcArray::operator=): More of the same.
  • bindings/testbindings.mm: Fixed incorrect license. (main): Use [pool drain] if compiling on Tiger.
6:21 PM Changeset in webkit [6836] by mjs
  • 2 edits in trunk/WebCore

Reviewed by Trey.

<rdar://problem/3693818>: (Safari should use CG calls for circle drawing for better performance)

  • kwq/KWQPainter.mm: (QPainter::drawEllipse): Use CG calls instead of NS calls for faster circle drawing. (QPainter::drawArc): Ditto.
6:09 PM Changeset in webkit [6835] by trey
  • 1 edit in trunk/WebKit/ChangeLog

Fix reviewer field of previous checkin

6:07 PM Changeset in webkit [6834] by trey
  • 1 edit in trunk/WebCore/ChangeLog-2005-08-23

Fill in reviewer field from previous checkin.

3:43 PM Changeset in webkit [6833] by kocienda
  • 2 edits in trunk/WebCore

Reviewed by Vicki

Fix for this bug:

<rdar://problem/3690115> Crash deleting text out of iChat's profile (an editable Webview)

  • khtml/html/html_elementimpl.cpp: (HTMLElementImpl::isFocusable): Added null-check of parent node before deref'ing it.
2:43 PM Changeset in webkit [6832] by trey
  • 3 edits in trunk/WebCore

Two tweaks to recently added "drag" pseudo-class, as suggested by
Dave. The class is renamed to "-khtml-drag", and we update layout
when using it, instead of only updating styles.

Reviewed by hyatt.

  • khtml/css/css_base.cpp: (CSSSelector::extractPseudoType):
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::snapshotDragImage):
2:33 PM Changeset in webkit [6831] by kocienda
  • 2 edits in trunk/WebKit

Reviewed by Darin

Fix for this bug:

<rdar://problem/3693202> WebView.h header unnecessarily lists NSResponder methods it overrides

  • WebView.subproj/WebView.h: NSResponder overrides now gathered in a comment section.
1:58 PM Changeset in webkit [6830] by trey
  • 21 edits in trunk

WebCore:

Support for DHTML cut/copy/paste. We now support oncut, oncopy, onpaste. The events
are sent to the first node in the selection, or else the body. Current holes are
that we do not send events for operations in text fields or text areas (because it
is hard to get the right hooks into the AppKit).

We also send onbeforecut, onbeforecopy, onbeforepaste before the other events, which
isn't really WinIE compatible, but is close. WinIE uses these to enable cut/paste
menu items in its UI. DB doesn't need this for now.

Reviewed by NOBODY (OOPS!).

  • khtml/ecma/kjs_dom.cpp: (DOMNode::getValueProperty): Boilerplate for new events (DOMNode::putValue): Boilerplate for new events
  • khtml/ecma/kjs_dom.h: (KJS::DOMNode::): Boilerplate for new events
  • khtml/ecma/kjs_dom.lut.h:
  • khtml/ecma/kjs_events.cpp: (DOMEvent::DOMEvent): "dataTransfer" and "clipboardData" properties are conditionally defined on DOMEvent, depending on if the event is a dragging or clipboard event. (DOMMouseEvent::mark): Pass mark along to any clipboard object we have. (DOMEvent::getValueProperty): Return "dataTransfer" or "clipboardData". (DOMMouseEvent::getValueProperty): Returning "dataTransfer" now handled by the superclass.
  • khtml/ecma/kjs_events.h: (KJS::DOMEvent::): (KJS::DOMMouseEvent::DOMMouseEvent): (KJS::DOMMouseEvent::): (KJS::DOMMouseEvent::toMouseEvent):
  • khtml/ecma/kjs_events.lut.h:
  • khtml/html/html_elementimpl.cpp: (HTMLElementImpl::parseHTMLAttribute): Boilerplate for new events
  • khtml/misc/htmlattrs.c:
  • khtml/misc/htmlattrs.h:
  • khtml/misc/htmlattrs.in: Boilerplate for new events
  • khtml/xml/dom2_eventsimpl.cpp: (EventImpl::typeToId): Boilerplate for new events (EventImpl::idToType): Boilerplate for new events (EventImpl::isDragEvent): New utility (EventImpl::isClipboardEvent): New utility (MouseEventImpl::isDragEvent): New utility (ClipboardEventImpl::ClipboardEventImpl): ref optional clipboard (ClipboardEventImpl::~ClipboardEventImpl): deref optional clipboard (ClipboardEventImpl::isClipboardEvent): New utility
  • khtml/xml/dom2_eventsimpl.h: (DOM::EventImpl::): Boilerplate for new events (DOM::ClipboardEventImpl::clipboard):
  • kwq/KWQClipboard.h: Monkey business so this file is includable in C++.
  • kwq/KWQClipboard.mm:
  • kwq/KWQKHTMLPart.h:
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::dispatchCPPEvent): Send one of the new events. (KWQKHTMLPart::tryCut): Declare pasteboard types, send cut events. (KWQKHTMLPart::tryCopy): Declare pasteboard types, send copy events. (KWQKHTMLPart::tryPaste): Send paste events.
  • kwq/WebCoreBridge.h:
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge tryDHTMLCut]): Pass through to part (-[WebCoreBridge tryDHTMLCopy]): Ditto (-[WebCoreBridge tryDHTMLPaste]): Ditto

WebKit:

Support for DHTML cut/copy/paste.

Reviewed by NOBODY (OOPS!).

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView copy:]): Give DHTML first crack at executing the command. (-[WebHTMLView cut:]): Ditto (-[WebHTMLView paste:]): Ditto
11:50 AM Changeset in webkit [6829] by cblu
  • 8 edits in trunk/WebKit

Fixed: <rdar://problem/3674456> make new drag & drop API compatible with DHTML dragging

Reviewed by trey.

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): tweak
  • WebView.subproj/WebUIDelegate.h: removed old, added new methods
  • WebView.subproj/WebUIDelegatePrivate.h: moved new methods to public header
  • WebView.subproj/WebView.h: removed old, added new methods
  • WebView.subproj/WebView.m: moved methods around (-[WebView moveDragCaretToPoint:]): moved (-[WebView removeDragCaret]): moved (-[WebView _bridgeAtPoint:]): moved (-[WebView editableDOMRangeForPoint:]): moved
  • WebView.subproj/WebViewInternal.h: add new internal method
  • WebView.subproj/WebViewPrivate.h: moved new methods to public header
11:47 AM Changeset in webkit [6828] by trey
  • 2 edits in trunk/WebKit

Use a different hack, as recommended by Kristin, to force the drag
manager to exit a modal event wait it is in. The hack is required
to update the drag image on the fly. Instead of posting a CG
event we post at the AppKit level.

Reviewed by Louch

  • WebCoreSupport.subproj/WebGraphicsBridge.m: (-[WebGraphicsBridge setDraggingImage:at:]):
11:26 AM Changeset in webkit [6827] by trey
  • 11 edits in trunk/WebCore

A new CSS pseudo-class ".drag" is added. Analogous to the "hover" class,
this class determines styles used while an element is generating a drag
image.

Reviewed by hyatt.

  • khtml/css/css_base.cpp: (CSSSelector::extractPseudoType): Boilerplate for adding new class.
  • khtml/css/css_base.h: Boilerplate for adding new class.
  • khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::checkOneSelector): Match new class against elements being dragged.
  • khtml/css/cssstyleselector.h: (khtml::StyleSelector::): Boilerplate for adding new class.
  • khtml/rendering/render_object.cpp: (RenderObject::RenderObject): Init new member. (RenderObject::isDragging): Return whether this object is being dragged. (RenderObject::updateDragState): Paint us an all children with a new dragged state.
  • khtml/rendering/render_object.h:
  • khtml/rendering/render_style.h: Boilerplate for adding new class. (khtml::RenderStyle::NonInheritedFlags::operator==): (khtml::RenderStyle::setBitDefaults): (khtml::RenderStyle::affectedByDragRules): (khtml::RenderStyle::setAffectedByDragRules):
  • kwq/KWQClipboard.mm: (KWQClipboard::dragNSImage): Method rename.
  • kwq/KWQKHTMLPart.h:
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::snapshotDragImage): Mark the element as being dragged before we snapshot it, so new style class will apply.
10:59 AM Changeset in webkit [6826] by kocienda
  • 1 edit
    12 adds in trunk

Reviewed by me

Added a few more editing-related layout tests.

  • layout-tests/editing/inserting/insert-3654864-fix-expected.txt: Added.
  • layout-tests/editing/inserting/insert-3654864-fix.html: Added.
  • layout-tests/editing/inserting/insert-3659587-fix-expected.txt: Added.
  • layout-tests/editing/inserting/insert-3659587-fix.html: Added.
  • layout-tests/editing/inserting/insert-after-delete-001-expected.txt: Added.
  • layout-tests/editing/inserting/insert-after-delete-001.html: Added.
  • layout-tests/editing/inserting/insert-br-case1-expected.txt: Added.
  • layout-tests/editing/inserting/insert-br-case1.html: Added.
  • layout-tests/editing/inserting/insert-br-case2-expected.txt: Added.
  • layout-tests/editing/inserting/insert-br-case2.html: Added.
  • layout-tests/editing/inserting/insert-br-case3-expected.txt: Added.
  • layout-tests/editing/inserting/insert-br-case3.html: Added.
10:58 AM Changeset in webkit [6825] by kocienda
  • 1 edit
    4 deletes in trunk

Reviewed by me

Regarding the bug below, removing some tests since we have removed the execCommand("paste")
feature, at least for now.

<rdar://problem/3684792>: (JavaScript execCommand("paste") presents security issues)

  • layout-tests/editing/pasteboard/copy-paste-text-001-expected.txt: Removed.
  • layout-tests/editing/pasteboard/copy-paste-text-001.html: Removed.
  • layout-tests/editing/pasteboard/cut-paste-text-002-expected.txt: Removed.
  • layout-tests/editing/pasteboard/cut-paste-text-002.html: Removed.
10:58 AM Changeset in webkit [6824] by cblu
  • 2 edits in trunk/WebKit

Fixed:
<rdar://problem/3692668> REGRESSION: delay when images and links
<rdar://problem/3692675> links should drag when dragging images that are links when drag source action is WebDragSourceActionLink

Reviewed by trey.

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _mayStartDragWithMouseDragged:]): cleaned up, only use selection delay for selections, allow links to be dragged when image dragging is disabled
10:50 AM Changeset in webkit [6823] by kocienda
  • 2 edits in trunk/WebCore

Reviewed by Darin

Fix for this bug:

<rdar://problem/3672377> assertion failure in AppendNodeCommandImpl::doApply due to non-0 exception code trying to insert a DIV markup string

  • khtml/xml/dom_nodeimpl.cpp: (NodeImpl::checkAddChild): This function was being too strict in disallowing certain nodes to be added as other child nodes, applying rules we typically use for parsing. However, those parsing rules are primarily for dealing with "bad" HTML, and should not be applied to programmatic DOM operations. The fix involves removing calls to childAllowed().
10:00 AM Changeset in webkit [6822] by trey
  • 18 edits in trunk

WebCore:

The drag image may be updated during a DHTML drag. This includes updating
from a Timer instead of a drag event handler. In addition, an arbitrary
element can be set as the one to snapshot for the drag image.

Reviewed by John

  • khtml/ecma/kjs_events.cpp: (ClipboardProtoFunc::tryCall): setDragImage accepts a node. Previously, it had to be an Image object.
  • khtml/rendering/render_object.cpp: (RenderObject::paintingRootRect): Also returns top element's rect.
  • khtml/rendering/render_object.h:
  • khtml/xml/dom2_eventsimpl.h:
  • kwq/KWQClipboard.h: New security mode where image is still writable, but pasteboard is not. (KWQClipboard::): (KWQClipboard::setDragHasStarted):
  • kwq/KWQClipboard.mm: (KWQClipboard::KWQClipboard): Part may be passed. Needed in the source case to generate an image from an element. (KWQClipboard::setAccessPolicy): New, replaces former becomeNumb method which wasn't flexible enough. (KWQClipboard::accessPolicy): New getter. (KWQClipboard::dragImage): No change, diff confusion. (KWQClipboard::setDragImage): Call new helper, below. (KWQClipboard::dragImageElement): New, return any element set. (KWQClipboard::setDragImageElement): New, call new helper. (KWQClipboard::setDragImage): New helper, set the image via either a pixmap or an element to snapshot, pushes the result to WebKit if we've already started the drag. (KWQClipboard::dragNSImage): Generate an NSImage and mouse offset, no matter how the drag image was set (Image or element).
  • kwq/KWQKHTMLPart.h: A single clipboard is kept over the life of a source drag instead of making one for each event.
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::KWQKHTMLPart): Init clipboard. (KWQKHTMLPart::~KWQKHTMLPart): Free clipboard. (KWQKHTMLPart::freeClipboard): New helper. (KWQKHTMLPart::dispatchDragSrcEvent): Most code moved to caller. (KWQKHTMLPart::khtmlMouseMoveEvent): Make clipboard for this drag session. Init clipboard to make an image from the dragSource element. Mark the drag as having started. (KWQKHTMLPart::dragSourceMovedTo): Clipboard will update WK with any new drag image, so we don't need to. (KWQKHTMLPart::dragSourceEndedAt): Ditto. (KWQKHTMLPart::elementImage): Also return element rect.
  • kwq/WebCoreBridge.h: Glue moved to WebCoreGraphicsBridge.
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge dragOperationForDraggingInfo:]): Use new method. (-[WebCoreBridge dragExitedWithDraggingInfo:]): Ditto (-[WebCoreBridge concludeDragForDraggingInfo:]): Ditto
  • kwq/WebCoreGraphicsBridge.h:
  • kwq/WebCoreGraphicsBridge.m: (-[WebCoreGraphicsBridge setDraggingImage:at:]): Glue moved from WebBridge

WebKit:

Small rearrangement to support dynamic changing of the drag
image during DHTML dragging.

Reviewed by John

  • WebCoreSupport.subproj/WebBridge.m: Bridge glue moved to WebGraphicsBridge.
  • WebCoreSupport.subproj/WebGraphicsBridge.m: (FlipImageSpec): Code moved from WebHTMLView.m. (-[WebGraphicsBridge setDraggingImage:at:]): Ditto. Plus, we've added a gross event posting hack to force CG drag manager to update the display when we set the drag image.
  • WebView.subproj/WebHTMLView.m: Code moved to WebGraphicsBridge.
  • WebView.subproj/WebHTMLViewPrivate.h:

Jun 12, 2004:

10:38 PM Changeset in webkit [6821] by vicki
  • 3 edits in trunk

fix the release markers in the ChangeLogs, which said '144' instead of 'Safari-144' (oops)

Jun 11, 2004:

6:04 PM Changeset in webkit [6820] by cblu
  • 17 edits in trunk

WebCore:

Support for WebKit drag & drop API.

Reviewed by trey.

  • kwq/WebCoreBridge.h:
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge _positionForPoint:]): new (-[WebCoreBridge moveDragCaretToPoint:]): call _positionForPoint (-[WebCoreBridge editableDOMRangeForPoint:]): new

WebKit:

Implemented the remainder of the drag & drop API.

Reviewed by trey.

  • Misc.subproj/WebNSPasteboardExtras.h:
  • Misc.subproj/WebNSPasteboardExtras.m: (-[NSPasteboard _web_declareAndWriteDragImage:URL:title:archive:source:]): new
  • Misc.subproj/WebNSViewExtras.h:
  • Misc.subproj/WebNSViewExtras.m: (-[NSView _web_dragImage:rect:event:pasteboard:source:]): simplified, this method now just creates a drag image and starts the drag
  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge allowDHTMLDrag:UADrag:]): now calls _delegateDragSourceActionMask on WebHTMLView to interact with the delegate
  • WebView.subproj/WebDefaultUIDelegate.m:
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): call new delegate method, cleaned-up a little (-[WebHTMLView draggingUpdatedWithDraggingInfo:actionMask:]): call drag caret methods on WebView instead of WebBridge so WebView can make sure only 1 HTML view has a drag cursor (-[WebHTMLView draggingCancelledWithDraggingInfo:]): ditto (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): ditto (-[WebHTMLView _delegateDragSourceActionMask]): new, gets drag source action mask from delegate
  • WebView.subproj/WebHTMLViewInternal.h:
  • WebView.subproj/WebImageView.h:
  • WebView.subproj/WebImageView.m: (-[WebImageView mouseDown:]): get the drag source action mask from the delegate (-[WebImageView mouseDragged:]): inform the delegate of the drag
  • WebView.subproj/WebView.m: (-[WebViewPrivate dealloc]): assert that dragCursorBridge is nil (-[WebView _close]): release dragCursorBridge (-[WebView _bridgeAtPoint:]): new (-[WebView editableDOMRangeForPoint:]): new API (-[WebView moveDragCaretToPoint:]): new API (-[WebView removeDragCaret]): new API (-[WebView _frameViewAtWindowPoint:]): moved so this can be called internally
  • WebView.subproj/WebViewInternal.h:
  • WebView.subproj/WebViewPrivate.h:
2:01 PM Changeset in webkit [6819] by darin
  • 4 edits in trunk/WebCore

Reviewed by Dave.

  • fixed <rdar://problem/3645846>: (REGRESSION: Stuck "Loading" when logging into Google's Gmail on newer versions of Safari)
  • khtml/html/html_baseimpl.cpp: (HTMLFrameElementImpl::parseHTMLAttribute): Call through to base class for ATTR_ID so the "has ID" bit gets set.
  • khtml/html/html_imageimpl.cpp: (HTMLImageElementImpl::parseHTMLAttribute): Move ATTR_COMPOSITE code up and out of the way so it doesn't screw up ATTR_ID parsing. (HTMLMapElementImpl::parseHTMLAttribute): Call through to base class for ATTR_ID so the "has ID" bit gets set.
  • khtml/html/html_objectimpl.cpp: (HTMLAppletElementImpl::parseHTMLAttribute): Remove ATTR_ID case; not needed. (HTMLParamElementImpl::parseHTMLAttribute): Call through to base class for ATTR_ID so the "has ID" bit gets set.
12:37 PM Changeset in webkit [6818] by kocienda
  • 3 edits in trunk/WebCore

Reviewed by Hyatt

Fix for this bug:

<rdar://problem/3659587>: "when typing in Blot, bold style does not carry over to next line after pressing 'return'"

Did some work to improve the insert newline command. The refinement is to insert the newline
at the upstream position of the caret, ensuring that the newline takes on the
appropriate style, and does not let the caret "escape" from an element that is
conferring style.

  • khtml/editing/htmlediting_impl.cpp: (khtml::InputNewlineCommandImpl::insertNodeAfterPosition): New helper. Adds smarts about adding newlines when the selection is a caret in a block. (khtml::InputNewlineCommandImpl::insertNodeBeforePosition): Ditto. (khtml::InputNewlineCommandImpl::doApply): Simplified cases. One case in the code could not happen.
  • khtml/editing/htmlediting_impl.h:

Fix for this bug:

<rdar://problem/3654864>: "Pasting content at start of line places it at end of previous line"

(khtml::InputTextCommandImpl::prepareForTextInsertion): Simple code mistake. Content was indeed
being added to the line before. Fixed to add new content after the line break.

12:21 PM Changeset in webkit [6817] by trey
  • 13 edits in trunk

WebCore:

Prep work for latest delegate API for dragging. In addition, I also straightened out all
the cases of DHTML setting a drag image or setting pasteboard data, and how that would
override WebKit's default behavior (which follows how WinIE does things).

Reviewed by Chris.

  • khtml/rendering/render_object.cpp: (RenderObject::draggableNode): Obey new params for whether a DHTML or UserAgent (i.e., WebKit) drag source is allowed.
  • khtml/rendering/render_object.h:
  • kwq/KWQKHTMLPart.h:
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::dispatchDragSrcEvent): Setting pasteboard data was moved out of here, now caller's responsibility. (KWQKHTMLPart::khtmlMouseMoveEvent): Ask bridge for allowable drag actions (DHTML vs UA). Only send drag events if DHTML is allowed. Only generate a drag image if the source is a DHTML element. Note whether event handler set any pasteboard data, and pass that fact to WebKit. (KWQKHTMLPart::dragSourceMovedTo): Only send drag events if DHTML is allowed. (KWQKHTMLPart::dragSourceEndedAt): Only send drag events if DHTML is allowed.
  • kwq/WebCoreBridge.h:

WebKit:

Prep work for latest delegate API for dragging. In addition, I also straightened out all
the cases of DHTML setting a drag image or setting pasteboard data, and how that would
override WebKit's default behavior (which follows how WinIE does things).

Reviewed by Chris.

  • Misc.subproj/WebNSViewExtras.h:
  • Misc.subproj/WebNSViewExtras.m: (-[NSView _web_dragImage:archive:rect:URL:title:event:dragImage:dragLocation:writePasteboard:]): New args to allow WebCore override of dragImage and pasteboard data.
  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge allowDHTMLDrag:UADrag:]): New method to return the drag action info to WC. (-[WebBridge startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): Pass along new args.
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): Allow WebCore to override drag image and pasteboard data for any type of drag. (-[WebHTMLView mouseDragged:]): Pass NO for new args.
  • WebView.subproj/WebHTMLViewPrivate.h:
  • WebView.subproj/WebImageView.m: (-[WebImageView mouseDragged:]): Pass NO/nil for new args.
12:07 PM Changeset in webkit [6816] by sullivan
  • 1 edit in trunk/WebCore/WebCore.pbproj/project.pbxproj

Reviewed by Dave.

  • fixed <rdar://problem/3688971>: (on dual-800 tower, url field animation doesn't work half the time)
  • BrowserWindowController.m: (-[BrowserWindowController installRSSTransitionImageView]): Set the window's first responder to nil before hiding the webview if the focus had been in the webview. It's not clear why the behavior on one machine was different than others, but this fix is sensible and definitely fixes the problem on Jess's machine.
11:33 AM Changeset in webkit [6815] by kocienda
  • 3 edits in trunk

Reviewed by Trey

Lay some groundwork for better testing of inserting newlines. Layout
tests that use this new code will be coming soon.

  • khtml/editing/jsediting.cpp: Add commands for bold and inserting newlines.
  • layout-tests/editing/editing.js: Added new insertNewline command. which calls through to TypingCommand::insertNewline. There was no way to get to this command from JS before this addition.
11:06 AM Changeset in webkit [6814] by kocienda
  • 3 edits in trunk/WebCore

Reviewed by Darin

Javascript execCommand system wants to use case-insensitive QDict.
The interface for QDict offers this feature, but it was never implemented.
Now it is.

  • kwq/KWQDictImpl.h: Declare bool to store case-sensitive bit.
  • kwq/KWQDictImpl.mm: (KWQDictImpl::KWQDictImpl): No longer drops caseSensitive on the floor; stores it in instance variable. (KWQDictImpl::insert): Make lowercase version of key for operation, if necessary. (KWQDictImpl::remove): Ditto. (KWQDictImpl::find): Ditto. (KWQDictIteratorImpl::currentStringKey): Whitespace cleanup.

Jun 10, 2004:

5:08 PM Changeset in webkit [6813] by vicki
  • 3 edits in trunk

set version number to 145u; the tree is open

5:00 PM Changeset in webkit [6812]
  • 3 copies in tags/Safari-144

This commit was manufactured by cvs2svn to create tag 'Safari-144'.

5:00 PM Changeset in webkit [6811] by vicki
  • 6 edits in trunk

Safari-144 stamp

2:19 PM Changeset in webkit [6810] by kdecker
  • 6 edits in trunk

JavaScriptCore:

Reviewed by John.

  • kjs/lexer.cpp: (Lexer::setCode):
    • fixed <rdar://problem/3682398>: (error console line numbers are offset by 1)
  • kjs/lexer.h: (KJS::Lexer::lineNo):
    • fixed <rdar://problem/3682398>: (error console line numbers are offset by 1)

WebKit:

Reviewed by John.

  • WebView.subproj/WebResource.m: (-[WebResource description]):

-added per request of cblu

(-[WebResource _response]):

-added this method to the header

(-[WebResource _stringValue]):

  • gives the string value of the NSData representation
  • WebView.subproj/WebResourcePrivate.h:

WebBrowser:

Reviewed by John.

  • BrowserDocumentController.h:
  • BrowserDocumentController.m: -added support to open an HTMLSourceDocument powered by a WebResource (-[BrowserDocumentController openHTMLSourceDocumentWithResource:]):
  • Debug/DebugUtilities.m: (-[BrowserDocument showJavaScriptConsole:]):
  • Debug/ErrorCell.m:
    • doesn't display "Line:" if a line number is not present
    • magic numbers are now #define'd

(-[ErrorCell drawInteriorWithFrame:inView:]):

  • Debug/ErrorConsoleController.h:
  • Debug/ErrorConsoleController.m: (-[ErrorConsoleController init]): (-[ErrorConsoleController awakeFromNib]):
    • properly set the model's table view here, instead of init

(-[ErrorConsoleController clear:]):

  • removes errors from the model

(-[ErrorConsoleController findResourceInWebFrame:forURL:]):

  • fixes <rdar://problem/3682337>: (safari error console does not open the correct source document when an error is double-clicked)

(-[ErrorConsoleController findResourceInDocument:forURL:]):

  • fixes <rdar://problem/3682337>: (safari error console does not open the correct source document when an error is double-clicked)

(-[ErrorConsoleController findResourceInURL:]):

  • fixes <rdar://problem/3682337>: (safari error console does not open the correct source document when an error is double-clicked)

(-[ErrorConsoleController showPageSourceWindow:]):

  • fixes <rdar://problem/3682337>: (safari error console does not open the correct source document when an error is double-clicked)
  • Debug/ErrorConsoleModel.h:
  • Debug/ErrorConsoleModel.m: (-[ErrorConsoleModel setTable:]): (-[ErrorConsoleModel selectedURL]): (-[ErrorConsoleModel selectedLineNumber]):
  • HTMLSourceController.h:
  • HTMLSourceController.m: (-[HTMLSourceController selectLineAtIndex:]): (-[HTMLSourceController textView]): (-[HTMLSourceController rangeForLine:]):
    • fixes rdr://problem/3682360 (error console should highlight/select offending code when viewing error source)
  • HTMLSourceDocument.h:
  • HTMLSourceDocument.m: (-[HTMLSourceDocument initWithResource:]): (-[HTMLSourceDocument makeWindowControllers]): (-[HTMLSourceDocument displayName]):
    • now WebResource aware

(-[HTMLSourceDocument resource]):
(-[HTMLSourceDocument setResource:]):

  • WebBrowser.pbproj/project.pbxproj:
2:07 PM Changeset in webkit [6809] by kocienda
  • 3 edits in trunk/WebCore

Reviewed by Darin

Fix for this bug:

<rdar://problem/3654850>: "Style changes do not work across blocks"

Now, applying styles works across blocks. I did quite a bit
of internal redsign on the member functions of this class to
make this work. As a bonus, from an architectural standpoint,
all style changes are now done "in place". There is no more
copying of content in order to perform style changes.

  • khtml/editing/htmlediting_impl.cpp: (khtml::ApplyStyleCommandImpl::doApply): (khtml::ApplyStyleCommandImpl::removeHTMLStyleNode): (khtml::ApplyStyleCommandImpl::removeCSSStyle): (khtml::ApplyStyleCommandImpl::removeStyle): (khtml::ApplyStyleCommandImpl::nodeFullySelected): (khtml::ApplyStyleCommandImpl::splitTextAtStartIfNeeded): (khtml::ApplyStyleCommandImpl::splitTextAtEndIfNeeded): (khtml::ApplyStyleCommandImpl::surroundNodeRangeWithElement): (khtml::ApplyStyleCommandImpl::applyStyleIfNeeded): (khtml::ApplyStyleCommandImpl::positionInsertionPoint):
  • khtml/editing/htmlediting_impl.h:
1:36 PM Changeset in webkit [6808] by darin
  • 15 edits in trunk

WebCore:

Reviewed by Ken.

  • filled out execCommand a lot more
  • fixed <rdar://problem/3685231>: (execCommand italic is not implemented)
  • fixed <rdar://problem/3685232>: (execCommand bold is not implemented)
  • fixed <rdar://problem/3675899>: (Make queryCommandIndeterm work as specified in the Javascript execCommand Compatibility Plan)
  • fixed <rdar://problem/3675901>: (Make queryCommandState work as specified in the Javascript execCommand Compatibility Plan)
  • fixed <rdar://problem/3675904>: (Make queryCommandValue work as specified in the Javascript execCommand Compatibility Plan)
  • khtml/editing/jsediting.cpp: (DOM::JSEditor::queryCommandIndeterm): Changed to use KHTMLPart::TriState instead of CommandState. (DOM::JSEditor::queryCommandState): Ditto. (execStyleChange): Changed to use KHTMLPart::applyStyle. (stateStyle): Used KHTMLPart::selectionHasStyle for this. (selectionStartHasStyle): Use KHTMLPart::selectionStartHasStyle for this. (valueStyle): Used KHTMLPart::selectionStartStylePropertyValue for this. (execBold): Implemented toggling, using selectionStartHasStyle. (execItalic): Implemented toggling, using selectionStartHasStyle. (execPrint): Implemented. (enabledRedo): Implemented, using canRedo. (enabledUndo): Implemented, using canUndo. (stateNone): Renamed from stateNo. (valueBackColor): Implemented, using valueStyle. (valueFontName): Implemented, using valueStyle. (valueFontSize): Implemented, using valueStyle. (valueForeColor): Implemented, using valueStyle. (valueFontSize): Implemented, using valueStyle.
  • khtml/khtml_part.h: Added editing operations.
  • khtml/khtml_part.cpp: (KHTMLPart::copyToPasteboard): Added. (KHTMLPart::cutToPasteboard): Added. (KHTMLPart::redo): Added. (KHTMLPart::undo): Added. (KHTMLPart::applyStyle): Added. (updateState): Added. (KHTMLPart::selectionHasStyle): Added. (KHTMLPart::selectionStartHasStyle): Added. (KHTMLPart::selectionStartStylePropertyValue): Added. (KHTMLPart::selectionComputedStyle): Added. (KHTMLPart::print): Added.
  • khtml/ecma/kjs_window.cpp: (WindowFunc::tryCall): Call print() on plain old part, not KWQ(part).
  • kwq/KWQKHTMLPart.h: Removed print(), added _haveUndoRedoOperations.
  • kwq/KWQKHTMLPart.mm: (KHTMLPart::print): Moved from KWQKHTMLPart to KHTMLPart. (KWQKHTMLPart::registerCommandForUndo): Moved code here from bridge. (KWQKHTMLPart::registerCommandForRedo): Moved code here from bridge. (KWQKHTMLPart::clearUndoRedoOperations): Moved code here from bridge. (KWQKHTMLPart::issueUndoCommand): Moved code here from bridge. (KWQKHTMLPart::issueRedoCommand): Moved code here from bridge. (KWQKHTMLPart::issuePasteCommand): Moved code here from bridge. (KHTMLPart::canUndo): Added. (KHTMLPart::canRedo): Added.
  • kwq/WebCoreBridge.h: Added undoManager, removed undo-related methods.
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge applyStyle:]): Changed to call KHTMLPart::applyStyle.
  • WebCore.pbproj/.cvsignore: Updated for new Xcode files.

WebKit:

Reviewed by Ken.

  • WebCoreSupport.subproj/WebBridge.m: Removed undo-related methods. (-[WebBridge undoManager]): Added.
  • WebKit.pbproj/.cvsignore: Updated for new Xcode files.
9:27 AM Changeset in webkit [6807] by kocienda
  • 3 edits in trunk/WebKit

Reviewed by Darin

Fix for this bug:

<rdar://problem/3672088>: "Editable WebViews should maintain a selection even when they're not firstResponder"

Add some code to determine whether a WebHTMLView should maintain an
inactive selection when the view is not first responder. Traditionally,
these views have not maintained such selections, clearing them when the
view was not first responder. However, for appls embedding this view as
an editing widget, it is desirable to act more like an NSTextView. For
now, however, the view only acts in this way when the web view is set to
be editable with -[WebView setEditable:YES]. This will maintain
traditional behavior for WebKit clients dating back to before this
change, and will likely be a decent switch for the long term, since
clients to ste the web view to be editable probably want it to act like
a "regular" Cocoa view in terms of its selection behavior.

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView updateTextBackgroundColor]): Add code to tell whether the view is resigning first responder, and if it is, use the inactive text background color. (-[WebHTMLView maintainsInactiveSelection]): New helper which does checks to see if the new selection behavior should be used, or whether we should continue with traditional WebKit behavior. (-[WebHTMLView resignFirstResponder]): Call new maintainsInactiveSelection helper. If true, do not clear the selection.
  • WebView.subproj/WebHTMLViewInternal.h: Add resigningFirstResponder flag.

Jun 9, 2004:

10:28 PM Changeset in webkit [6806] by mjs
  • 4 edits in trunk/WebCore

Reviewed by Dave.

<rdar://problem/3671555>: Blot scrolls to the top every time you type

  • khtml/xml/dom_selection.cpp: (DOM::Selection::getRepaintRect): If the caret position is invalid, recompute it.
8:25 PM Changeset in webkit [6805] by hyatt
  • 9 edits in trunk/WebCore

Fix for 3607091, implement a style that prevents zoom and min font size from taking effect.
The name of the new style is "-apple-text-size-adjust" with values of "none" and "auto." The default
is "auto."

Reviewed by mjs

  • khtml/css/cssparser.cpp: (CSSParser::parseValue):
  • khtml/css/cssproperties.c: (hash_prop): (findProp):
  • khtml/css/cssproperties.h:
  • khtml/css/cssproperties.in:
  • khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::styleForElement): (khtml::CSSStyleSelector::pseudoStyleForElement): (khtml::CSSStyleSelector::applyDeclarations): (khtml::CSSStyleSelector::applyProperty): (khtml::CSSStyleSelector::checkForTextSizeAdjust):
  • khtml/css/cssstyleselector.h:
  • khtml/rendering/render_style.cpp: (textSizeAdjust): (StyleCSS3InheritedData): (StyleCSS3InheritedData::operator==): (RenderStyle::diff):
  • khtml/rendering/render_style.h: (khtml::RenderStyle::lineClamp): (khtml::RenderStyle::textSizeAdjust): (khtml::RenderStyle::setTextSizeAdjust): (khtml::RenderStyle::initialTextSizeAdjust):
4:50 PM Changeset in webkit [6804] by cblu
  • 9 edits in trunk/WebKit

Implemented drag destination portion of the new drag & drop API.

Reviewed by trey.

  • WebView.subproj/WebDefaultUIDelegate.m: (-[WebDefaultUIDelegate webView:dragDestinationActionMaskForDraggingInfo:]): new delegate implementation (-[WebDefaultUIDelegate webView:willPerformDragDestinationAction:forDraggingInfo:]): ditto
  • WebView.subproj/WebDocumentInternal.h:
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView draggingUpdatedWithDraggingInfo:actionMask:]): handle the action mask (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): ditto
  • WebView.subproj/WebUIDelegate.h:
  • WebView.subproj/WebUIDelegatePrivate.h:
  • WebView.subproj/WebView.m: (-[WebView _dragOperationForDraggingInfo:]): call new delegate methods (-[WebView performDragOperation:]): ditto
  • WebView.subproj/WebViewInternal.h:
  • WebView.subproj/WebViewPrivate.h:
3:58 PM Changeset in webkit [6803] by hyatt
  • 11 edits in trunk/WebCore

Implement parsing and setting of the text-overflow CSS3 property.

Reviewed by kocienda

  • khtml/css/cssparser.cpp: (CSSParser::parseValue):
  • khtml/css/cssproperties.c: (hash_prop): (findProp):
  • khtml/css/cssproperties.h:
  • khtml/css/cssproperties.in:
  • khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::applyProperty):
  • khtml/css/cssvalues.c: (hash_val): (findValue):
  • khtml/css/cssvalues.h:
  • khtml/css/cssvalues.in:
  • khtml/rendering/render_style.cpp: (textOverflow): (StyleCSS3NonInheritedData::operator==): (RenderStyle::diff):
  • khtml/rendering/render_style.h: (khtml::RenderStyle::textOverflow): (khtml::RenderStyle::setTextOverflow): (khtml::RenderStyle::initialTextOverflow):
1:19 PM Changeset in webkit [6802] by hyatt
  • 22 edits in trunk/WebCore

Fix for 3678031, implement better flexing for Emerson headers. This involved adding support for max-width: intrinsic,
fixing the box layout algorithm to properly deal with max-widths, and implementing support for baseline alignment
so that boxes can be aligned vertically along their interior baselines.

Reviewed by kocienda

  • khtml/css/cssparser.cpp: (CSSParser::parseValue): (CSSParser::parseShadow):
  • khtml/css/cssparser.h:
  • khtml/css/cssproperties.c: (hash_prop): (findProp):
  • khtml/css/cssproperties.h:
  • khtml/css/cssproperties.in:
  • khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::applyProperty):
  • khtml/css/cssvalues.c: (hash_val): (findValue):
  • khtml/css/cssvalues.h:
  • khtml/css/cssvalues.in:
  • khtml/misc/khtmllayout.h: (khtml::):
  • khtml/rendering/render_block.cpp: (khtml::RenderBlock::baselinePosition): (khtml::RenderBlock::getBaselineOfFirstLineBox):
  • khtml/rendering/render_block.h:
  • khtml/rendering/render_box.cpp: (RenderBox::RenderBox): (RenderBox::overrideWidth): (RenderBox::overrideHeight): (RenderBox::calcWidth): (RenderBox::calcHeight):
  • khtml/rendering/render_box.h: (khtml::RenderBox::overrideSize): (khtml::RenderBox::setOverrideSize):
  • khtml/rendering/render_flexbox.cpp: (khtml::RenderFlexibleBox::calcMinMaxWidth): (khtml::RenderFlexibleBox::layoutBlock): (khtml::RenderFlexibleBox::layoutHorizontalBox): (khtml::RenderFlexibleBox::layoutVerticalBox): (khtml::RenderFlexibleBox::placeChild): (khtml::RenderFlexibleBox::allowedChildFlex):
  • khtml/rendering/render_flexbox.h:
  • khtml/rendering/render_image.cpp: (RenderImage::isWidthSpecified): (RenderImage::isHeightSpecified):
  • khtml/rendering/render_object.h: (khtml::RenderObject::getBaselineOfFirstLineBox): (khtml::RenderObject::overrideSize): (khtml::RenderObject::overrideWidth): (khtml::RenderObject::overrideHeight): (khtml::RenderObject::setOverrideSize):
  • khtml/rendering/render_style.cpp: (StyleFlexibleBoxData::StyleFlexibleBoxData): (StyleFlexibleBoxData::operator==): (ShadowData::operator==):
  • khtml/rendering/render_style.h: (khtml::RenderStyle::boxPack): (khtml::RenderStyle::setBoxPack):
  • khtml/rendering/table_layout.cpp: (AutoTableLayout::layout):
12:46 PM Changeset in webkit [6801] by rjw
  • 8 edits in trunk

WebKit:

Implemented PDF rendering for the drawImage() function
in Context2D. This allows PDF files to be drawn in scaled
or rotated context without rasterization artifacts.

The PDF image is currently NOT cached. Caching can/will be added
as an optimization. The hooks are already in place to flush
the cache as necessary.

Reviewed by John.

  • WebCoreSupport.subproj/WebImageRenderer.h:
  • WebCoreSupport.subproj/WebImageRenderer.m: (-[WebImageRenderer dealloc]): (-[WebImageRenderer _needsRasterFlush]): (-[WebImageRenderer drawClippedToValidInRect:fromRect:]): (-[WebImageRenderer _PDFDocumentRef]): (-[WebImageRenderer _PDFDraw]): (-[WebImageRenderer _PDFDrawFromRect:toRect:operation:alpha:flipped:]): (-[WebImageRenderer MIMEType]): (ReleasePDFDocumentData): (-[WebPDFDocument initWithData:]): (-[WebPDFDocument dealloc]): (-[WebPDFDocument documentRef]): (-[WebPDFDocument mediaBox]): (-[WebPDFDocument bounds]): (-[WebPDFDocument adjustCTM:]): (-[WebPDFDocument setCurrentPage:]): (-[WebPDFDocument currentPage]): (-[WebPDFDocument pageCount]):

Added back check for old plugin API.

  • WebView.subproj/WebFrame.m: (-[WebFrame _reloadForPluginChanges]):
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView addSubview:]):
  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge frameRequiredForMIMEType:URL:]):

WebCore:

Added support for drawing un-rasterized transformed PDFs.

Reviewed by John.

  • khtml/ecma/kjs_html.cpp: (KJS::Context2DFunction::tryCall):
10:29 AM Changeset in webkit [6800] by darin
  • 2 edits in trunk/WebCore

Reviewed by Ken.

  • implemented still more execCommand commands
  • khtml/editing/jsediting.cpp: Added a lot more commands, and reformatted a bit.

Jun 8, 2004:

11:31 PM Changeset in webkit [6799] by darin
  • 3 edits in trunk/WebCore

Reviewed by Maciej.

  • implemented a bunch more execCommand commands
  • fixed <rdar://problem/3684792>: (JavaScript execCommand("paste") presents security issues)
  • fixed <rdar://problem/3675898>: (Make queryCommandEnabled work as specified in the Javascript execCommand Compatibility Plan)
  • fixed <rdar://problem/3675903>: (Make queryCommandSupported work as specified in the Javascript execCommand Compatibility Plan)
  • about half of <rdar://problem/3685231>: (execCommand italic is not implemented)
  • about half of <rdar://problem/3685232>: (execCommand bold is not implemented)
  • khtml/editing/jsediting.h: Made constructor inline. Deleted a few unneeded member functions that are now just private functions inside jsediting.cpp.
  • khtml/editing/jsediting.cpp: (commandImp): Changed this around, so the dictionary is a static local to this function, and initialized with C++ "first time initialization" rule. (DOM::JSEditor::execCommand): Got rid of special case for 0 for function pointer and added const. (DOM::JSEditor::queryCommandEnabled): Ditto. (DOM::JSEditor::queryCommandIndeterm): Got rid of special case for 0 for function pointer, added const, and use a common three-state state function rather than a separate "indeterm" function. (DOM::JSEditor::queryCommandState): Ditto. (DOM::JSEditor::queryCommandValue): More of the same. (execNotImplemented): Added. Used for unimplemented commands; there are only a few left. (execCopy): Renamed. (execCut): Renamed. (execDelete): Renamed. (execInsertText): Renamed. (execPaste): Renamed, and disabled. (execRedo): Renamed. (execSelectAll): Renamed. (execUndo): Renamed. (execStyleChange): Added. Helper function for commands that are style changes. (execBold): Added. (execItalic): Added. (execJustifyCenter): Added. (execJustifyFull): Added. (execJustifyLeft): Added. (execJustifyRight): Added. (execSubscript): Added. (execSuperscript): Added. (execUnselect): Added. (stateNotImplemented): Added. Used for unimplemented state queries; there are a few left. (noState): Added. (valueNotImplemented): Added. Used for unimplemented value queries; there are a few left. (nullStringValue): Added. (createCommandDictionary): Changed the initDict function into this function. Added implementations for many commands and condensed format so it's easier to work with.
5:55 PM Changeset in webkit [6798] by trey
  • 2 edits in trunk/WebKit

In DHTML dragging there is no notion of registering for types, so we'd
like to just pass all types down to WebCore. It turns out that the per-type
registration doesn't matter as far as the underlying drag service is
concerned, so Cocoa is already getting called for any type. We just hack and
override a private method to ensure we accept any type.

Reviewed by Chris.

  • WebView.subproj/WebView.m: (-[WebView _hitTest:dragTypes:]): We accept any drag type if it is within our view, without overriding a subview's decision.
5:37 PM Changeset in webkit [6797] by trey
  • 1 edit in trunk/WebCore/kwq/KWQKHTMLPart.mm

Nit build fix for deployment build style.

5:03 PM Changeset in webkit [6796] by darin
  • 6 edits in trunk/WebCore

Reviewed by Vicki.

  • our part of fix to <rdar://problem/3629334>: (REGRESSION (Tiger): titles on pop-ups menus are truncated and show ellipses)
  • kwq/KWQComboBox.mm: (QComboBox::QComboBox): Call setLineBreakMode:NSLineBreakByClipping. In the current version of Tiger I am using, this is not implemented yet.
  • a couple of other unrelated changes
  • khtml/rendering/render_form.cpp: (RenderTextArea::calcMinMaxWidth): Put a little more code inside the APPLE_CHANGES ifdef.
  • kwq/KWQTextEdit.h: Remove unused setTabStopWidth function, and make empty setTextFormat function an inline for slightly smaller code size.
  • kwq/KWQTextEdit.mm: Ditto.
  • kwq/KWQTextField.mm: Update copyright date.
3:17 PM Changeset in webkit [6795] by trey
  • 7 edits in trunk

WebCore:

A DHTML drag source can now change the dragging image during the drag. Currently
it may only be set to a static image.

Reviewed by John

  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::dragSourceMovedTo): If the ondrag event handler set an image, pass it to WebKit.
  • kwq/WebCoreBridge.h:

WebKit:

A DHTML drag source can now change the dragging image during the drag. Currently
it may only be set to a static image.

Reviewed by John

  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge setDraggingImage:at:]): Typical bridge glue.
  • WebView.subproj/WebHTMLView.m: (FlipImageSpec): New utility, copied from AppKit. (-[WebHTMLView _setDraggingImage:at:]): Mostly copied from AppKit. Sets the drag image using CG API.
  • WebView.subproj/WebHTMLViewPrivate.h:
2:53 PM Changeset in webkit [6794] by kocienda
  • 4 edits in trunk

Reviewed by Hyatt

Changes to the selection state for these tests as a result of my previous
checkin. The changes are minor to a couple of offsets. I looked at the
changes and approve them.

  • layout-tests/editing/deleting/delete-block-contents-001-expected.txt
  • layout-tests/editing/deleting/delete-block-contents-002-expected.txt
  • layout-tests/editing/deleting/delete-block-contents-003-expected.txt
2:50 PM Changeset in webkit [6793] by cblu
  • 4 edits in trunk/WebKit

Fixed: <rdar://problem/3640423>: (REGRESSION: can't paste text copied from web page into Excel (due to HTML on the pasteboard?))

Reviewed by darin.

  • WebView.subproj/WebHTMLView.m: (+[WebHTMLView _selectionPasteboardTypes]): don't include NSHTMLPboardType (-[WebHTMLView _selectedArchive]): removed markup string parameter (_selectionPasteboardTypes::if): don't put NSHTMLPboardType on the pasteboard
  • WebView.subproj/WebHTMLViewPrivate.h:
2:49 PM Changeset in webkit [6792] by kocienda
  • 5 edits in trunk/WebCore

Reviewed by Hyatt

Fix for this bug:

<rdar://problem/3654841>: "Hitting delete key with start of block selected
does not merge content with preceding block"

Selections that span blocks now work correctly for deleting the selection and inserting
over the selection. The largest part of the change is adding a new field to the
RemoveNodeAndPruneCommand and its impl version. This was done since the starting block
for a multi-block selection should always be preserved when deleting, and this was
a convenient way to express this using the code structure already in place.

  • khtml/editing/htmlediting.cpp: (khtml::RemoveNodeAndPruneCommand::RemoveNodeAndPruneCommand): Modify this command to take two nodes: the node to remove and a node to stop at when pruning back up the tree. (khtml::RemoveNodeAndPruneCommand::pruneNode): New accessor, replaces old node() accessor. (khtml::RemoveNodeAndPruneCommand::stopNode): New accessor for additional feature described above.
  • khtml/editing/htmlediting.h:
  • khtml/editing/htmlediting_impl.cpp: (khtml::shouldPruneNode): blow flow renderers can now be deleted, but not if they are a rootEditableElement. (khtml::CompositeEditCommandImpl::removeNodeAndPrune): Pass new stopNode param and change the name of the existing node argument to pruneNode to distinguish it. (khtml::DeleteSelectionCommandImpl::doApply): Pass the block containing the start of the selection to removeNodeAndPrune in each case. Also, add one little loop to move all the content from the block containing the end of the selection if that block is different than the start block. (khtml::RemoveNodeAndPruneCommandImpl::RemoveNodeAndPruneCommandImpl): Implement the pruneNode/stopNode design already described. (khtml::RemoveNodeAndPruneCommandImpl::~RemoveNodeAndPruneCommandImpl): Manage the lifecycle of stopNode. (khtml::RemoveNodeAndPruneCommandImpl::doApply): Add a check to stop at the stop node while pruning.
  • khtml/editing/htmlediting_impl.h: (khtml::RemoveNodeAndPruneCommandImpl::pruneNode): New accessor. (khtml::RemoveNodeAndPruneCommandImpl::stopNode): Ditto.
12:49 PM Changeset in webkit [6791] by trey
  • 5 edits in trunk/WebCore

Clipboard access during DHTML dragging is made secure.

Reviewed by John.

  • kwq/KWQClipboard.h: (KWQClipboard::):
  • kwq/KWQClipboard.mm: (KWQClipboard::KWQClipboard): Init new policy and changeCount members. (KWQClipboard::becomeNumb): Set policy to numb. (KWQClipboard::clearData): Check policy. (KWQClipboard::clearAllData): Check policy. (KWQClipboard::getData): Check policy and changeCount. (KWQClipboard::setData): Check policy. (KWQClipboard::types): Check policy and ChangeCount. (KWQClipboard::setDragLocation): Check policy. (KWQClipboard::setDragImage): Check policy. (KWQClipboard::setDropEffect): Check policy. (KWQClipboard::setEffectAllowed): Check policy.
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::dispatchDragSrcEvent): Set policy when creating clipboard, and numb-ify it when we're done.
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge dragOperationForDraggingInfo:]): Set policy when creating clipboard, and numb-ify it when we're done. (-[WebCoreBridge dragExitedWithDraggingInfo:]): Ditto (-[WebCoreBridge concludeDragForDraggingInfo:]): Ditto
8:01 AM Changeset in webkit [6790] by kocienda
  • 2 edits in trunk/WebCore

Reviewed by me

  • khtml/editing/jsediting.cpp: (DOM::EditorCommand::): Stray capital letter in "selectAll" command static initializer prevented the command from ever working since the command strings are lower-cased when trying to find a match, but not when they are inserted into the dictionary. This is a one character change to make the string "selectall" in the initializer.
12:11 AM Changeset in webkit [6789] by trey
  • 18 edits in trunk/WebCore

WebCore will now generate a default drag image when an element serves as a drag
source. The basic idea is the image contains the element and all its children.

As for the implementation, instead of adding a new paintAction I added a new
field to the paintInfo struct, "paintingRoot". If this field is set, painting will
only paint that root's descendants.

Some code also moved from the bridge to the part, to be available within WebCore.

Reviewed by hyatt.

  • khtml/rendering/render_block.cpp: (khtml::RenderBlock::paintObject): Pass along paintingRoot to kids. (khtml::RenderBlock::paintFloats): Pass along paintingRoot to kids.
  • khtml/rendering/render_box.cpp: (RenderBox::paintBoxDecorations): Test paintingRoot before painting.
  • khtml/rendering/render_canvasimage.cpp: (RenderCanvasImage::paint): Test paintingRoot before painting.
  • khtml/rendering/render_flow.cpp: (RenderFlow::paintLineBoxBackgroundBorder): Test paintingRoot before painting. (RenderFlow::paintLineBoxDecorations): Test paintingRoot before painting.
  • khtml/rendering/render_image.cpp: (RenderImage::paint): Test paintingRoot before painting.
  • khtml/rendering/render_inline.cpp: (RenderInline::paint): Pass along paintingRoot to kids.
  • khtml/rendering/render_layer.cpp: (RenderLayer::paint): Pass along paintingRoot to kids.
(RenderLayer
paintLayer): Pass along paintingRoot to kids. Test if we are within the paintingRoot to decide whether to pass the root to our renderer.
  • khtml/rendering/render_layer.h:
  • khtml/rendering/render_object.cpp: (RenderObject::hasAncestor): New utility. (RenderObject::absoluteBoundingBoxRect): Helper for paintingRootRect (RenderObject::addAbsoluteRectForLayer): Helper for paintingRootRect (RenderObject::paintingRootRect): Return rect that will be painted if we are the painting root. (RenderObject::draggableNode): Add test to avoid rare NULL ptr crash.
  • khtml/rendering/render_object.h: (khtml::RenderObject::PaintInfo::PaintInfo): Add paintingRoot field. (khtml::RenderObject::paintingRootForChildren): New utility. Return the current paintingRoot, or nil if we are the root (so kids draw normally). (khtml::RenderObject::shouldPaintWithinRoot): New utility. We can paint if we are the paintingRoot, or no root is set.
  • khtml/rendering/render_replaced.cpp: (RenderReplaced::shouldPaint): Pass along paintingRoot to kids.
  • khtml/rendering/render_table.cpp: (RenderTable::paint): Pass along paintingRoot to kids.
  • khtml/rendering/render_text.cpp: (RenderText::paint): Test paintingRoot before painting.
  • kwq/KWQKHTMLPart.h:
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::KWQKHTMLPart): Init new _elementToDraw member. (KWQKHTMLPart::paint): Generalized to handle cases of painting selection or a given element. (KWQKHTMLPart::khtmlMouseMoveEvent): Make a default image if dragSrc didn't provide one. (KWQKHTMLPart::selectionRect): Moved from bridge. (KWQKHTMLPart::visibleSelectionRect): Ditto. (KWQKHTMLPart::imageFromRect): Newly factored code, from bridge. (KWQKHTMLPart::selectionImage): Moved from bridge, wrapper around imageFromRect. (KWQKHTMLPart::elementImage): New method, wrapper around imageFromRect.
  • kwq/WebCoreBridge.h:
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge drawRect:withPainter:]): Just call part to draw. (-[WebCoreBridge visibleSelectionRect]): Guts moved to part. (-[WebCoreBridge selectionImage]): Ditto.

Jun 7, 2004:

5:22 PM Changeset in webkit [6788] by darin
  • 6 edits in trunk/WebCore

Reviewed by Chris.

  • fixed <rdar://problem/3682821>: (setTimeout fails when additional parameters are used and timeout function is a string)
  • khtml/ecma/kjs_window.cpp: (WindowFunc::tryCall): Ignore excess arguments instead of rejecting the argument list for window.scrollBy, scroll, scrollTo, moveBy, moveTo, resizeBy, resizeTo, and setTimeout (when the timeout is a string rather than an object).
  • did a refinement of JSEditor to be slightly more efficient, and not have to edit both the .cpp file and the .h when adding more implementation
  • khtml/khtml_part.h: Hack so we can get to the docImpl and xmlDocImpl without being a friend.
  • khtml/editing/jsediting.h: Simplified a bit.
  • khtml/editing/jsediting.cpp: Redid to use a table, and simplified a bit.
5:14 PM Changeset in webkit [6787]
  • 2 copies
    3 deletes in tags/JavaScriptCore-143~2

This commit was manufactured by cvs2svn to create tag
'JavaScriptCore-143~2'.

5:14 PM Changeset in webkit [6786] by vicki
  • 1 edit in trunk/JavaScriptCore/ChangeLog

add a release marker for JavaScriptCore-143.2

5:10 PM Changeset in webkit [6785] by darin
  • 2 edits in trunk/WebKit

Reviewed by Chris.

  • fixed <rdar://problem/3676761>: (REGRESSION: Text Bigger/Smaller commands are always disabled in TOT)
  • WebView.subproj/WebHTMLView.m: Add @interface declaration for WebTextSizing category on WebHTMLView. This must have gotten lost somewhere along the way.
3:09 PM Changeset in webkit [6784] by kocienda
  • 4 edits in trunk/WebCore

Reviewed by Hyatt

Fix for this bug:

<rdar://problem/3682354>: "Typing style does not work yet"

Did the final hook-up of support that has landed in the tree in the
recent past as part of ongoing style-application work.

For the most part, this patch modifies the InputNewlineCommandImpl and
InputTextCommandImpl commands to insert a styling span when there is
a typing style active.

  • khtml/editing/htmlediting_impl.cpp: (khtml::CompositeEditCommandImpl::createTypingStyleElement): Helper shared by the two commands modified. (khtml::InputNewlineCommandImpl::doApply): Create a styling span if the part has a typing style. Maintain a nodeToInsert local variable, which is either the break to insert or a styling span containing the break. Also, remove some utterly bogus derefs. They are just plain wrong. (khtml::InputTextCommandImpl::InputTextCommandImpl): Don't need to keep m_insertedTextNode. The composite commands this command uses will keep track of that object's lifetime. We do not need to do that here. (khtml::InputTextCommandImpl::~InputTextCommandImpl): No longer need to deref obsolete m_insertedTextNode. (khtml::InputTextCommandImpl::prepareForTextInsertion): Handle the case where a styling span needs to be added. (khtml::TypingCommandImpl::insertText): Create a new InputTextCommand when there is an active typping style.
  • khtml/editing/htmlediting_impl.h: Declare createTypingStyleElement helper. Remove m_insertedTextNode from InputTextCommandImpl.
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge applyStyle:]): Swicth on the state of the selection, calling setTypingStyle when a caret and ApplyStyleCommand when a range.
2:53 PM Changeset in webkit [6783] by darin
  • 3 edits in trunk/JavaScriptCore
  • fixed <rdar://problem/3682489>: (JavaScriptGlue no longer compiles because Interpreter::evaluate parameters changed)
  • kjs/interpreter.h: Added an overload to make JavaScriptGlue compile.
  • kjs/interpreter.cpp: (KJS::Interpreter::evaluate): Implemented the overload.
10:56 AM Changeset in webkit [6782] by darin
  • 3 edits in trunk/WebCore

Reviewed by Ken.

  • khtml/editing/jsediting.h: Elide some unnecessary namespace prefixes.
  • khtml/editing/jsediting.cpp: Make typed constants instead of macros. (DOM::JSEditor::commandDict): Elide unnecessary namespace prefix. (DOM::JSEditor::execCommand): Remove xxxNotImplemented functions; just return false instead. (DOM::JSEditor::queryCommandEnabled): Ditto. (DOM::JSEditor::queryCommandIndeterm): Ditto. (DOM::JSEditor::queryCommandState): Ditto. (DOM::JSEditor::queryCommandSupported): Ditto. (DOM::JSEditor::queryCommandValue): Ditto.
10:56 AM Changeset in webkit [6781] by trey
  • 2 edits in trunk/WebKit

WebKit no longer causes an endless stream of dragexit events to
occur at the DHTML level when hovering over an element that is
not accepting the drag.

Reviewed by Chris

  • WebView.subproj/WebView.m: (-[WebView _dragOperationForDraggingInfo:]): If the potential target refuses the item, don't turn around and immediately tell it to cancel the drag, which is what leads to the exit event happening at the DOM level. If the target just refused the drag, it should not have anything it needs to cancel.

Jun 5, 2004:

9:28 PM Changeset in webkit [6780] by trey
  • 2 edits in trunk/WebCore

As agreed with Hyatt and Louch, do not post incoming dragging events
to text nodes.

Reviewed by Maciej

  • khtml/khtmlview.cpp: (KHTMLView::updateDragAndDrop): For any drag target that is a text node, use its parent instead.

Jun 4, 2004:

8:21 PM Changeset in webkit [6779] by trey
  • 16 edits in trunk

WebCore:

DHTML dragging uses the Cocoa NSDragOperation on both the source and dest ends.

In addition, I caught a prime gaffe where I had used "dropAllowed" instead of "effectAllowed"
for that particular WinIE property. That is renamed throughout.

Reviewed by rjw

  • khtml/ecma/kjs_events.cpp: (stringOrUndefined): New little helper. (Clipboard::getValueProperty): Return Undefined if dropEffect or effectAllowed are not set. (Clipboard::putValue): Rename.
  • khtml/ecma/kjs_events.h: (KJS::Clipboard::): Rename.
  • khtml/ecma/kjs_events.lut.h:
  • khtml/xml/dom2_eventsimpl.h: Rename.
  • kwq/KWQClipboard.h: Rename, add access to Cocoa drag op.
  • kwq/KWQClipboard.mm: (KWQClipboard::dropEffect): These 4 just moved in the file. (KWQClipboard::setDropEffect): (KWQClipboard::effectAllowed): (KWQClipboard::setEffectAllowed): (cocoaOpFromIEOp): Convert from an IE operation string to a Cocoa DragOp (IEOpFromCocoaOp): and vice-versa (KWQClipboard::sourceOperation): Return effectAllowed, converted to a NSDragOp (KWQClipboard::destinationOperation): Return dropEffect, converted to a NSDragOp (KWQClipboard::setSourceOperation): Set effectAllowed, using a Cocoa value (KWQClipboard::setDestinationOperation): Set dropEffect, using a Cocoa value
  • kwq/KWQKHTMLPart.h:
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::dispatchDragSrcEvent): Return the drag op specified by the source element. (KWQKHTMLPart::khtmlMouseMoveEvent): Pass our drag op up to WebKit. (KWQKHTMLPart::dragSourceMovedTo): Pass NULL for new arg. (KWQKHTMLPart::dragSourceEndedAt): Ditto
  • kwq/WebCoreBridge.h:
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge dragOperationForDraggingInfo:]): Set the incoming dragOp onto the clipboard so DHTML can access it. In addition, validate whatever op DHTML returns so we play well with Cocoa.

WebKit:

DHTML dragging uses the Cocoa NSDragOperation on both the source and dest ends.
Most of the real work is in WebCore.

Reviewed by rjw

  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge startDraggingImage:at:operation:event:]): Pass the drag op along.
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _startDraggingImage:at:operation:event:]): Remember drag op from WC. (-[WebHTMLView mouseDragged:]): Pass None for the op (alternate code path that will be going away). (-[WebHTMLView draggingSourceOperationMaskForLocal:]): Use the WC drag op.
  • WebView.subproj/WebHTMLViewInternal.h:
  • WebView.subproj/WebHTMLViewPrivate.h:
4:27 PM Changeset in webkit [6778] by hyatt
  • 7 edits in trunk/WebCore

Add support for auto values in flex transitions. Add support for mapping the back end values to
front end values. Next it's time to actually try to use this stuff in render_flexbox.

Reviewed by darin

  • khtml/css/css_valueimpl.cpp: (length):
  • khtml/css/css_valueimpl.h: (DOM::FlexGroupTransitionValueImpl::isAuto):
  • khtml/css/cssparser.cpp: (FlexGroupTransitionParseContext::length): (FlexGroupTransitionParseContext::commitAutoValue): (FlexGroupTransitionParseContext::commitValue): (CSSParser::parseFlexGroupTransition):
  • khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::applyProperty):
  • khtml/rendering/render_style.cpp: (FlexGroupTransitionData::operator==):
  • khtml/rendering/render_style.h: (khtml::FlexGroupTransitionData::next): (khtml::FlexGroupTransitionData::isAuto):
4:00 PM Changeset in webkit [6777] by vicki
  • 1 edit in trunk/JavaScriptCore/JavaScriptCore.pbproj/project.pbxproj

change the JSC version number from 143.1 back to 144u

3:47 PM Changeset in webkit [6776]
  • 1 copy
    3 deletes in tags/JavaScriptCore-143~1

This commit was manufactured by cvs2svn to create tag
'JavaScriptCore-143~1'.

3:47 PM Changeset in webkit [6775] by vicki
  • 2 edits in trunk/JavaScriptCore

release marker and version change for JavaScriptCore-143.1

3:16 PM Changeset in webkit [6774] by kdecker
  • 2 edits in trunk/JavaScriptCore

Reviewed by Darin

  • fixed <rdar://problem/3680594>
  • kjs/object.cpp: (KJS::Error::create):
3:01 PM Changeset in webkit [6773] by vicki
  • 3 edits in trunk

change version number to '144u'. the tree is open.

2:55 PM Changeset in webkit [6772]
  • 3 copies in tags/Safari-143

This commit was manufactured by cvs2svn to create tag 'Safari-143'.

2:55 PM Changeset in webkit [6771] by vicki
  • 6 edits in trunk

Safari 2.0 (v143) stamp

2:12 PM Changeset in webkit [6770] by beard
  • 35 edits in branches/AutoZoneGC_Branch_20040430

Turned off zero link in projects. Converted all Objective-C++ objects to use KWQRetain/KWQRelease/KWQRetainNSRelease to manage lifetimes of Objective-C objects for GC compatibility. No longer allocating C++ objects in GC-scanned memory. Removed absolute paths to files on my hard disk in projects.

1:19 PM Changeset in webkit [6769] by darin
  • 2 edits in trunk/JavaScriptCore
  • kjs/testkjs.cpp: (main): Fix build breakage by adding URL and line number parameters.
11:49 AM Changeset in webkit [6768] by kdecker
  • 23 edits in trunk

JavaScriptCore:

Reviewed by Dave.

  • ObjC bindings do not (yet) pass along sourceurl or line numbers
  • we don't have a way as of yet to accomidate line numbers and urls for dynamic javascript
  • changed the wording of an error message
  • the lexer, parser, and interpreter have been made "sourceURL aware"
  • stored the url into Error
  • bindings/NP_jsobject.cpp: (NPN_Evaluate):
  • bindings/jni/jni_jsobject.cpp: (JSObject::eval):
  • bindings/objc/WebScriptObject.mm: (-[WebScriptObject evaluateWebScript:]):
  • kjs/function.cpp: (GlobalFuncImp::call):
  • kjs/function_object.cpp: (FunctionObjectImp::construct):
  • kjs/internal.cpp: (Parser::parse): (InterpreterImp::checkSyntax): (InterpreterImp::evaluate):
  • kjs/internal.h:
  • kjs/interpreter.cpp: (Interpreter::evaluate):
  • kjs/interpreter.h:
  • kjs/lexer.cpp: (Lexer::setCode):
  • kjs/lexer.h: (KJS::Lexer::sourceURL):
  • kjs/nodes.cpp: (Node::Node): (Node::throwError): (FunctionCallNode::evaluate):
  • kjs/nodes.h:
  • kjs/object.cpp: (KJS::Error::create):
  • kjs/object.h:

WebCore:

Reviewed by Dave.

  • kwq/KWQKHTMLPart.mm: addMessagetoConsole places sourceURL in the dictionary
  • khtml/xml/dom_docimpl.cpp: right now, we don't have a way to get a url, so we leave this blank
  • khtml/ecma/kjs_window.cpp: still need to get the real line number and sourceURL
  • khtml/ecma/kjs_proxy.cpp: now passing the sourceURL to addMessageToConsole
  • khtml/ecma/kjs_events.cpp: still need to grab an accurate line number and sourceURL
  • khtml/ecma/kjs_events.cpp: (JSEventListener::handleEvent): (JSLazyEventListener::handleEvent):
  • khtml/ecma/kjs_proxy.cpp: (KJSProxyImpl::evaluate):
  • khtml/ecma/kjs_window.cpp: (Window::isSafeScript): (ScheduledAction::execute):
  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::open):
  • kwq/KWQKHTMLPart.h:
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::addMessageToConsole):

WebBrowser:

Reviewed by Dave.

  • model is now source url aware
  • refined the ui with custom NSCells that now display error messages, line numbers, and source urls
  • increased the row size to 35 pixels to accomimdate for ErrorCells
  • Debug/ErrorCell.h: Added.
  • Debug/ErrorCell.m: Added. (-[ErrorCell setURL:]): (-[ErrorCell setErrorMessasge:]): (-[ErrorCell setLineNumber:]): (-[ErrorCell drawInteriorWithFrame:inView:]):
  • Debug/ErrorConsole.nib:
  • Debug/ErrorConsoleController.m: (-[ErrorConsoleController init]): (-[ErrorConsoleController awakeFromNib]):
  • Debug/ErrorConsoleModel.h:
  • Debug/ErrorConsoleModel.m: (-[ErrorConsoleModel tableView:willDisplayCell:forTableColumn:row:]): (-[ErrorConsoleModel count]): (-[ErrorConsoleModel selectedURL]):
  • WebBrowser.pbproj/project.pbxproj:
11:35 AM Changeset in webkit [6767] by kocienda
  • 2 edits in trunk/WebCore

Reviewed by Hyatt

Fix a comical little bug where the style-applying code did not take into
account deleting content from the start of a block. After the deletion,
the caret is placed in the node before the deleted content and so
inserting a styled fragment after the deletion position works great.
The problem is that if the selectionis at the start of a block, there
is no "position before the deletion" and the caret is placed in the new
first child of the block. Inserting the styled content after this
node is just plain wrong. Now, this case is handled correctly, and the
styled content is inserted in the proper position.

  • khtml/editing/htmlediting_impl.cpp: (khtml::ApplyStyleCommandImpl::insertFragment):
11:21 AM Changeset in webkit [6766] by kocienda
  • 2 edits in trunk/WebCore

Reviewed by Hyatt

  • khtml/rendering/bidi.cpp: (khtml::RenderBlock::layoutInlineChildren): Only add additional line height in for root editable elements. This helps to keep layout from deviating too much from the intended page layout, but still gives an empty document a line in which it can blink the caret.
11:17 AM Changeset in webkit [6765] by kocienda
  • 9 edits
    2 adds in trunk/WebCore

Reviewed by Hyatt

Made some progress on this set of related bugs:

<rdar://problem/3675867>: "Make execCommand work as specified in the Javascript execCommand Compatibility Plan"
<rdar://problem/3675898>: "Make queryCommandEnabled work as specified in the Javascript execCommand Compatibility Plan"
<rdar://problem/3675899>: "Make queryCommandIndeterm work as specified in the Javascript execCommand Compatibility Plan"
<rdar://problem/3675901>: "Make queryCommandState work as specified in the Javascript execCommand Compatibility Plan"
<rdar://problem/3675903>: "Make queryCommandSupported work as specified in the Javascript execCommand Compatibility Plan"
<rdar://problem/3675904>: "Make queryCommandValue work as specified in the Javascript execCommand Compatibility Plan"

I did several things to move the ahead with the plan:

  1. The latter five methods did not appear in the tree at all. Now they do, although
  1. I removed the implementation for these editing methods from dom_docimpl.cpp, and moved them out to new js_editing.cpp/js_editing.h files. The remaining code in dom_docimpl.cpp is glue to call over to the new JSEditor object defined in the new files.
  1. For a couple of the command implementations in js_editing.cpp, I made a stab at returning sensible values. For others, I just return place-holder values. I have added some comments to describe what has been done and what still needs to be done.
  • WebCore.pbproj/project.pbxproj:
  • khtml/dom/dom_doc.cpp: Add call-overs for these methods. (DOM::Document::queryCommandEnabled): (DOM::Document::queryCommandIndeterm): (DOM::Document::queryCommandState): (DOM::Document::queryCommandSupported): (DOM::Document::queryCommandValue):
  • khtml/dom/dom_doc.h:
  • khtml/ecma/kjs_dom.cpp: Add queryCommandXXX terminology. (DOMDocumentProtoFunc::tryCall):
  • khtml/ecma/kjs_dom.h: (KJS::DOMDocument::):
  • khtml/ecma/kjs_dom.lut.h: (KJS::):
  • khtml/editing/jsediting.cpp: Added. This file implements the guts of editing-related JS methods. (DOM::execCommandNotImplemented): (DOM::queryBoolNotImplemented): (DOM::queryValueNotImplemented): (DOM::JSEditor::commandDict): (DOM::JSEditor::JSEditor): (DOM::JSEditor::~JSEditor): (DOM::JSEditor::commandIdentifier): (DOM::JSEditor::addCommand): (DOM::JSEditor::initDict): (DOM::JSEditor::execCommand): (DOM::JSEditor::queryCommandEnabled): (DOM::JSEditor::queryCommandIndeterm): (DOM::JSEditor::queryCommandState): (DOM::JSEditor::queryCommandSupported): (DOM::JSEditor::queryCommandValue): (DOM::JSEditor::execCommandCopy): (DOM::JSEditor::execCommandCut): (DOM::JSEditor::execCommandDelete): (DOM::JSEditor::execCommandInsertText): (DOM::JSEditor::execCommandPaste): (DOM::JSEditor::execCommandRedo): (DOM::JSEditor::execCommandSelectAll): (DOM::JSEditor::execCommandUndo): (DOM::JSEditor::enabledIfPartNotNull): (DOM::JSEditor::enabledIfSelectionNotEmpty): (DOM::JSEditor::enabledIfSelectionIsRange): (DOM::JSEditor::commandSupported):
  • khtml/editing/jsediting.h: Added. (DOM::JSEditor::CommandIdentifier::CommandIdentifier): (DOM::JSEditor::document): (DOM::JSEditor::part):
  • khtml/xml/dom_docimpl.cpp: Rework JS editing support into glue that calls over into new JSEditor object. (DocumentImpl::DocumentImpl): (DocumentImpl::~DocumentImpl): (DocumentImpl::jsEditor): (DocumentImpl::execCommand): (DocumentImpl::queryCommandEnabled): (DocumentImpl::queryCommandIndeterm): (DocumentImpl::queryCommandState): (DocumentImpl::queryCommandSupported): (DocumentImpl::queryCommandValue):
  • khtml/xml/dom_docimpl.h:
11:02 AM Changeset in webkit [6764] by cblu
  • 4 edits in trunk/WebKit

Fixed: <rdar://problem/3674921>: (can't drag an image from Desktop to Blot document)

Reviewed by mjs.

  • WebView.subproj/WebDataSource.m: (-[WebDataSource _imageElementWithImageResource:]): factored out from _documentFragmentWithImageResource: (-[WebDataSource _documentFragmentWithImageResource:]): call _imageElementWithImageResource:
  • WebView.subproj/WebDataSourcePrivate.h:
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _imageExistsAtPaths:]): new (-[WebHTMLView _documentFragmentWithPaths:]): new (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): handle NSFilenamesPboardType (+[WebHTMLView _insertablePasteboardTypes]): include NSFilenamesPboardType (-[WebHTMLView _canProcessDragWithDraggingInfo:]): check for NSFilenamesPboardType and check that the files are images
10:54 AM Changeset in webkit [6763] by rjw
  • 5 edits in trunk/JavaScriptCore

Fixed crash when attempting to access properties on nil
object.

Reviewed by John.

  • bindings/objc/objc_instance.mm: (ObjcInstance::getClass):
  • bindings/runtime_object.cpp: (RuntimeObjectImp::get):
  • bindings/testM.js:
  • bindings/testbindings.mm: (-[MyFirstInterface getString]):
9:12 AM Changeset in webkit [6762] by rjw
  • 2 edits in trunk/WebKit

Fixed crasher from last checkin.

Reviewed by Ken.

  • Plugins.subproj/WebPluginDatabase.m: (+[WebPluginDatabase setAdditionalWebPlugInPaths:]): (pluginLocations):

Jun 3, 2004:

10:04 PM Changeset in webkit [6761] by beard
  • 2 adds in branches/AutoZoneGC_Branch_20040430/WebCore/kwq

Inline implementations of KWQRetain, KWQRelease, and KWQRetainNSRelease. Conditional implementation of NSAutoreleasePool category.

6:36 PM Changeset in webkit [6760] by rjw
  • 6 edits in trunk/WebCore

Added setCompositeOperation method to Context2D.
Actually pass composite operation to drawPixmap (instead of 1).

Reviewed by jay lo.

  • khtml/ecma/kjs_html.cpp: (KJS::Context2DFunction::tryCall):
  • khtml/ecma/kjs_html.h: (KJS::Context2D::):
  • khtml/ecma/kjs_html.lut.h: (KJS::):
  • kwq/KWQPainter.h:
  • kwq/KWQPainter.mm: (QPainter::compositeOperatorFromString): (QPainter::drawPixmap):
6:01 PM Changeset in webkit [6759] by rjw
  • 3 edits in trunk/WebKit

Add SPI to allow setting of plugin load path.

Reviewed by Hyatt.

  • Plugins.subproj/WebPluginDatabase.h:
  • Plugins.subproj/WebPluginDatabase.m: (+[WebPluginDatabase setAdditionalWebPlugInPaths:]): (pluginLocations):
5:39 PM Changeset in webkit [6758] by hyatt
  • 10 edits in trunk/WebCore

Add support for box-flex-group-transition (whew!), a new property that is going to enable some incredibly
complicated flexing layouts in HTML.

This is Stage 1 - wire up the CSS property and make it get parsed into front-end data. Nobody actually looks
at this data yet.

Reviewed by darin

  • khtml/css/css_valueimpl.cpp: (CSSInheritedValueImpl::cssText): (ShadowValueImpl::cssText): (length): (FlexGroupTransitionValueImpl::~FlexGroupTransitionValueImpl): (FlexGroupTransitionValueImpl::cssText):
  • khtml/css/css_valueimpl.h: (DOM::FlexGroupTransitionValueImpl::cssValueType):
  • khtml/css/cssparser.cpp: (CSSParser::parseValue): (CSSParser::parseShadow): (FlexGroupTransitionParseContext::length): (FlexGroupTransitionParseContext::~FlexGroupTransitionParseContext): (FlexGroupTransitionParseContext::failed): (FlexGroupTransitionParseContext::allowGroup): (FlexGroupTransitionParseContext::commitGroup): (FlexGroupTransitionParseContext::commitSlash): (FlexGroupTransitionParseContext::commitLength): (FlexGroupTransitionParseContext::commitValue): (CSSParser::parseFlexGroupTransition):
  • khtml/css/cssparser.h:
  • khtml/css/cssproperties.c: (hash_prop): (findProp):
  • khtml/css/cssproperties.h:
  • khtml/css/cssproperties.in:
  • khtml/rendering/render_style.cpp: (StyleFlexibleBoxData::StyleFlexibleBoxData): (StyleFlexibleBoxData::operator==): (StyleFlexibleBoxData::transitionDataEquivalent): (StyleCSS3InheritedData::operator==): (StyleCSS3InheritedData::shadowDataEquivalent): (ShadowData::operator==): (RenderStyle::setBoxFlexGroupTransition): (length): (FlexGroupTransitionData::operator==):
  • khtml/rendering/render_style.h: (khtml::FlexGroupTransitionData::next): (khtml::FlexGroupTransitionData::~FlexGroupTransitionData): (khtml::FlexGroupTransitionData::operator!=): (khtml::StyleFlexibleBoxData::~StyleFlexibleBoxData): (khtml::RenderStyle::boxFlexGroupTransition):
5:21 PM Changeset in webkit [6757] by rjw
  • 2 edits in trunk/WebCore

Add extra sanity check to Image parameter of drawImage...

Reviewed by Hyatt.

  • khtml/ecma/kjs_html.cpp: (KJS::Context2DFunction::tryCall):
2:36 PM Changeset in webkit [6756] by hyatt
  • 2 edits
    2 adds in trunk

Fix for 3673931, negative margins on objects that dodge floats not handled correctly.

Reviewed by darin

  • khtml/rendering/render_block.cpp: (khtml::RenderBlock::layoutBlockChildren):
2:24 PM Changeset in webkit [6755] by darin
  • 3 edits in trunk/WebKit

Reviewed by Chris.

  • fixed <rdar://problem/3677038>: (Need SPI to get URL of favicon for a site)
  • Misc.subproj/WebIconDatabase.h: Add iconURLForURL: method.
  • Misc.subproj/WebIconDatabase.m: (-[WebIconDatabase iconURLForURL:]): Added.
2:17 PM Changeset in webkit [6754] by darin
  • 1 edit in trunk/WebCore/ChangeLog-2005-08-23

Removed some tabs from the ChangeLog.

8:22 AM Changeset in webkit [6753] by kocienda
  • 4 edits in trunk/WebKit

Reviewed by John

Fix for these bugs:

<rdar://problem/3675806>: "Make API name change for -webViewShouldBeginEditing:inDOMRange:"
<rdar://problem/3675809>: "Make API name change for -webViewShouldEndEditing:inDOMRange:"

New names are -webView:shouldBeginEditingInDOMRange: and -webView:shouldEndEditingInDOMRange:,
respectively.

  • WebView.subproj/WebDefaultEditingDelegate.m: (-[WebDefaultEditingDelegate webView:shouldBeginEditingInDOMRange:]): (-[WebDefaultEditingDelegate webView:shouldEndEditingInDOMRange:]):
  • WebView.subproj/WebEditingDelegate.h:
  • WebView.subproj/WebView.m: (-[WebView _shouldBeginEditingInDOMRange:]): (-[WebView _shouldEndEditingInDOMRange:]):
7:38 AM Changeset in webkit [6752] by kocienda
  • 11 edits in trunk/WebCore

Reviewed by Hyatt

Fix for layout regression I caused when fixing:

<rdar://problem/3668619>: "REGRESSION: text placed on pasteboard by WebKit is offset by one character"

Extra height is added to empty blocks that are editable, so we can click to place
the caret in them. This extra height was erroneously being added to non-editable
blocks as a result of my earlier change. After looking at this and doing some
code review, there are the following changes:

Change away from "containingBlock" terminology in the NodeImpl class. The
operation we are doing in NodeImpl is not the same as what is done in CSS
when it uses the term "containingBlock" so:

containingBlock changes to enclosingBlockFlowElement, and
rootEditableBlock changes to rootEditableElement

The vast majority of changes here are to make these name changes. The other
significant piece of work, and the fix for the regression, is to change
bidi.cpp to only include this extra line height if a block is empty
and is content-editable.

  • khtml/editing/htmlediting_impl.cpp: (khtml::leadingWhitespacePosition): (khtml::trailingWhitespacePosition): (khtml::DeleteSelectionCommandImpl::doApply): (khtml::InputNewlineCommandImpl::doApply): (khtml::RemoveNodeAndPruneCommandImpl::doApply): (khtml::TypingCommandImpl::issueCommandForDeleteKey):
  • khtml/rendering/bidi.cpp: (khtml::RenderBlock::layoutInlineChildren):
  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::relinquishesEditingFocus): (DocumentImpl::acceptsEditingFocus):
  • khtml/xml/dom_nodeimpl.cpp:
  • khtml/xml/dom_nodeimpl.h:
  • khtml/xml/dom_position.cpp: (DOM::Position::equivalentLeafPosition): (DOM::Position::previousCharacterPosition): (DOM::Position::nextCharacterPosition): (DOM::Position::previousLinePosition): (DOM::Position::nextLinePosition): (DOM::Position::equivalentUpstreamPosition): (DOM::Position::equivalentDownstreamPosition): (DOM::Position::atStartOfRootEditableElement): (DOM::Position::inRenderedContent): (DOM::Position::rendersOnSameLine): (DOM::Position::rendersInDifferentPosition): (DOM::Position::isLastRenderedPositionInEditableBlock): (DOM::Position::inFirstEditableInRootEditableElement): (DOM::Position::inLastEditableInRootEditableElement): (DOM::Position::inFirstEditableInContainingEditableBlock): (DOM::Position::inLastEditableInContainingEditableBlock):
  • khtml/xml/dom_position.h:
  • khtml/xml/dom_selection.cpp: (DOM::Selection::moveToRenderedContent):
12:01 AM Changeset in webkit [6751] by trey
  • 1 edit in trunk/WebCore/kwq/KWQClipboard.mm

Ooops, missed one small change from code review in previous checkin.

Jun 2, 2004:

11:57 PM Changeset in webkit [6750] by trey
  • 5 edits in trunk/WebCore

Added types property to JS clipboard object.

Reviewed by Richard.

  • khtml/ecma/kjs_events.cpp: (Clipboard::getValueProperty): Create JS array for strings coming from the clipboard impl.
  • khtml/ecma/kjs_events.h: (KJS::Clipboard::):
  • khtml/ecma/kjs_events.lut.h:
  • kwq/KWQClipboard.mm: (MIMETypeFromCocoaType): New helper routine to map types. (KWQClipboard::types): Implement based on NSPasteboard's types.
7:48 PM Changeset in webkit [6749] by rjw
  • 3 edits in trunk/WebKit

conformsToProtocol:@protocol(WebPlugin) becomes
respondsToSelector:@selector(webPlugInInitialize) because
protocol was changed to an informal protocol.

Reviewed by Kevin.

  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge frameRequiredForMIMEType:URL:]):
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView addSubview:]):
4:39 PM Changeset in webkit [6748] by rjw
  • 2 edits in trunk/WebCore

Corrected typo ID_IMG should have been ID_CANVAS when
checking for the canvas composite operator.

Reviewed by Ken.

  • khtml/rendering/render_canvasimage.cpp: (RenderCanvasImage::paint):
4:24 PM Changeset in webkit [6747] by rjw
  • 2 edits in trunk/WebCore

Correctly size the <CANVAS> if margins, borders, or
padding is added.

Reviewed by Trey.

  • khtml/rendering/render_canvasimage.cpp: (RenderCanvasImage::createDrawingContext):
2:12 PM Changeset in webkit [6746] by trey
  • 27 edits in trunk

WebCore:

First cut at the source side of DHTML dragging. Following IE, new events are added:
ondragstart, ondrag, ondragend. The recently added CSS property -khtml-user-drag can
be used to make an element draggable. event.dataTransfer.setDragImage(ImageObject,x,y)
can be used from ondragstart to set a static image for the dragImage. x,y is the location
of the mouse within the image from the upper right corner. clipboard methods setdata
and cleardata are implemented.

Reviewed by hyatt.

  • khtml/ecma/kjs_dom.cpp: (DOMNode::getValueProperty): Boilerplate for new events (DOMNode::putValue): Boilerplate for new events
  • khtml/ecma/kjs_dom.h: (KJS::DOMNode::): Boilerplate for new events
  • khtml/ecma/kjs_dom.lut.h:
  • khtml/ecma/kjs_events.cpp: (DOMMouseEvent::getValueProperty): Return undefined for clipboard when its not a drag event. (ClipboardProtoFunc::tryCall): setDragImage glue to clipboard routine.
  • khtml/ecma/kjs_events.h: (KJS::Clipboard::):
  • khtml/ecma/kjs_events.lut.h:
  • khtml/html/html_elementimpl.cpp: (HTMLElementImpl::parseHTMLAttribute): Boilerplate for new events
  • khtml/khtml_part.cpp: (KHTMLPart::shouldDragAutoNode): Empty impl of new method, where UA determines draggability for events with -khtml-user-drag=auto
  • khtml/khtml_part.h:
  • khtml/misc/htmlattrs.c:
  • khtml/misc/htmlattrs.h:
  • khtml/misc/htmlattrs.in: Boilerplate for new events
  • khtml/rendering/render_object.cpp: (RenderObject::draggableNode): Find the node or parent node which might be dragged.
  • khtml/rendering/render_object.h:
  • khtml/xml/dom2_eventsimpl.cpp: (EventImpl::typeToId): Boilerplate for new events (EventImpl::idToType): Boilerplate for new events
  • khtml/xml/dom2_eventsimpl.h: (DOM::EventImpl::): Boilerplate for new events
  • kwq/KWQClipboard.h:
  • kwq/KWQClipboard.mm: (KWQClipboard::clearData): Implemented to call NSPasteboard (KWQClipboard::clearAllData): ditto (KWQClipboard::getData): fix corner case that came up testing (KWQClipboard::setData): Implemented to call NSPasteboard (KWQClipboard::dragLocation): Simple setter/getters (KWQClipboard::setDragLocation): (KWQClipboard::dragImage): (KWQClipboard::setDragImage): (KWQClipboard::dragNSImage):
  • kwq/KWQKHTMLPart.h:
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::KWQKHTMLPart): init new member var (KWQKHTMLPart::dragHysteresisExceeded): Hysteresis moved here from WebKit (KWQKHTMLPart::dispatchDragSrcEvent): Send a dragging event to the current dragSource (KWQKHTMLPart::khtmlMouseMoveEvent): Initiate dragging, now including consulting DHTML, hysteresis and sending ondragstart. (KWQKHTMLPart::dragSourceMovedTo): simple passthrough (KWQKHTMLPart::dragSourceEndedAt): simple passthrough (KWQKHTMLPart::mouseDown): salt away _mouseDownX, _mouseDownY (KWQKHTMLPart::shouldDragAutoNode): Called for -khtml-user-drag=auto. We just call out to WebKit.
  • kwq/WebCoreBridge.h:
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge dragSourceMovedTo:]): New glue to drive new dragging events. (-[WebCoreBridge dragSourceEndedAt:operation:]):

WebKit:

First cut at source side of DHTML dragging. Most of the work is in WebCore.

Reviewed by hyatt.

  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge startDraggingImage:at:event:]): Added image and loc args for when WC tells WK to start a drag.
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _startDraggingImage:at:event:]): New image and loc args coming from WebCore. Hysteresis is moved to WC. (-[WebHTMLView mouseDragged:]): Call new _startDragging method. (-[WebHTMLView draggedImage:movedTo:]): Pass event to WC. (-[WebHTMLView draggedImage:endedAt:operation:]): Pass event to WC. (-[WebHTMLView mouseUp:]): Reset firstMouseDownEvent. Fixes bug where we would occasionally short-circuit WC event handling due to aliasing problem with this event.
  • WebView.subproj/WebHTMLViewPrivate.h:
1:45 PM Changeset in webkit [6745] by darin
  • 2 edits in trunk/WebKit

WebKit:

Reviewed by John.

  • fixed problem with timing of delegate callbacks in the back/forward cache case
  • WebView.subproj/WebFrame.m: (-[WebFrame _transitionToCommitted:]): Move code to indicate page is done loading in the back/forward cache case from here ... (-[WebFrame _opened]): ... to here.

WebBrowser:

Reviewed by John.

  • removed workaround for bad timing of delegate callbacks in the back/forward cache case
  • BrowserWindowController.m: (-[BrowserWindowController webFrameLoadFinished:]): Removed delays that had been added to work around bad ordering of delegate callbacks in the back/forward cache case. The bug is now fixed in WebKit.
  • LocationChangeHandler.m: (-[LocationChangeHandler webView:locationChangeDone:forDataSource:]): More of the same.
  • AppController.m: (-[AppController safariSyndication]): Changed to use objc_getClass because I can't leave well-enough alone.
  • DownloadProgressEntry.m: (BOMCopierNew): Changed () to (void) in one place where it means "no parameters" rather than "unknown number of parameters".
7:42 AM Changeset in webkit [6744] by kocienda
  • 8 edits
    1 add
    3 deletes in trunk/WebCore

Reviewed by me

Finish off name change from previous check-in by changing dom_edititerator
file names to dom_positioniterator. Files copied and renamed in repository.
Includes updated as needed.

  • ForwardingHeaders/xml/dom_edititerator.h: Removed.
  • ForwardingHeaders/xml/dom_positioniterator.h: Added.
  • WebCore.pbproj/project.pbxproj:
  • khtml/editing/htmlediting_impl.cpp:
  • khtml/xml/dom_edititerator.cpp: Removed.
  • khtml/xml/dom_edititerator.h: Removed.
  • khtml/xml/dom_position.cpp:
  • khtml/xml/dom_positioniterator.cpp: Added. (DOM::PositionIterator::peekPrevious): (DOM::PositionIterator::peekNext): (DOM::PositionIterator::atStart): (DOM::PositionIterator::atEnd):
  • khtml/xml/dom_positioniterator.h: Added. (DOM::PositionIterator::PositionIterator): (DOM::PositionIterator::current): (DOM::PositionIterator::previous): (DOM::PositionIterator::next): (DOM::PositionIterator::setPosition): (DOM::PositionIterator::isEmpty):
  • khtml/xml/dom_selection.cpp:
7:30 AM Changeset in webkit [6743] by kocienda
  • 10 edits in trunk/WebCore

Reviewed by Darin

Probable fix for this bug:

<rdar://problem/3668619>: "REGRESSION: text placed on pasteboard by WebKit is offset by one character"

I could not reproduce the bug myself, which is why I call the fix
as probable.

Darin and I did some code inspection and found some problems
with the equivalentUpstreamPosition and
equivalentDownstreamPosition functions on DOM::Position and how
these functions dealt with changing from editable to
non-editable content. As a result of these discoveries, I went
over this code and the helpers and functions which support them,
and made some corrections and simplifications. The big changes
are as follows:

  1. Rename EditIterator class to PositionIterator. This class needs to run code for selections in non-editable content, so the name change is appropriate.
  1. Change containingEditableBlock to containingBlock. It turns out that none of the editing code relies on the distinction between editable blocks and non-editable blocks. The important distinction is the block boundary. The notion of rootEditableBlock remains.
  • khtml/editing/htmlediting_impl.cpp: (khtml::DeleteCollapsibleWhitespaceCommandImpl::deleteWhitespace): PositionIterator name change. (khtml::DeleteSelectionCommandImpl::joinTextNodesWithSameStyle): Ditto. (khtml::DeleteSelectionCommandImpl::containsOnlyWhitespace): Ditto. (khtml::DeleteSelectionCommandImpl::doApply): Ditto. (khtml::InputNewlineCommandImpl::doApply): Ditto. (khtml::RemoveNodeAndPruneCommandImpl::doApply): Ditto.
  • khtml/rendering/bidi.cpp: (khtml::RenderBlock::layoutInlineChildren): Ditto.
  • khtml/xml/dom_edititerator.cpp: (DOM::PositionIterator::peekPrevious): Call for previousLeafNode instead of previousEditable. Editable check is not appropriate as this class is used for non-editable content. (DOM::PositionIterator::peekNext): Call nextLeafNode instead of nextEditable, as above. (DOM::PositionIterator::atStart): Call for previousLeafNode instead of previousEditable, as above. (DOM::PositionIterator::atEnd): Call nextLeafNode instead of nextEditable, as above.
  • khtml/xml/dom_edititerator.h: (DOM::PositionIterator::PositionIterator): PositionIterator name change. Remove unused and unneeded constructors.
  • khtml/xml/dom_nodeimpl.cpp: (NodeImpl::previousEditable): Simplify. Rely on previousLeafNode as a helper. (NodeImpl::nextEditable): Ditto, but rely on nextLeafNode. (NodeImpl::previousLeafNode): Remove tree-walking code. Rely on traversePreviousNode as a helper. (NodeImpl::nextLeafNode): Ditto, but rely on traverseNextNode. (NodeImpl::containingBlock): Renamed replacement for containingEditableBlock. (NodeImpl::inSameContainingEditableBlock): Call renamed containingBlock.
  • khtml/xml/dom_nodeimpl.h:
  • khtml/xml/dom_position.cpp: (DOM::Position::previousCharacterPosition): Various name changes, as described above. (DOM::Position::nextCharacterPosition): Ditto. (DOM::Position::previousWordPosition): Ditto. (DOM::Position::nextWordPosition): Ditto. (DOM::Position::previousLinePosition): Ditto. (DOM::Position::nextLinePosition): Ditto. (DOM::Position::equivalentUpstreamPosition): Remove bogus check for editable node in loop. Perform improved block-crossing check at start of loop which works for editable and non-editable content. This is the crux of the fix for the bug. (DOM::Position::equivalentDownstreamPosition): Ditto. (DOM::Position::inRenderedContent): Various name changes, as described above. (DOM::Position::rendersOnSameLine): Ditto. (DOM::Position::rendersInDifferentPosition): Ditto. (DOM::Position::isFirstRenderedPositionOnLine): Ditto. (DOM::Position::isLastRenderedPositionOnLine): Ditto. (DOM::Position::isLastRenderedPositionInEditableBlock): Ditto. (DOM::Position::inFirstEditableInRootEditableBlock): Ditto. (DOM::Position::inLastEditableInRootEditableBlock): Ditto. (DOM::Position::inFirstEditableInContainingEditableBlock): Ditto. (DOM::Position::inLastEditableInContainingEditableBlock): Ditto.

Jun 1, 2004:

10:16 PM Changeset in webkit [6742] by rjw
  • 4 edits in trunk

WebCore:

Fixed deployment build warning.

  • khtml/rendering/render_canvasimage.cpp: (RenderCanvasImage::paint):

WebKit:

Fixed deployment build warning.

  • WebCoreSupport.subproj/WebImageRenderer.m: (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]):
7:12 PM Changeset in webkit [6741] by rjw
  • 14 edits in trunk

WebCore:

Added support for composite attribute to <CANVAS>
Added support for drawImage and drawImageFromRect to <CANVAS>, i.e.:

<html>
<head>
<script>

var img = new Image(600,600);

function drawImage()
{

var aCanvas = document.getElementById ("canvas1");
var context = aCanvas.getContext("context-2d");
context.drawImage (img, 0, 0, 600, 600, "copy");

}

img.onload = drawImage;
img.src = "http://www.google.com/images/logo.gif";

</script>
</head>
<body>
<canvas id="canvas1" width=600 height=600>
</body>
<html>

Reviewed by Trey.

  • khtml/ecma/kjs_html.cpp: (KJS::Context2DFunction::tryCall): (Context2D::Context2D):
  • khtml/ecma/kjs_html.h:
  • khtml/rendering/render_canvasimage.cpp: (RenderCanvasImage::paint):
  • kwq/KWQPainter.h:
  • kwq/KWQPainter.mm: (QPainter::getCompositeOperation): (QPainter::setCompositeOperation): (QPainter::drawPixmap): (QPainter::drawTiledPixmap):
  • kwq/KWQPixmap.h:
  • kwq/KWQPixmap.mm: (QPixmap::flushRasterCache):
  • kwq/WebCoreImageRenderer.h:
  • kwq/WebCoreImageRendererFactory.h:

WebKit:

Added support for drawImage and drawImageFromRect to <CANVAS>
Added support for composite attribute to <CANVAS>

Reviewed by Trey.

  • WebCoreSupport.subproj/WebImageRenderer.h:
  • WebCoreSupport.subproj/WebImageRenderer.m: (-[WebImageContext initWithBounds:context:]): (-[WebImageContext dealloc]): (-[WebImageContext saveGraphicsState]): (-[WebImageContext restoreGraphicsState]): (-[WebImageContext isDrawingToScreen]): (-[WebImageContext focusStack]): (-[WebImageContext setFocusStack:]): (-[WebImageContext bounds]): (-[WebImageContext isFlipped]): (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]): (-[WebImageRenderer dealloc]): (-[WebImageRenderer _beginRedirectContext:]): (-[WebImageRenderer _endRedirectContext:]): (-[WebImageRenderer _needsRasterFlush]): (-[WebImageRenderer drawClippedToValidInRect:fromRect:]): (-[WebImageRenderer drawImageInRect:fromRect:]): (-[WebImageRenderer flushRasterCache]): (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]): (-[WebImageRenderer tileInRect:fromPoint:context:]):
  • WebCoreSupport.subproj/WebImageRendererFactory.m: (-[WebImageRendererFactory imageRendererWithMIMEType:]): (-[WebImageRendererFactory imageRendererWithName:]): (-[WebImageRendererFactory CGCompositeOperationInContext:]): (-[WebImageRendererFactory setCGCompositeOperation:inContext:]): (-[WebImageRendererFactory setCGCompositeOperationFromString:inContext:]):
5:09 PM Changeset in webkit [6740] by sullivan
  • 3 edits in trunk/WebKit

Reviewed by Trey.

Work on text-align API. Marked these bugs fixed:
<rdar://problem/3655380>: (Editing:�alignCenter:�ethod�nimplemented�WebKit�diting�PI))
<rdar://problem/3655381>: (Editing:�alignJustified:�ethod�nimplemented�WebKit�diting�PI))
<rdar://problem/3655383>: (Editing:�alignLeft:�ethod�nimplemented�WebKit�diting�PI))
<rdar://problem/3655384>: (Editing:�alignRight:�ethod�nimplemented�WebKit�diting�PI))

in favor of opening this bug:
<rdar://problem/3675191>: (Editing: -alignLeft: and friends mostly implemented but not
yet working (WebKit editing API))

  • English.lproj/StringsNotToBeLocalized.txt: updated for these changes
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView changeDocumentBackgroundColor:]): added a FIXME about why this is still not quite right (-[WebHTMLView _alignSelectionUsingCSSValue:]): new method, bottleneck for the various values (-[WebHTMLView alignCenter:]): call _alignSelectionUsingCSSValue:@"center" (-[WebHTMLView alignJustified:]): call _alignSelectionUsingCSSValue:@"justify" (-[WebHTMLView alignLeft:]): call _alignSelectionUsingCSSValue:@"left" (-[WebHTMLView alignRight:]): call _alignSelectionUsingCSSValue:@"right"
4:08 PM Changeset in webkit [6739] by sullivan
  • 2 edits in trunk/WebKit

Reviewed by Ken.

  • fixed <rdar://problem/3655378>: (Editing:�changeDocumentBackgroundColor:� method�nimplemented�WebKit�diting�PI))
  • made startSpeaking: actually work; previous implementation raised a DOMException
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _changeCSSColorUsingSelector:inRange:]): added range parameter (-[WebHTMLView _entireDOMRange]): new convenience method (-[WebHTMLView changeDocumentBackgroundColor:]): now affects entire document, not just selected range, a la NSTextView (-[WebHTMLView changeColor:]): now passes in a range to _changeCSSColorUsingSelector:inRange: (-[WebHTMLView startSpeaking:]): now uses _entireDOMRange
3:31 PM Changeset in webkit [6738] by cblu
  • 2 edits in trunk/WebKit

Fixed: <rdar://problem/3661505>: (REGRESSION (Safari-140) can't drag standalone images more than once)

Reviewed by john.

  • WebView.subproj/WebImageView.m: (-[WebImageView mouseDown:]): set ignoringMouseDraggedEvents to NO. This line of code was deleted somehow.
2:21 PM Changeset in webkit [6737] by sullivan
  • 2 edits in trunk/WebKit

Reviewed by Darin.

  • fixed <rdar://problem/3657003>: (HTML Editing: Color panel doesn't work)
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _colorPanelColorAsStyleUsingSelector:]): new method, returns a DOMCSSStyleDeclaration * (-[WebHTMLView _changeCSSColorUsingSelector:]): new method, sets a color-related style attribute on the selection (-[WebHTMLView changeDocumentBackgroundColor:]): call _changeCSSColorUsingSelector: with @selector(setBackgroundColor:) (-[WebHTMLView changeColor:]): call _changeCSSColorUsingSelector: with @selector(setColor:); also added comments explaining why changeDocumentBackgroundColor: will never actually be called until an AppKit code-incest mess is straighted out.
1:58 PM Changeset in webkit [6736] by kocienda
  • 9 edits in trunk/WebCore

Reviewed by Darin

Fix for these bugs:

<rdar://problem/3655028>: "Text styles have hard-coded values making bold the only supported text style"
<rdar://problem/3656969>: "HTML Editing: Font panel doesn't work"

  • khtml/css/css_valueimpl.cpp: (FontFamilyValueImpl::cssText): Added implementation for this subclass. Returns parsedFontName.
  • khtml/css/css_valueimpl.h: Declare cssText() on FontFamilyValueImpl. (DOM::CSSProperty::value):
  • khtml/editing/htmlediting.cpp: (khtml::ApplyStyleCommand::ApplyStyleCommand): Changed signature to take a CSSStyleDeclarationImpl. (khtml::ApplyStyleCommand::style): Added accessor.
  • khtml/editing/htmlediting.h: Changed constructor signature to take a CSSStyleDeclarationImpl.
  • khtml/editing/htmlediting_impl.cpp: (khtml::styleSpanClassString): Added helper to return attribute used to tag spans we add to apply styles. (khtml::ApplyStyleCommandImpl::ApplyStyleCommandImpl): Ref style passed in. (khtml::ApplyStyleCommandImpl::~ApplyStyleCommandImpl): Deref style passed in. (khtml::ApplyStyleCommandImpl::doApply): m_removingStyle is obsolete. Removed. (khtml::ApplyStyleCommandImpl::isHTMLStyleNode): Now checks all properties in the object's declaration. (khtml::ApplyStyleCommandImpl::removeCSSStyle): Again, now is multi-property-savvy. Will now remove an empty span if we added it. (khtml::ApplyStyleCommandImpl::currentlyHasStyle): Replaced, bold-only code with code that can handle all styles. (khtml::ApplyStyleCommandImpl::computeStyleChange): Helper which helps to determine whether we want to apply HTML-style markup for bold and italic, and gathers up all style changes that need to be done. (khtml::ApplyStyleCommandImpl::positionInsertionPoint): Added comment explaining possible optimization that might be done in the future. (khtml::ApplyStyleCommandImpl::applyStyleIfNeeded): Significant reworking; now handles applying multiple styles. (khtml::ApplyStyleCommandImpl::cloneSelection): Assert fragment has at least one child. Don't want to work on empty fragments. (khtml::ApplyStyleCommandImpl::surroundContentsWithElement): New helper. (khtml::RemoveCSSPropertyCommandImpl::~RemoveCSSPropertyCommandImpl): Juggle asserts and lifecycle methods to be more like other commands. (khtml::RemoveCSSPropertyCommandImpl::doApply): Ditto. (khtml::RemoveNodeAttributeCommandImpl::~RemoveNodeAttributeCommandImpl): Ditto. (khtml::RemoveNodeAttributeCommandImpl::doApply):Ditto.
  • khtml/editing/htmlediting_impl.h: (khtml::ApplyStyleCommandImpl::style): Added. (khtml::ApplyStyleCommandImpl::StyleChange::StyleChange): Added.
  • kwq/DOM-CSS.mm: (-[DOMCSSStyleDeclaration setProperty:::]): Fix problem where passing an empty NSString to a function expecting a boolean made all properties important priority.
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge applyStyle:]): Remove provisional code and comment. Now pass along style, following the intended design.
1:57 PM Changeset in webkit [6735] by kocienda
  • 2 edits in trunk/WebKit

Reviewed by Darin

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _fontManagerOperationAsStyle]): Fixed typo in family-name code that caused family names to match when they should not.
1:53 PM Changeset in webkit [6734] by cblu
  • 5 edits in trunk

WebCore:

Reviewed by kocienda.

  • kwq/WebCoreBridge.h:
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge dragCaretDOMRange]): new, lets WebKit pass the drag caret DOM range to the editing delegate

WebKit:

Made paste and drop ask the delegate before making any replacements.

Reviewed by kocienda.

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _pasteWithPasteboard:allowPlainText:]): renamed, now calls _shouldInsertFragment:replacingDOMRange:givenAction: (-[WebHTMLView _shouldInsertFragment:replacingDOMRange:givenAction:]): new, asks delegate (-[WebHTMLView concludeDragForDraggingInfo:]): now calls _shouldInsertFragment:replacingDOMRange:givenAction: (-[WebHTMLView paste:]): call renamed _pasteWithPasteboard:allowPlainText: (-[WebHTMLView pasteAsRichText:]): ditto

May 28, 2004:

9:23 PM Changeset in webkit [6733] by ouch
  • 4 edits in trunk/WebCore

Reviewed by gramps.

  • removed setShadowWithColor and change setShadow to work with optional attributes

it follows the same rules as setFill/StrokeColor

  • Fixed bug in setFillColor and setStrokeColor for CMYK colors (missing break in case).
  • khtml/ecma/kjs_html.cpp: (KJS::Context2DFunction::tryCall):
  • khtml/ecma/kjs_html.h: (KJS::Context2D::):
  • khtml/ecma/kjs_html.lut.h: (KJS::):
5:07 PM Changeset in webkit [6732] by darin
  • 3 edits in trunk/WebKit

Reviewed by Maciej.

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _fontManagerOperationAsStyle]): First cut at figuring out what operation the font manager is doing without digging into its private data structures.
4:26 PM Changeset in webkit [6731] by darin
  • 16 edits in trunk

WebCore:

Reviewed by Ken.

  • various editing-related improvements
  • khtml/xml/dom_selection.h: Removed UP and DOWN directions, and added PARAGRAPH granularity.
  • khtml/xml/dom_selection.cpp: (DOM::Selection::modify): Got rid of the UP and DOWN directions, and made movement between lines happen when granularity is LINE. Added a new unimplemented granularity: PARAGRAPH. (DOM::Selection::validate): Remove some unneeded APPLE_CHANGES. The code need not be ifdef'd. (DOM::Selection::debugPosition): Ditto.
  • kwq/WebCoreBridge.h: Removed WebSelectUp and WebSelectDown, and added WebSelectByParagraph. Added stringForRange: and selectedDOMRangeWithGranularity:, and renamed replaceSelectionWithNewline to insertNewline because it has the insertText: semantic, not the replaceSelectionWithText: one.
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge stringForRange:]): Added. (-[WebCoreBridge selectedDOMRangeWithGranularity:]): Added. (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): Updated code to understand that vertical movement is based on granularity now, not direction. (-[WebCoreBridge replaceSelectionWithFragment:selectReplacement:]): Moved an ensureCaretVisible from the WebKit down here. I think perhaps this should go down even further in WebCore. (-[WebCoreBridge insertNewline]): Renamed, and moved ensureCaretVisible here. (-[WebCoreBridge insertText:]): Moved ensureCaretVisible here. (-[WebCoreBridge deleteKeyPressed]): Moved ensureCaretVisible here.
  • khtml/xml/dom_position.cpp: Some ifdef tweaks.
  • khtml/misc/helper.cpp: Namespace and formatting tweaks.
  • khtml/misc/helper.h: Removed some unused stuff.
  • khtml/dom/dom2_range.h: Make range constructor public so that anyone with a RangeImpl can easily make a Range.

WebKit:

Reviewed by Ken.

  • various editing-related improvements
  • fixed <rdar://problem/3655366>: (Editing: -selectParagraph: method unimplemented (WebKit editing API))
  • fixed <rdar://problem/3655367>: (Editing: -selectLine: method unimplemented (WebKit editing API))
  • fixed <rdar://problem/3655369>: (Editing: -selectWord: method unimplemented (WebKit editing API))
  • fixed <rdar://problem/3655392>: (Editing: -uppercaseWord: method unimplemented (WebKit editing API))
  • fixed <rdar://problem/3655393>: (Editing: -lowercaseWord: method unimplemented (WebKit editing API))
  • fixed <rdar://problem/3655394>: (Editing: -capitalizeWord: method unimplemented (WebKit editing API))
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _alterCurrentSelection:direction:granularity:]): Removed the call to ensureCaretVisible. This is now handled on the other side of the bridge. (-[WebHTMLView moveDown:]): Changed to use WebSelectByLine granularity instead of WebSelectDown direction. (-[WebHTMLView moveDownAndModifySelection:]): Ditto. (-[WebHTMLView moveUp:]): Ditto. (-[WebHTMLView moveUpAndModifySelection:]): Ditto. (-[WebHTMLView _expandSelectionToGranularity:]): Added. (-[WebHTMLView selectParagraph:]): Implemented by calling _expandSelectionToGranularity. (-[WebHTMLView selectLine:]): Ditto. (-[WebHTMLView selectWord:]): Ditto. (-[WebHTMLView _fontManagerOperationAsStyle]): Added. Placeholder for the job of figuring out what style change to make based on NSFontManager. (-[WebHTMLView changeFont:]): Implemented, but not really tested because guts are still missing due to lack of above method. (-[WebHTMLView insertTab:]): Removed the call to ensureCaretVisible. (-[WebHTMLView insertNewline:]): Removed the call to ensureCaretVisible. (-[WebHTMLView insertParagraphSeparator:]): Made this insert a newline for now. (-[WebHTMLView _changeWordCaseWithSelector:]): Added. (-[WebHTMLView uppercaseWord:]): Implemented by calling _changeWordCaseWithSelector. (-[WebHTMLView lowercaseWord:]): Ditto. (-[WebHTMLView capitalizeWord:]): Ditto. (-[WebHTMLView deleteBackward:]): Removed the call to ensureCaretVisible. (-[WebHTMLView checkSpelling:]): Put a pile of AppKit code in here as a placeholder. (-[WebHTMLView startSpeaking:]): Use the new stringForRange: method instead of outerText. That way we can handle cases where the entire document is selected. (-[WebHTMLView insertText:]): Removed the call to ensureCaretVisible.
2:40 PM Changeset in webkit [6730] by rjw
  • 4 edits in trunk/WebCore

setStrokeColor and setFillColor now support
old school web color string, oswcs+alpha, gray, gray+alpha,
rgba, and cmyka.

Reviewed by jay-lo.

  • khtml/css/cssparser.cpp: (CSSParser::parseColor): (CSSParser::parseColorFromValue):
  • khtml/css/cssparser.h: Made parseColor static public class method
  • khtml/ecma/kjs_html.cpp: (KJS::Context2DFunction::tryCall):
12:41 PM Changeset in webkit [6729] by cblu
  • 3 edits in trunk/WebKit

Fixed: <rdar://problem/3672129>: (selection deselects when clicking editable WebView in background window)

Fixed this problem by using NSTextView's approach of only allowing dragging on first mouse down.

Reviewed by john.

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView acceptsFirstMouse:]): store the first mouse down (-[WebHTMLView mouseDown:]): Don't tell WebCore about the first mouse down event since only dragging can occur on the first mouse down. (-[WebHTMLView mouseDragged:]): Don't tell WebCore about the drags that occur after the first mouse down since only dragging can occur after the first mouse down.
  • WebView.subproj/WebHTMLViewInternal.h:
12:33 PM Changeset in webkit [6728] by hyatt
  • 15 edits in trunk/WebCore

Implement -khtml-user-select and add support for the property -khtml-user-drag (although someone will still
need to wire it up).

Reviewed by rjw

  • khtml/css/cssparser.cpp: (CSSParser::parseValue):
  • khtml/css/cssproperties.c: (hash_prop): (findProp):
  • khtml/css/cssproperties.h:
  • khtml/css/cssproperties.in:
  • khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::applyProperty):
  • khtml/css/cssvalues.c: (hash_val): (findValue):
  • khtml/css/cssvalues.h:
  • khtml/css/cssvalues.in:
  • khtml/khtml_part.cpp: (KHTMLPart::handleMousePressEventDoubleClick): (KHTMLPart::handleMousePressEventTripleClick): (KHTMLPart::handleMousePressEventSingleClick): (KHTMLPart::handleMouseMoveEventSelection):
  • khtml/rendering/render_canvas.cpp: (RenderCanvas::setSelection):
  • khtml/rendering/render_object.cpp: (RenderObject::shouldSelect):
  • khtml/rendering/render_object.h:
  • khtml/rendering/render_style.cpp: (userSelect): (StyleCSS3NonInheritedData::operator==): (RenderStyle::diff):
  • khtml/rendering/render_style.h: (khtml::): (khtml::RenderStyle::userDrag): (khtml::RenderStyle::userSelect): (khtml::RenderStyle::setUserDrag): (khtml::RenderStyle::setUserSelect): (khtml::RenderStyle::initialUserDrag): (khtml::RenderStyle::initialUserSelect):
11:33 AM Changeset in webkit [6727] by ouch
  • 4 edits in trunk/WebCore

added addArc and clip path routines.

Reviewed by sullivan.

  • khtml/ecma/kjs_html.cpp: (KJS::Context2DFunction::tryCall):
  • khtml/ecma/kjs_html.h: (KJS::Context2D::):
  • khtml/ecma/kjs_html.lut.h: (KJS::):
11:00 AM Changeset in webkit [6726] by kdecker
  • 1 edit in trunk/WebKit/ChangeLog
  • WebView.subproj/WebView.m: At Ken's suggestion, for better efficiency and safety, use _cmd rather than explicit selector names in the forwarding methods.
10:57 AM Changeset in webkit [6725] by kdecker
  • 1 edit in trunk/WebKit/ChangeLog
  • WebView.subproj/WebView.m: At Ken's suggestion, for better efficiency and safety, use _cmd rather than explicit selector names in the forwarding methods.
10:47 AM Changeset in webkit [6724] by kdecker
  • 1 edit in trunk/JavaScriptCore/ChangeLog

Reviewed by Ken.

-revised generated error message content

  • kjs/error_object.cpp: (ErrorProtoFuncImp::call):
  • kjs/internal.cpp: (Parser::parse):
  • kjs/object.cpp: (KJS::Error::create):
10:21 AM Changeset in webkit [6723] by darin
  • 2 edits in trunk/WebKit
  • WebView.subproj/WebView.m: At Ken's suggestion, for better efficiency and safety, use _cmd rather than explicit selector names in the forwarding methods.
10:21 AM Changeset in webkit [6722] by kdecker
  • 1 edit in trunk/WebCore/ChangeLog-2005-08-23

Added addArcToPoint and addRect path routines.

Reviewed by sullivan.

  • khtml/ecma/kjs_html.cpp: (KJS::Context2DFunction::tryCall):
  • khtml/ecma/kjs_html.h: (KJS::Context2D::):
  • khtml/ecma/kjs_html.lut.h: (KJS::):
10:14 AM Changeset in webkit [6721] by darin
  • 9 edits
    1 add in trunk/WebKit

Reviewed by Ken.

  • implemented a few more editing operations, moved code from WebView to WebHTMLView
  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge respondToChangedContents]): Call _updateFontPanel on the WebHTMLView, not the WebView. (-[WebBridge respondToChangedSelection]): Ditto.
  • WebView.subproj/WebHTMLView.m: Moved WebElementOrTextFilter class here from WebView and gave it a prefix so it won't conflict with developers' class names. (-[WebHTMLView _updateFontPanel]): Moved here from WebView.
  • WebView.subproj/WebView.m: (-[WebView toggleSmartInsertDelete:]): Added. (-[WebView toggleContinuousSpellChecking:]): Added. (-[WebView isContinuousGrammarCheckingEnabled]): Added. (-[WebView setContinuousGrammarCheckingEnabled:]): Added. (-[WebView toggleContinuousGrammarChecking:]): Added. (-[WebView setSmartInsertDeleteEnabled:]): Implemented. We have the flag now, although we still don't actually have smart insert and delete implemented. (-[WebView smartInsertDeleteEnabled]): Ditto. (-[WebView setContinuousSpellCheckingEnabled:]): Implemented. (-[WebView isContinuousSpellCheckingEnabled]): Implemented. (-[WebView spellCheckerDocumentTag]): Implemented. (-[WebView _preflightSpellCheckerNow:]): Added. (-[WebView _preflightSpellChecker]): Added. (-[WebView _continuousCheckingAllowed]): Added.
  • WebView.subproj/WebHTMLViewInternal.h: Added. We'll things here from WebHTMLViewPrivate so they are internal to the framework, rather than SPI.
  • WebKit.pbproj/project.pbxproj: Added WebHTMLViewInternal.h.
  • WebView.subproj/WebHTMLViewPrivate.h: Moved WebHTMLViewPrivate into the internal header. Despite its name, it's internal, not SPI.
  • WebView.subproj/WebViewPrivate.h: Moved WebViewPrivate into the internal header. Despite its name, it's internal, not SPI. Added a number of new operations which should be public API. We'll have to figure out what to do about API review and the WWDC deadline.
  • WebView.subproj/WebViewInternal.h: Removed _updateFontPanel method.
  • English.lproj/StringsNotToBeLocalized.txt: Update.
8:54 AM Changeset in webkit [6720] by ouch
  • 4 edits in trunk/WebCore

Added addArcToPoint and addRect path routines.

Reviewed by sullivan.

  • khtml/ecma/kjs_html.cpp: (KJS::Context2DFunction::tryCall):
  • khtml/ecma/kjs_html.h: (KJS::Context2D::):
  • khtml/ecma/kjs_html.lut.h: (KJS::):
7:19 AM Changeset in webkit [6719] by kocienda
  • 6 edits in trunk

Tests:

Reviewed by Maciej.

  • moved to new symlink technique for embedding frameworks
  • Blot/Blot.xcode/project.pbxproj: Call the new create-framework-symlinks script instead of copy-frameworks-to-dstroot.sh.
  • Blot/embed-frameworks.sh: Removed.
  • PDFViewer/PDFViewer.pbproj/project.pbxproj: Call the new create-framework-symlinks script instead using a copy files phase.

WebCore:

Reviewed by John

  • khtml/xml/dom_selection.cpp: (DOM::Selection::toRange): Add call to update document layout before returning a Range. This is done to ensure recently-done editing changes are reflected in the calculation of the Range. This change solves a specific problem with updating the font panel, where the wrong Range was used, resulting in an incorrect font. Also, defer converting positions to be range-compliant positions. The nodeIsBeforeNode function is not range-compliant-position-savvy.

WebKit:

Reviewed by John

The font panel now updates correctly, reflecting the current selection. There may
still be some bugs and corner cases to handle, but this will work for a general
implementation of the feature.

  • WebView.subproj/WebView.m: (+[ElementOrTextFilter filter]): Added. This filter will accept DOM elements and text nodes and skip everything else. This filter is used when walking a selection to determine the fonts in use. (-[ElementOrTextFilter acceptNode:]): DOM node filter implementation method. (-[WebView _fontFromStyle]): Removed, in lieu of new fontForCurrentPosition call on the bridge. (-[WebView _updateFontPanel]): Reworked to use a TreeWalker instead of a NodeIterator. This was done since the iterator must be rooted at the document root, but start iterating at the start of the selection. TreeWalker's setCurrentNode allows this to be done.

May 27, 2004:

8:02 PM Changeset in webkit [6718] by kdecker
  • 2 edits in trunk/WebKit

WebBrowser:

Reviewed by Ken.

-added the Error Console feature

  • ChangeLog:
  • Debug/ErrorConsoleController.h: Added.
  • Debug/ErrorConsoleController.m: Added. (+[ErrorConsoleController sharedController]): (-[ErrorConsoleController init]): (-[ErrorConsoleController windowNibName]): (-[ErrorConsoleController awakeFromNib]): (-[ErrorConsoleController addMessage:]):
  • Debug/ErrorConsoleModel.h: Added.
  • Debug/ErrorConsoleModel.m: Added. (-[ErrorConsoleModel init]): (-[ErrorConsoleModel addErrorToModel:]): (-[ErrorConsoleModel setTable:]): (-[ErrorConsoleModel numberOfRowsInTableView:]): (-[ErrorConsoleModel tableView:objectValueForTableColumn:row:]): (-[ErrorConsoleModel tableView:willDisplayCell:forTableColumn:row:]):
7:06 PM Changeset in webkit [6717] by kdecker
  • 16 edits in trunk

JavaScriptCore:

Reviewed by Ken.

-revised generated error message content

  • kjs/error_object.cpp: (ErrorProtoFuncImp::call):
  • kjs/internal.cpp: (Parser::parse):
  • kjs/object.cpp: (KJS::Error::create):

WebCore:

Reviewed by Ken.

-wired up JavaScript error message handling to
the WebCoreBridge

  • khtml/ecma/kjs_events.cpp: (JSEventListener::handleEvent):
  • khtml/ecma/kjs_proxy.cpp: (KJSProxyImpl::evaluate):
  • khtml/ecma/kjs_window.cpp: (Window::isSafeScript): (ScheduledAction::execute):
  • kwq/KWQKHTMLPart.h:
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::addMessageToConsole):
  • kwq/WebCoreBridge.h:
  • kwq/WebCoreBridge.mm:

WebKit:

Reviewed by Ken.

-wired up JavaScript error message handling through
the WebCoreBridge

  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge addMessageToConsole:]):
  • WebKit.pbproj/project.pbxproj:
  • WebView.subproj/WebUIDelegatePrivate.h:

WebBrowser:

Reviewed by Ken.

-added the JavaScript Console feature

  • BrowserWebController.m: (-[BrowserWebView setWindowFocusDisabled:]): (-[BrowserWebView webView:addMessageToConsole:]):
  • Debug/DebugUtilities.m: (-[DebugUtilities createDebugMenu]): (-[BrowserDocument showJavaScriptConsole:]):
  • WebBrowser.pbproj/project.pbxproj:
5:14 PM Changeset in webkit [6716] by trey
  • 3 edits in trunk/WebCore

Two dragging tweaks: ondragleave events are sent before ondragenter events when
going across element boundaries, to match WinIE.
For compatibility with WinIE, we honor MIME types of "Text" and "URL".

Reviewed by rjw.

  • khtml/khtmlview.cpp: (KHTMLView::updateDragAndDrop):
  • kwq/KWQClipboard.mm: (cocoaTypeFromMIMEType):
4:28 PM Changeset in webkit [6715] by vicki
  • 3 edits in trunk
  • Change version number to '143u'. The tree is open!
4:22 PM Changeset in webkit [6714]
  • 3 copies in tags/Safari-142

This commit was manufactured by cvs2svn to create tag 'Safari-142'.

4:22 PM Changeset in webkit [6713] by vicki
  • 6 edits in trunk

Safari-142 stamp

4:05 PM Changeset in webkit [6712] by vicki
  • 7 edits in trunk/WebCore

Reviewed by Darin.

  • Fix Tiger build failure. Rename constant "S" to "WHITESPACE", and change all instances of S to WHITESPACE.
  • khtml/css/cssparser.cpp: (DOM::CSSParser::lex): S to WHITESPACE
  • khtml/css/parser.cpp: regenerated file
  • khtml/css/parser.h: regenerated file
  • khtml/css/parser.y: S to WHITESPACE
  • khtml/css/tokenizer.cpp: regenerated file
  • khtml/css/tokenizer.flex: S to WHITESPACE
3:46 PM Changeset in webkit [6711] by rjw
  • 2 edits in trunk/JavaScriptCore

Renamed WebScriptMethods to WebScripting based on feedback
from Nancy.

Reviewed by Chris.

  • bindings/objc/WebScriptObject.h:
11:28 AM Changeset in webkit [6710] by ouch
  • 4 edits in trunk/WebCore

Added support for fillRect, strokeRect, and setAlpha.

reviewed by richard.

  • khtml/ecma/kjs_html.cpp: (KJS::Context2DFunction::tryCall):
  • khtml/ecma/kjs_html.h: (KJS::Context2D::):
  • khtml/ecma/kjs_html.lut.h: (KJS::):
10:11 AM Changeset in webkit [6709] by trey
  • 23 edits
    2 adds in trunk

WebCore:

First cut at DHTML dragging, destination side. Dragging text, files

and URLs onto elements works. Type conversion from NSPasteboard to
MIME types is hardwired. No JS access yet to modifier keys, or
drag operations mask.

Per IE's dragging API, we have the new DOM events ondragenter,
ondragover, ondragleave and ondrop.
We also have an event.dataTransfer object providing access to the
NSPasteboard bearing the incoming data.

Reviewed by rjw.

  • WebCore.pbproj/project.pbxproj: add 2 new files.
  • khtml/ecma/kjs_dom.cpp: (DOMNode::getValueProperty): JS access to ondragenter and pals (DOMNode::putValue): Ditto
  • khtml/ecma/kjs_dom.h: (KJS::DOMNode::): New attr enum values.
  • khtml/ecma/kjs_dom.lut.h: (KJS::):
  • khtml/ecma/kjs_events.cpp: (DOMMouseEvent::mark): Pass along mark to dataTransfer we hold. (DOMMouseEvent::getValueProperty): Create and return dataTransfer. (Clipboard::Clipboard): New class exposed in JS. (Clipboard::~Clipboard): (Clipboard::tryGet): Boilerplate. (Clipboard::getValueProperty): Return the clipboard's props. (Clipboard::tryPut): Boilerplate. (Clipboard::putValue): Set the clipboard's props. (ClipboardProtoFunc::tryCall): Implement clipboard's funcs.
  • khtml/ecma/kjs_events.h: (KJS::DOMMouseEvent::DOMMouseEvent): Init clipboard ptr. (KJS::DOMMouseEvent::): (KJS::Clipboard::toBoolean): (KJS::Clipboard::classInfo): (KJS::Clipboard::):
  • khtml/ecma/kjs_events.lut.h: (KJS::):
  • khtml/html/html_elementimpl.cpp: (HTMLElementImpl::parseHTMLAttribute): Enable setting ondragenter and friends as html attributes.
  • khtml/khtmlview.cpp: (KHTMLView::dispatchDragEvent): Send a drag related event to the DOM. (KHTMLView::updateDragAndDrop): Handle a dragenter or dragupdate. (KHTMLView::cancelDragAndDrop): Handle a dragexit. (KHTMLView::performDragAndDrop): Handle an actual drop.
  • khtml/khtmlview.h:
  • khtml/misc/htmlattrs.c: Generated code.
  • khtml/misc/htmlattrs.h: Generated code.
  • khtml/misc/htmlattrs.in: Add ondragenter, etc
  • khtml/xml/dom2_eventsimpl.cpp: (EventImpl::typeToId): Handle new event types for dragging. (EventImpl::idToType): Ditto. (MouseEventImpl::MouseEventImpl): Init new clipboard ptr. (MouseEventImpl::~MouseEventImpl): Deref clipboard. (ClipboardImpl::ClipboardImpl): (ClipboardImpl::~ClipboardImpl):
  • khtml/xml/dom2_eventsimpl.h: (DOM::EventImpl::): New event enums. (DOM::MouseEventImpl::clipboard):
  • kwq/KWQClipboard.h: Added.
  • kwq/KWQClipboard.mm: Added. (KWQClipboard::KWQClipboard): (KWQClipboard::~KWQClipboard): (KWQClipboard::isForDragging): Trivial getter/setters. (KWQClipboard::dropEffect): (KWQClipboard::setDropEffect): (KWQClipboard::dropAllowed): (KWQClipboard::setDropAllowed): (cocoaTypeFromMIMEType): Convert MIME pboard type to Cocoa type. (KWQClipboard::clearData): OSX specific clipboard impl. of IE func (KWQClipboard::clearAllData): Ditto (KWQClipboard::getData): Ditto (KWQClipboard::setData): Ditto
  • kwq/WebCoreBridge.h:
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge dragOperationForDraggingInfo:]): Passthrough from WebKit to khtmlpart (-[WebCoreBridge dragExitedWithDraggingInfo:]): Ditto (-[WebCoreBridge concludeDragForDraggingInfo:]): Ditto

WebKit:

First cut at DHTML dragging, destination side. Dragging text, files and URLs onto
elements works. Type conversion from NSPasteboard to MIME types is hardwired.
No JS access yet to modifier keys, or operations mask.

Reviewed by Chris.

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView draggingUpdatedWithDraggingInfo:]): Call DHTML dragging via bridge. (-[WebHTMLView draggingCancelledWithDraggingInfo:]): Ditto. (-[WebHTMLView concludeDragForDraggingInfo:]): Ditto.
  • WebView.subproj/WebHTMLViewPrivate.h:
  • WebView.subproj/WebView.m: (-[WebView _setWebKitDragRespondsToDragging:]): New SPI for finer grained control than the delegate currently has. (-[WebView _webKitDragRespondsToDragging]): Ditto. (-[WebView _commonInitializationWithFrameName:groupName:]): Init new flag. (-[WebView _dragOperationForDraggingInfo:]): Comment.
  • WebView.subproj/WebViewPrivate.h:
9:26 AM Changeset in webkit [6708] by kocienda
  • 5 edits in trunk/WebCore

Reviewed by Gramps

  • kwq/KWQKHTMLPart.h: Declare new fontForCurrentPosition helper.
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::fontForCurrentPosition): Determines the "current font" in the way that Cocoa does. Either the font of the character before the caret, when the selection is a caret, or the font of the first character selected, when the selection is a range.
  • kwq/WebCoreBridge.h: Declare bridge method so this can be called from WebKit.
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge fontForCurrentPosition]): Calls through to fontForCurrentPosition on KWQKHTMLPart.
9:22 AM Changeset in webkit [6707] by kocienda
  • 4 edits in trunk/WebCore

Reviewed by Gramps

Adds a typing style member variable to khtml part.
This patch adds basic life-cycle management and
accessors. In addition, one essential piece of
behavior has been added: Clearing the typing style
whenever the selection changes.

Follow-on work will make this typing style a fully
functional part of applying styles to text while typing.

  • khtml/khtml_part.cpp: (KHTMLPart::notifySelectionChanged): Clear typing style. (KHTMLPart::typingStyle): Getter. (KHTMLPart::setTypingStyle): Setter. (KHTMLPart::clearTypingStyle): Convenience. Sets to 0.
  • khtml/khtml_part.h: Function declarations.
  • khtml/khtmlpart_p.h: (KHTMLPartPrivate::KHTMLPartPrivate): Initialize member variable. (KHTMLPartPrivate::~KHTMLPartPrivate): Deref if necessary.
9:18 AM Changeset in webkit [6706] by kocienda
  • 3 edits in trunk/WebCore

Reviewed by Gramps

Add helper to get the DOM element for a Position.

  • khtml/xml/dom_position.cpp: (DOM::Position::element): Returns the Position's node if it is an element, or the first ancestor of the node that is an element. Returns 0 if node is not an element and has no parent that is an element.
  • khtml/xml/dom_position.h: Added declaration.
1:18 AM Changeset in webkit [6705] by darin
  • 2 edits in trunk/WebKit
  • WebView.subproj/WebFrameView.m: (-[WebFrameView _scrollVerticallyBy:]): Added comment.
1:14 AM Changeset in webkit [6704] by darin
  • 7 edits in trunk/WebKit

Reviewed by Maciej.

  • fixed <rdar://problem/3667948>: (REGRESSION: Page Down key goes down two pages when smooth scrolling is on)
  • WebView.subproj/WebFrameView.m: (-[WebFrameView _scrollVerticallyBy:]): Added return value to indicate if any scrolling was done. This requires using secret AppKit methods; the public methods don't have a return value. (-[WebFrameView _pageVertically:]): Added return value to indicate if any scrolling was done. (-[WebFrameView scrollPageUp:]): Base call through to next responder on whether any scrolling was done, using return value, rather than looking at new scroll position. This was the cause of the bug, since with smooth scrolling no scrolling has happened yet when the function returns. (-[WebFrameView scrollPageDown:]): Ditto.
  • removed temporary DOMDocument method from WebView
  • WebView.subproj/WebView.m: (-[WebView computedStyleForElement:pseudoElement:]): Call getComputedStyle on the document that owns the element rather than on the document that currently contains the selection. (-[WebView _updateFontPanel]): Get the document from the DOM range rather than using the DOMDocument method. (-[WebView styleDeclarationWithText:]): Change this method to not use the DOMDocument method, but do the same job with inline code.
  • WebView.subproj/WebViewPrivate.h: Moved a recently-added category that is not SPI out of here.
  • WebView.subproj/WebViewInternal.h: Moved the category in here. And removed the DOMDocument method from it.
  • other changes
  • English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
  • copy-webcore-files-to-webkit: Change tabs to spaces. Quiet the script down by making it no longer echo each command or print messages about what it's doing by default.
12:36 AM Changeset in webkit [6703] by darin
  • 2 edits in trunk/WebKit

Reviewed by Maciej.

  • moved to new symlink technique for embedding frameworks
  • WebKit.pbproj/project.pbxproj: Get rid of embed-frameworks build step because we don't need it any more.
12:32 AM Changeset in webkit [6702] by darin
  • 2 edits in trunk/WebCore

Reviewed by Maciej.

  • moved to new symlink technique for embedding frameworks
  • WebCore.pbproj/project.pbxproj: Get rid of embed-frameworks build step because we don't need it any more.
12:31 AM Changeset in webkit [6701] by darin
  • 2 edits in trunk/JavaScriptCore

Reviewed by Maciej.

  • moved to new symlink technique for embedding frameworks
  • JavaScriptCore.pbproj/project.pbxproj: Get rid of embed-frameworks build step because we don't need it any more.
12:11 AM Changeset in webkit [6700] by darin
  • 2 edits in trunk/WebKit
  • fixed Deployment build
  • WebView.subproj/WebView.m: (-[WebView concludeDragOperation:]): Got rid of ASSERT-only local variable.
12:10 AM Changeset in webkit [6699] by darin
  • 2 edits in trunk/WebCore
  • fixed bug where all pages with images would cause a crash
  • fixed Deployment build
  • kwq/KWQPainter.mm: (QPainter::drawPixmap): Put #if 0 around placeholder code for setting up the graphics context.

May 26, 2004:

11:35 PM Changeset in webkit [6698] by rjw
  • 6 edits in trunk/WebCore

Added shadow support (w/ Louch).
Added infrastructure for drawing images.

New context methods:

setShadow
setShadowWithColor
clearShadow

Reviewed by me and Louch.

  • khtml/ecma/kjs_html.cpp: (KJS::Context2DFunction::tryCall):
  • khtml/ecma/kjs_html.h: (KJS::Image::image): (KJS::Context2D::):
  • khtml/ecma/kjs_html.lut.h: (KJS::):
  • kwq/KWQPainter.h:
  • kwq/KWQPainter.mm: (QPainter::drawPixmap):
11:32 PM Changeset in webkit [6697] by mjs
  • 3 edits in trunk/WebKit

Reviewed by Dave.

  • fix further problems with Emerson feed: redirection for RSS feeds

This is done by removing removing the calls to defer callbacks
while waiting for

  • WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient continueAfterNavigationPolicy:formState:]): (-[WebMainResourceClient connection:willSendRequest:redirectResponse:]): (-[WebMainResourceClient continueAfterContentPolicy:response:]): (-[WebMainResourceClient checkContentPolicyForResponse:]):
10:58 PM Changeset in webkit [6696] by beard
  • 35 edits in branches/AutoZoneGC_Branch_20040430

Now using NSAllocateScannedUncollectable(size) rather than NSZoneMalloc(NULL, size) when scanned but uncollectable memor
y is needed. Ran sources through gctools/automate.rb to generate finalizers and wrap CFMakeCollectable around bridged CF

types.

6:02 PM Changeset in webkit [6695] by cblu
  • 6 edits in trunk/WebKit

Added and implemented proposed dragging API changes. These changes are necessary to make JS dragging work properly.

Reviewed by trey.

  • WebView.subproj/WebDefaultUIDelegate.m: (-[WebDefaultUIDelegate webView:shouldDetermineDragOperationForDraggingInfo:dragOperation:]): instead of calling back to the WebView to get the default drag operation, return YES. Return NO in order to return a custom drag operation. Removed element parameter since another new API provides a way to get that. (-[WebDefaultUIDelegate webView:shouldProcessDragWithDraggingInfo:]): Removed element parameter since another new API provides a way to get that.
  • WebView.subproj/WebDocumentInternal.h:
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView draggingUpdatedWithDraggingInfo:]): now returns a drag operation (-[WebHTMLView draggingCancelledWithDraggingInfo:]): moved
  • WebView.subproj/WebUIDelegatePrivate.h:
  • WebView.subproj/WebView.m: (-[WebView elementAtPoint:]): new proposed API (-[WebView dragOperationForDraggingInfo:]): removed code from this API that should be removed (-[WebView _dragOperationForDraggingInfo:]): call new API (-[WebView concludeDragOperation:]): call new API
5:23 PM Changeset in webkit [6694] by rjw
  • 4 edits in trunk/WebCore

Fixed build snafu.

  • khtml/ecma/kjs_html.cpp: (KJS::Context2DFunction::tryCall):
  • khtml/ecma/kjs_html.h: (KJS::Context2D::):
  • khtml/ecma/kjs_html.lut.h: (KJS::):
4:58 PM Changeset in webkit [6693] by rjw
  • 13 edits in trunk/WebCore

Part 2 of the new <CANVAS> tag implementation. This adds the
basic machinery and draw operations for the <CANVAS> tag. Pretty cool.

function drawLine() {

var canvas1 = document.getElementById ("canvas1");
var context = canvas1.getContext("context-2d");

context.setStrokeColor ("red");
context.setLineWidth (10);
context.beginPath();
context.moveToPoint (0,0);
context.addLineToPoint (400,400);
context.strokePath();

}

...

<canvas id="canvas1" width="400" height="400">

Currently supported operations on the 2D context are:

Save, Restore,
Scale, Rotate, Translate,
BeginPath, ClosePath,
SetStrokeColor, SetFillColor, SetLineWidth, SetLineCap, SetLineJoin, SetMiterLimit,
FillPath, StrokePath,
MoveToPoint, AddLineToPoint, AddQuadraticCurveToPoint, AddBezierCurveToPoint,
ClearRect

More to come.

Reviewed by Dave.

  • khtml/ecma/kjs_html.cpp: (KJS::HTMLElementFunction::tryCall): (KJS::Context2DFunction::tryCall): (Context2D::tryGet): (Context2D::getValueProperty): (Context2D::tryPut): (Context2D::putValue): (Context2D::Context2D): (Context2D::~Context2D):
  • khtml/ecma/kjs_html.h: (KJS::Context2D::toBoolean): (KJS::Context2D::classInfo): (KJS::Context2D::):
  • khtml/ecma/kjs_html.lut.h: (KJS::):
  • khtml/html/html_canvasimpl.cpp: (HTMLCanvasElementImpl::HTMLCanvasElementImpl):
  • khtml/html/htmlparser.cpp: (KHTMLParser::getElement):
  • khtml/rendering/render_canvasimage.cpp: (RenderCanvasImage::RenderCanvasImage): (RenderCanvasImage::~RenderCanvasImage): (RenderCanvasImage::createDrawingContext): (RenderCanvasImage::drawingContext): (RenderCanvasImage::setNeedsImageUpdate): (RenderCanvasImage::updateDrawnImage): (RenderCanvasImage::drawnImage): (RenderCanvasImage::paint): (RenderCanvasImage::layout):
  • khtml/rendering/render_canvasimage.h:
  • khtml/rendering/render_image.cpp: (RenderImage::paint):
  • khtml/rendering/render_image.h:
  • khtml/rendering/render_replaced.cpp: (RenderReplaced::shouldPaint): (RenderWidget::paint):
  • kwq/KWQPainter.h:
  • kwq/KWQPainter.mm: (QPainter::currentContext):
2:16 PM Changeset in webkit [6692] by darin
  • 7 edits in trunk/WebKit

Reviewed by John.

  • moved HTML editing operations from WebView to WebHTMLView, leaving only forwarding machinery at the WebView level
  • fixed <rdar://problem/3655412>: (Editing:�startSpeaking:�ethod�nimplemented�WebKit�diting�PI))
  • fixed <rdar://problem/3655414>: (Editing:�stopSpeaking:�ethod�nimplemented�WebKit�diting�PI))
  • fixed <rdar://problem/3655375>: (Editing:�pasteAsRichText:�ethod�nimplemented�WebKit�diting�PI))
  • WebView.subproj/WebView.h: Added missing declaration of selectionAffinity. I think this omission was an editorial mistake.
  • WebView.subproj/WebView.m: (-[WebView searchFor:direction:caseSensitive:wrap:]): Use _frameForCurrentSelection directly, since it no longer returns nil. (-[WebView pasteboardTypesForSelection]): Use _frameForCurrentSelection instead of going through the bridge. (-[WebView _frameForCurrentSelection]): Renamed from _currentFrame and changed to return main frame rather than nil when called on WebView that has no current selection. (-[WebView _bridgeForCurrentSelection]): Moved in file. (-[WebView _updateFontPanel]): Removed the one call to _currentSelectionIsEditable here, since it was the only one left in this file. Eventually this code will move to WebHTMLView. (-[WebView _performResponderOperation:with:]): Name change.
  • WebView.subproj/WebDataSource.m: (-[WebDataSource _documentFragmentWithImageResource:]): Build document fragment using DOM instead of composing HTML text.
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): Added allowPlainText boolean, moved method into new location in file so it can be in the right category, changed link pasting to use DOM instead of composing HTML text. (-[WebHTMLView _replaceSelectionWithPasteboard:selectReplacement:allowPlainText:]): Added allowPlainText boolean, moved method into new location in file so it can be in the right category. (-[WebHTMLView concludeDragForDraggingInfo:]): Pass YES for allowPlainText. (-[WebHTMLView centerSelectionInVisibleArea:]): Moved here from WebView. (-[WebHTMLView _alterCurrentSelection:direction:granularity:]): Ditto. (-[WebHTMLView moveBackward:]): Ditto. (-[WebHTMLView moveBackwardAndModifySelection:]): Ditto. (-[WebHTMLView moveDown:]): Ditto. (-[WebHTMLView moveDownAndModifySelection:]): Ditto. (-[WebHTMLView moveForward:]): Ditto. (-[WebHTMLView moveForwardAndModifySelection:]): Ditto. (-[WebHTMLView moveLeft:]): Ditto. (-[WebHTMLView moveLeftAndModifySelection:]): Ditto. (-[WebHTMLView moveRight:]): Ditto. (-[WebHTMLView moveRightAndModifySelection:]): Ditto. (-[WebHTMLView moveToBeginningOfDocument:]): Ditto. (-[WebHTMLView moveToBeginningOfLine:]): Ditto. (-[WebHTMLView moveToBeginningOfParagraph:]): Ditto. (-[WebHTMLView moveToEndOfDocument:]): Ditto. (-[WebHTMLView moveToEndOfLine:]): Ditto. (-[WebHTMLView moveToEndOfParagraph:]): Ditto. (-[WebHTMLView moveUp:]): Ditto. (-[WebHTMLView moveUpAndModifySelection:]): Ditto. (-[WebHTMLView moveWordBackward:]): Ditto. (-[WebHTMLView moveWordBackwardAndModifySelection:]): Ditto. (-[WebHTMLView moveWordForward:]): Ditto. (-[WebHTMLView moveWordForwardAndModifySelection:]): Ditto. (-[WebHTMLView moveWordLeft:]): Ditto. (-[WebHTMLView moveWordLeftAndModifySelection:]): Ditto. (-[WebHTMLView moveWordRight:]): Ditto. (-[WebHTMLView moveWordRightAndModifySelection:]): Ditto. (-[WebHTMLView pageDown:]): Ditto. (-[WebHTMLView pageUp:]): Ditto. (-[WebHTMLView selectParagraph:]): Ditto. (-[WebHTMLView selectLine:]): Ditto. (-[WebHTMLView selectWord:]): Ditto. (-[WebHTMLView copy:]): Moved down in file so it's in the right category. (-[WebHTMLView cut:]): Ditto. (-[WebHTMLView delete:]): Ditto. (-[WebHTMLView paste:]): Ditto. (-[WebHTMLView copyFont:]): Moved here from WebView. (-[WebHTMLView pasteFont:]): Ditto. (-[WebHTMLView pasteAsPlainText:]): Ditto. (-[WebHTMLView pasteAsRichText:]): Implemented this by calling the paste code with allowPlainText:NO; believe it or not, that's what this means in NSTextView. (-[WebHTMLView changeFont:]): Moved here from WebView. (-[WebHTMLView changeAttributes:]): Ditto. (-[WebHTMLView changeDocumentBackgroundColor:]): Ditto. (-[WebHTMLView changeColor:]): Ditto. (-[WebHTMLView alignCenter:]): Ditto. (-[WebHTMLView alignJustified:]): Ditto. (-[WebHTMLView alignLeft:]): Ditto. (-[WebHTMLView alignRight:]): Ditto. (-[WebHTMLView indent:]): Ditto. (-[WebHTMLView insertTab:]): Moved here from WebView, also call insertText rather than replaceSelectionWithText so it's undoable like a typed character. (-[WebHTMLView insertBacktab:]): Moved here from WebView. (-[WebHTMLView insertNewline:]): Moved here from WebView, also call insertText rather than replaceSelectionWithText so it's undoable like a typed character. (-[WebHTMLView insertParagraphSeparator:]): Moved here from WebView. (-[WebHTMLView changeCaseOfLetter:]): Ditto. (-[WebHTMLView uppercaseWord:]): Ditto. (-[WebHTMLView lowercaseWord:]): Ditto. (-[WebHTMLView capitalizeWord:]): Ditto. (-[WebHTMLView deleteForward:]): Ditto. (-[WebHTMLView deleteBackward:]): Ditto. (-[WebHTMLView deleteBackwardByDecomposingPreviousCharacter:]): Ditto. (-[WebHTMLView deleteWordForward:]): Ditto. (-[WebHTMLView deleteWordBackward:]): Ditto. (-[WebHTMLView deleteToBeginningOfLine:]): Ditto. (-[WebHTMLView deleteToEndOfLine:]): Ditto. (-[WebHTMLView deleteToBeginningOfParagraph:]): Ditto. (-[WebHTMLView deleteToEndOfParagraph:]): Ditto. (-[WebHTMLView complete:]): Ditto. (-[WebHTMLView checkSpelling:]): Ditto. (-[WebHTMLView showGuessPanel:]): Ditto. (-[WebHTMLView performFindPanelAction:]): Ditto. (-[WebHTMLView startSpeaking:]): Implemented this. (-[WebHTMLView stopSpeaking:]): Implemented this. (-[WebHTMLView insertText:]): Moved here from WebView.
  • WebView.subproj/WebHTMLViewPrivate.h: Removed declarations of methods that are neither SPI nor needed outside WebHTMLView.m.
  • WebView.subproj/WebViewInternal.h: Removed _currentFrame, and added _frameForCurrentSelection and _bridgeForCurrentSelection.
9:05 AM Changeset in webkit [6691] by darin
  • 2 edits in trunk/WebCore
  • fixed warning that prevents Deployment build from compiling
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::khtmlMousePressEvent): Moved use of single-click boolean outside the scope of the "block exceptions" macros.
12:17 AM Changeset in webkit [6690] by mjs
  • 3 edits in trunk/WebKit

Reviewed by Richard.

<rdar://problem/3652498>: new sniffing support is crashing

  • WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient checkContentPolicyForResponse:]): Retain listener around call, in case delegate does something that ends up invalidating it, like navigating to a new URL.

May 25, 2004:

4:45 PM Changeset in webkit [6689] by cblu
  • 2 edits in trunk/WebCore

Fixed a regression where selections that were created via double or triple were not draggable.

Reviewed by darin.

  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::khtmlMousePressEvent): if the click count is greater than 1, don't allow drags (KWQKHTMLPart::khtmlMouseMoveEvent): allow drags to occur even if the selection was originally created via double or triple click
4:05 PM Changeset in webkit [6688] by cblu
  • 5 edits in trunk

WebCore:

Fixed regression where undoing typing would undo character-by-character.

Reviewed by kocienda.

  • kwq/WebCoreBridge.h:
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge insertText:]): new, this method used to be replaceSelectionWithText, but replaceSelectionWithText now is one operation whereas calls to insertText: are coalesced

WebKit:

Fixed regression where undoing typing would undo character-by-character.

Reviewed by kocienda.

  • WebView.subproj/WebView.m:
(-[WebView insertText:]): call insertText: rather than …
since text insertion via insertText: is coalesced and this is the behavior we want here
2:56 PM Changeset in webkit [6687] by kocienda
  • 10 edits in trunk

WebCore:

Reviewed by John

Change postDidChangeSelectionNotification and postDidChangeNotification tp
respondToChangedSelection and respondToChangedContents, respectively, to
account for the fact that we do work in these calls other than post a
notification.

  • khtml/khtml_part.cpp: (KHTMLPart::notifySelectionChanged): Use new names. (KHTMLPart::appliedEditing): Ditto. (KHTMLPart::unappliedEditing): Ditto. (KHTMLPart::reappliedEditing): Ditto.
  • kwq/KWQKHTMLPart.h: Change name of functions as described.
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::respondToChangedSelection): Ditto. (KWQKHTMLPart::respondToChangedContents): Ditto.
  • kwq/WebCoreBridge.h: Ditto.

WebKit:

Reviewed by John

Change postDidChangeSelectionNotification and postDidChangeNotification tp
respondToChangedSelection and respondToChangedContents, respectively, to
account for the fact that we do work in these calls other than post a
notification. The need to clear the typing style on both kinds of changes
inspired the name change.

Add in support to set and access typing style. We don't do anything with it yet
except store and return it. Using the typing style is still to come.

  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge respondToChangedContents]): Change name of functions as described. (-[WebBridge respondToChangedSelection]): Change name of functions as described.
  • WebView.subproj/WebView.m: (-[WebView dealloc:]): Dealloc typing style ivar. (-[WebView setTypingStyle:]): Change to set typing style ivar. (-[WebView typingStyle]): Return new typing style ivar.
  • WebView.subproj/WebViewPrivate.h: Add ivar for typing style.
2:51 PM Changeset in webkit [6686] by mjs
  • 1 edit
    1 add in trunk/WebCore

Fixed build.

  • ForwardingHeaders/misc/khtml_text_operations.h: Added.
2:37 PM Changeset in webkit [6685] by rjw
  • 10 edits
    6 adds in trunk/WebCore

Part 1 of the new <CANVAS> tag implementation. This patch
adds the boiler plate for the new element.

Reviewed by Dave.

  • ForwardingHeaders/html/html_canvasimpl.h: Added.
  • ForwardingHeaders/rendering/render_canvasimage.h: Added.
  • WebCore.pbproj/project.pbxproj:
  • khtml/ecma/kjs_html.cpp: (KJS::HTMLElement::classInfo): (KJS::HTMLElementFunction::tryCall):
  • khtml/ecma/kjs_html.h: (KJS::HTMLElement::):
  • khtml/ecma/kjs_html.lut.h: (KJS::):
  • khtml/html/dtd.cpp: (DOM::checkChild):
  • khtml/html/html_canvasimpl.cpp: Added. (HTMLCanvasElementImpl::HTMLCanvasElementImpl): (HTMLCanvasElementImpl::~HTMLCanvasElementImpl): (HTMLCanvasElementImpl::id): (HTMLCanvasElementImpl::mapToEntry): (HTMLCanvasElementImpl::parseHTMLAttribute): (HTMLCanvasElementImpl::createRenderer): (HTMLCanvasElementImpl::attach): (HTMLCanvasElementImpl::detach): (HTMLCanvasElementImpl::isURLAttribute):
  • khtml/html/html_canvasimpl.h: Added.
  • khtml/html/htmlparser.cpp: (KHTMLParser::getElement):
  • khtml/misc/htmltags.c: (hash_tag): (findTag):
  • khtml/misc/htmltags.h:
  • khtml/misc/htmltags.in:
  • khtml/rendering/render_canvasimage.cpp: Added. (RenderCanvasImage::RenderCanvasImage): (RenderCanvasImage::~RenderCanvasImage): (RenderCanvasImage::paint): (RenderCanvasImage::layout):
  • khtml/rendering/render_canvasimage.h: Added. (khtml::RenderCanvasImage::renderName): (khtml::RenderCanvasImage::element):
2:30 PM Changeset in webkit [6684] by cblu
  • 4 edits in trunk/WebCore

Fixed: <rdar://problem/3546418>: (when dragging text within an editable HTML doc, the selection should be moved not copied)

Reviewed by kocienda.

  • khtml/editing/htmlediting_impl.cpp: (khtml::MoveSelectionCommandImpl::doApply): implemented
  • khtml/khtml_part.cpp: (KHTMLPart::setDragCaret): make the old drag cursor rect dirty
  • khtml/khtml_part.h:
2:00 PM Changeset in webkit [6683] by mjs
  • 6 edits in trunk/WebCore

Reviewed by John.

  • fixed <rdar://problem/3657363>: (Editing: export innerText, innerHTML, outerText, outerHTML and setters to Objective-C)
  • partial fix for <rdar://problem/3656706>: (Fix innerText and setInnerText DOM extensions)
  • khtml/html/html_elementimpl.cpp: (HTMLElementImpl::innerText): Use plainText() to make the text, to match other browsers. (HTMLElementImpl::outerText): Extended comment.
  • khtml/misc/khtml_text_operations.h:
  • kwq/DOMExtensions.h:
  • kwq/DOMHTML.mm: (-[DOMHTMLElement outerText]): Added new ObjC wrapper for this. (-[DOMHTMLElement setOuterText:]): Ditto.
1:29 PM Changeset in webkit [6682] by kocienda
  • 3 edits in trunk/WebCore

Reviewed by Chris

Defer setting the selection to delete when none has been passed in to the
time that the command is run. This fixes a problem where a command nested
in a composite was not correctly picking up the right selection to begin
its work. Now, the command will correctly use the ending selection of
its parent when no selection has been passed in.

  • khtml/editing/htmlediting_impl.cpp: (khtml::DeleteCollapsibleWhitespaceCommandImpl::DeleteCollapsibleWhitespaceCommandImpl): (khtml::DeleteCollapsibleWhitespaceCommandImpl::doApply): (khtml::DeleteSelectionCommandImpl::DeleteSelectionCommandImpl): (khtml::DeleteSelectionCommandImpl::doApply):
  • khtml/editing/htmlediting_impl.h:
11:27 AM Changeset in webkit [6681] by kocienda
  • 3 edits in trunk/WebKit

Reviewed by John

Improve _bridgeForCurrentSelection so that it is frame-savvy.
Fixup setSelectedDOMRange:affinity: so that it uses the right bridge.

  • WebView.subproj/WebView.m: (-[WebView _bridgeForCurrentSelection]): Use _currentFrame not mainFrame. (-[WebView _currentFrame]): Moved to WebView (WebInternal) category so _bridgeForCurrentSelection can use it. (-[WebView setSelectedDOMRange:affinity:]): Derive the bridge to use from the range passed in; _bridgeForCurrentSelection is not the right way to get at the document for the range.
  • WebView.subproj/WebViewInternal.h: Add _currentFrame declaration.

May 24, 2004:

5:25 PM Changeset in webkit [6680] by darin
  • 2 edits in trunk/WebKit

Reviewed by Ken.

  • fixed <rdar://problem/3666022>: (REGRESSION: crash from infinite regress in -[WebFrameView(WebPrivate) scrollPageDown:])
  • WebView.subproj/WebView.m: (-[WebView _performResponderOperation:sender:]): Helper method that knows how to pass on operations to the responder chain, allowing us to implement operations that will get passed to views inside us as necessary. Moved a few methods to this, and soon will move even more. (-[WebView scrollLineDown:]): Use the above method. (-[WebView scrollLineUp:]): Ditto. (-[WebView scrollPageDown:]): Ditto. (-[WebView scrollPageUp:]): Ditto. (-[WebView copy:]): Ditto. (-[WebView cut:]): Ditto. (-[WebView paste:]): Ditto. (-[WebView delete:]): Ditto. (-[WebView insertBacktab:]): Ditto.
5:18 PM Changeset in webkit [6679] by mjs
  • 1 edit
    2 adds in trunk

Reviewed by Dave.

Added a new simple layout test for outerText.

  • layout-tests/fast/dom/outerText-expected.txt: Added.
  • layout-tests/fast/dom/outerText.html: Added.
3:53 PM Changeset in webkit [6678] by darin
  • 2 edits in trunk/WebCore

Reviewed by Vicki.

  • fixed <rdar://problem/3665813>: (iBench is crashing in TOT)
  • khtml/html/html_formimpl.cpp: (HTMLSelectElementImpl::HTMLSelectElementImpl): Initialize m_options to 0.
3:19 PM Changeset in webkit [6677] by rjw
  • 6 edits
    1 add in trunk/JavaScriptCore

Changed RuntimeArrayImp to inherit from ArrayInstanceImp and
fixed ClassInfo to correctly reflect inheritance. This is required
because of the runtime checks in JSC for arrays, i.e. in
the Function objects apply method.

Reviewed by Ken.

  • bindings/jni/jni_runtime.cpp: (JavaArray::convertJObjectToArray):
  • bindings/objc/objc_utility.mm: (KJS::Bindings::convertObjcValueToValue):
  • bindings/runtime_array.cpp: (RuntimeArrayImp::RuntimeArrayImp):
  • bindings/runtime_array.h:
  • bindings/testM.js: Added.
  • bindings/testbindings.mm: (+[MyFirstInterface webScriptNameForSelector:]): (-[MyFirstInterface logMessages:]): (-[MyFirstInterface logMessage:prefix:]): (-[MyFirstInterface callJSObject::]):
3:18 PM Changeset in webkit [6676] by kocienda
  • 7 edits in trunk/WebCore

Reviewed by Richard

  • khtml/xml/dom_selection.cpp: (DOM::Selection::toRange): Improved the code to return ranges that are convenient to use by WebKit code which needs to perform text-editor-like operations with ranges. Comments in the code describe this behavior. (DOM::Selection::nodeIsBeforeNode): Make this method const.
  • khtml/xml/dom_selection.h: Ditto.
2:55 PM Changeset in webkit [6675] by cblu
  • 21 edits in trunk

WebCore:

Improved editing via drag.

Reviewed by kocienda.

  • khtml/editing/htmlediting.cpp: Renamed PasteMarkupCommand to ReplaceSelectionCommand (khtml::ReplaceSelectionCommand::ReplaceSelectionCommand): (khtml::ReplaceSelectionCommand::~ReplaceSelectionCommand): (khtml::ReplaceSelectionCommand::impl): (khtml::MoveSelectionCommand::MoveSelectionCommand): (khtml::MoveSelectionCommand::~MoveSelectionCommand): (khtml::MoveSelectionCommand::impl):
  • khtml/editing/htmlediting.h: (khtml::):
  • khtml/editing/htmlediting_impl.cpp: (khtml::ReplaceSelectionCommandImpl::ReplaceSelectionCommandImpl): (khtml::ReplaceSelectionCommandImpl::~ReplaceSelectionCommandImpl): (khtml::ReplaceSelectionCommandImpl::commandID): (khtml::ReplaceSelectionCommandImpl::doApply): (khtml::MoveSelectionCommandImpl::MoveSelectionCommandImpl): new command (khtml::MoveSelectionCommandImpl::~MoveSelectionCommandImpl): (khtml::MoveSelectionCommandImpl::commandID): (khtml::MoveSelectionCommandImpl::doApply):
  • khtml/editing/htmlediting_impl.h:
  • khtml/khtml_part.cpp: (KHTMLPart::dragCaret): new (KHTMLPart::setDragCaret): new (KHTMLPart::notifyDragCaretChanged): new (KHTMLPart::paintDragCaret): new
  • khtml/khtml_part.h:
  • khtml/khtmlpart_p.h:
  • khtml/rendering/render_block.cpp: (khtml::RenderBlock::paintObject): paint the drag caret
  • kwq/DOM.mm: (+[DOMDocumentFragment _documentFragmentWithImpl:]): made internally available (-[DOMDocumentFragment _fragmentImpl]):
  • kwq/DOMInternal.h:
  • kwq/WebCoreBridge.h:
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge documentFragmentWithMarkupString:baseURLString:]): new (-[WebCoreBridge documentFragmentWithText:]): new (-[WebCoreBridge replaceSelectionWithFragment:selectReplacement:]): new (-[WebCoreBridge replaceSelectionWithNode:selectReplacement:]): renamed to take the selectReplacement BOOL (-[WebCoreBridge replaceSelectionWithMarkupString:baseURLString:selectReplacement:]): ditto (-[WebCoreBridge replaceSelectionWithText:selectReplacement:]): ditto (-[WebCoreBridge replaceSelectionWithNewline]): moved (-[WebCoreBridge setSelectionToDragCaret]): new (-[WebCoreBridge moveSelectionToDragCaret:]): new (-[WebCoreBridge moveDragCaretToPoint:]): set the drag caret, not the selection (-[WebCoreBridge removeDragCaret]): new

WebKit:

Improved editing via drag

Reviewed by kocienda.

  • WebView.subproj/WebDataSource.m: (-[WebDataSource _documentFragmentWithImageResource:]): made this method return a fragment instead of replace the selection so that the caller do other things with the fragment (-[WebDataSource _documentFragmentWithArchive:]): ditto (-[WebDataSource _replaceSelectionWithArchive:selectReplacement:]): call renamed methods
  • WebView.subproj/WebDataSourcePrivate.h:
  • WebView.subproj/WebDocumentInternal.h:
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _documentFragmentFromPasteboard:]): made this method return a fragment instead of replace the selection so that the caller do other things with the fragment (-[WebHTMLView _replaceSelectionWithPasteboard:selectReplacement:]): new (-[WebHTMLView paste:]): call _replaceSelectionWithPasteboard:selectReplacement: (-[WebHTMLView dragOperationForDraggingInfo:]): handle the case where the destination is editable, but the source is not (-[WebHTMLView draggingCancelledWithDraggingInfo:]): new, removes drag caret (-[WebHTMLView draggingUpdatedWithDraggingInfo:]): remove drag caret when we can't handle the drag (-[WebHTMLView concludeDragForDraggingInfo:]): instead of calling paste, move the selection when doing a move and replace the drag caret when doing a copy
  • WebView.subproj/WebHTMLViewPrivate.h:
  • WebView.subproj/WebView.m: (-[WebViewPrivate dealloc]): (-[WebView _setDraggingDocumentView:]): new (-[WebView _dragOperationForDraggingInfo:]): if the current dragging document view changes, tell the previous dragging document view that dragging cancelled (-[WebView draggingExited:]): new, tell the previous dragging document view that dragging cancelled (-[WebView concludeDragOperation:]): release the dragging document view (-[WebView replaceSelectionWithNode:]): pass the selectReplacement BOOL to the bridge (-[WebView replaceSelectionWithText:]): ditto (-[WebView replaceSelectionWithMarkupString:]): ditto (-[WebView replaceSelectionWithArchive:]): ditto (-[WebView pasteAsPlainText:]): ditto (-[WebView insertTab:]): ditto (-[WebView insertText:]): ditto
  • WebView.subproj/WebViewPrivate.h:
1:40 PM Changeset in webkit [6674] by kocienda
  • 4 edits in trunk/WebCore

Reviewed by John

Fixed some life-cycle issues with node iterators and detaching. Big deal is
to detach in DOMNodeIterator dealloc. Otherwise, NodeIterators created from
obj-c leak.

  • khtml/xml/dom2_traversalimpl.cpp: (DOM::NodeIteratorImpl::detach): Only detach if not yet detached.
  • khtml/xml/dom2_traversalimpl.h: (DOM::NodeIteratorImpl::setDetached): New convenience.
  • kwq/DOM.mm: (-[DOMNodeIterator dealloc]): Detach here, if not yet detached; fixes leak.
1:14 PM Changeset in webkit [6673] by kocienda
  • 2 edits in trunk/WebCore

Reviewed by Hyatt

  • khtml/css/css_computedstyle.cpp: (DOM::CSSComputedStyleDeclarationImpl::getPropertyValue): Fixed to return the property value, as it should, instead of the whole property, as it was doing before.
1:01 PM Changeset in webkit [6672] by sullivan
  • 3 edits in trunk/WebKit

WebKit:

Reviewed by Dave.

  • added private RSSFeedReferrer field to WebHistoryItem so RSS feeds in the back/forward list can remember what page (if any) they were initiated from.
  • History.subproj/WebHistoryItem.m: new RSSFeedReferrer ivar in private structure (-[WebHistoryItemPrivate dealloc]): release RSSFeedReferrer (-[WebHistoryItem copyWithZone:]): copy RSSFeedReferrer (-[WebHistoryItem RSSFeedReferrer]): return RSSFeedReferrer (-[WebHistoryItem setRSSFeedReferrer:]): set RSSFeedReferrer
  • History.subproj/WebHistoryItemPrivate.h: declare -RSSFeedReferrer and -setRSSFeedReferrer:

WebBrowser:

Reviewed by Dave.

More work on Emerson show/hide button. Now when the "Show RSS Feed" button
is clicked, we stash away the URL we are expecting to load. When (if) that URL
is loaded, we find the previous URL from the back list and store that in the
RSS feed's history item, so that if we revisit this RSS feed using the back/forward
list, we'll correctly display the "Hide RSS Feed" button. (If the RSS feed's URL
is visited some other way, it won't have a corresponding URL to "return" to, and
the "Hide RSS Feed" button will not appear.)

  • BrowserWebController.h: new ivar and getter/setter for pendingRSSFeedURLString
  • BrowserWebController.m: (-[BrowserWebView dealloc]): release _pendingRSSFeedURLString (-[BrowserWebView pendingRSSFeedURLString]): get _pendingRSSFeedURLString (-[BrowserWebView setPendingRSSFeedURLString:]): set _pendingRSSFeedURLString (-[BrowserWebView counterpartURLForRSS]): get RSS feed referrer from current back/forward list history item
  • BrowserWindowController.m: (-[BrowserWindowController windowShouldGoToURL:]): cleanup noticed in passing: use [[self currentWebView] goToURL:URL] instead of [[self browserDocument] goToURL:URL] because it seems clearer (and does the same thing) (-[BrowserWindowController performQuickSearch:]): ditto (-[BrowserWindowController updateRSSButton]): added comment (-[BrowserWindowController goToCounterpartURLForRSS]): when going to an RSS feed, call setPendingRSSFeedURLString so we will set the referrer on the history item in the upcoming commit
  • LocationChangeHandler.m: (-[LocationChangeHandler webView:didCommitLoadForFrame:]): if the incoming URL matches the pending RSS feed, set the RSS feed referrer on the history item for the incoming URL

May 23, 2004:

9:45 PM Changeset in webkit [6671] by darin
  • 4 edits in trunk/WebCore

Reviewed by Ken.

  • fixed <rdar://problem/3259919>: (Shift click should extend selection)
  • khtml/khtmlpart_p.h: Renamed m_textElement to m_selectionGranularity and m_mouseMovedSinceLastMousePress to m_beganSelectingText.
  • khtml/khtml_part.cpp: (KHTMLPart::handleMousePressEventDoubleClick): Set m_beganSelectingText if the double-click began selecting text. (KHTMLPart::handleMousePressEventTripleClick): Ditto. (KHTMLPart::handleMousePressEventSingleClick): Added code to extend selection if shift is down. (KHTMLPart::khtmlMousePressEvent): Remove code that sets the selection granularity to "by character". We only want to do that if we start selecting with a single click. Otherwise we want to leave the selection granularity alone. (KHTMLPart::khtmlMouseReleaseEvent): Change the code that clears the selection on a plain old click to check the m_beganSelectingText boolean so it won't run when you shift-click, for example.
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::khtmlMouseMoveEvent): Updated for m_textElement name change.
3:45 PM Changeset in webkit [6670] by darin
  • 35 edits
    4 adds
    12 deletes in trunk/WebCore

Reviewed by Ken.

  • went through things marked "unimplemented" or "not implemented" and removed or implemented as many as possible
  • kwq/DOM.mm: (-[DOMNode dispatchEvent:]): Implemented. Also moved DOMAbstractView and DOMDocumentView into DOMViews.mm.
  • kwq/DOM-CSS.mm: (-[DOMDocument getComputedStyle::]): Implemented.
  • kwq/DOMEventsInternal.h: Added.
  • kwq/DOMEvents.mm: (-[DOMEvent type]): Implemented. (-[DOMEvent target]): Implemented. (-[DOMEvent currentTarget]): Implemented. (-[DOMEvent eventPhase]): Implemented. (-[DOMEvent bubbles]): Implemented. (-[DOMEvent cancelable]): Implemented. (-[DOMEvent timeStamp]): Implemented. (-[DOMEvent stopPropagation]): Implemented. (-[DOMEvent preventDefault]): Implemented. (-[DOMEvent initEvent:::]): Implemented. (-[DOMEvent _eventImpl]): Added. (-[DOMEvent _initWithEventImpl:]): Added. (+[DOMEvent _eventWithImpl:]): Added. (-[DOMMouseEvent _mouseEventImpl]): Added. (-[DOMMouseEvent screenX]): Implemented. (-[DOMMouseEvent screenY]): Implemented. (-[DOMMouseEvent clientX]): Implemented. (-[DOMMouseEvent clientY]): Implemented. (-[DOMMouseEvent ctrlKey]): Implemented. (-[DOMMouseEvent shiftKey]): Implemented. (-[DOMMouseEvent altKey]): Implemented. (-[DOMMouseEvent metaKey]): Implemented. (-[DOMMouseEvent button]): Implemented. (-[DOMMouseEvent relatedTarget]): Implemented. (-[DOMMouseEvent initMouseEvent:::::::::::::::]): Implemented. (-[DOMMutationEvent _mutationEventImpl]): Added. (-[DOMMutationEvent relatedNode]): Implemented. (-[DOMMutationEvent prevValue]): Implemented. (-[DOMMutationEvent newValue]): Implemented. (-[DOMMutationEvent attrName]): Implemented. (-[DOMMutationEvent attrChange]): Implemented. (-[DOMMutationEvent initMutationEvent::::::::]): (-[DOMUIEvent _UIEventImpl]): Added. (-[DOMUIEvent view]): Implemented. (-[DOMUIEvent detail]): Implemented. (-[DOMUIEvent initUIEvent:::::]): Implemented. (-[DOMDocument createEvent:]): Implemented.
  • kwq/DOMHTMLInternal.h: Added.
  • kwq/DOMHTML.mm: (+[DOMHTMLOptionsCollection _optionsCollectionWithImpl:]): Added. (-[DOMHTMLOptionsCollection length]): Implemented. (-[DOMHTMLOptionsCollection setLength:]): Implemented. (-[DOMHTMLOptionsCollection item:]): Implemented. (-[DOMHTMLOptionsCollection namedItem:]): Implemented. (-[DOMHTMLSelectElement options]): Implemented.
  • kwq/DOMViews.h: Changed DOMDocumentView to be a category on DOMDocument rather than a separate class.
  • kwq/DOMViewsInternal.h: Added.
  • kwq/DOMViews.mm: Added. (-[DOMAbstractView document]): Implemnted. (-[DOMAbstractView _abstractViewImpl]): Added. (-[DOMAbstractView _initWithAbstractViewImpl:]): Added. (+[DOMAbstractView _abstractViewWithImpl:]): Added. (-[DOMDocument defaultView]): Implemented.
  • khtml/dom/dom2_views.h: Made AbstractView constructor public to allow creation in the bindings. Would not be necessary if the impl classes were used consistently.
  • khtml/html/html_formimpl.h: Added options() function to HTMLSelectElementImpl. Added HTMLOptionsCollectionImpl class.
  • khtml/html/html_formimpl.cpp: (HTMLSelectElementImpl::~HTMLSelectElementImpl): Added code to detach and deref the options collection. (HTMLSelectElementImpl::options): Create an options collection if needed. (HTMLOptionsCollectionImpl::length): Added. Not yet implemented. (HTMLOptionsCollectionImpl::setLength): Ditto. (HTMLOptionsCollectionImpl::item): Ditto. (HTMLOptionsCollectionImpl::namedItem): Ditto.
  • khtml/khtmlview.h: Move unused focusNextPrevChild virtual function inside !APPLE_CHANGES.
  • khtml/khtmlview.cpp: Put the tp, paintBuffer, and formCompletions fields entirely inside !APPLE_CHANGES. Also made QT_NO_TOOLTIP entirely disable the tooltip field. Also put focusNextPrevChild and formCompletionItems functions inside !APPLE_CHANGES.
  • khtml/rendering/render_text.h: Removed unused isFixedWidthFont member function.
  • khtml/rendering/render_text.cpp: Ditto.
  • kwq/KWQCursor.h: Removed unused pos member function.
  • kwq/KWQCursor.mm: Ditto.
  • kwq/KWQFontMetrics.h: Removed unused rightBearing and leftBearing member functions.
  • kwq/KWQFontMetrics.mm: Ditto.
  • kwq/KWQKComboBox.h: Removed KCompletionBase as a base class.
  • kwq/KWQKConfigBase.h: Removed unused readBoolEntry, writeEntry, and readListEntry member functions.
  • kwq/KWQKConfigBase.mm: Ditto. (KConfig::readEntry): Improved "not implemented" message to indicate which key is uinimplemented. (KConfig::readNumEntry): Ditto. (KConfig::readUnsignedNumEntry): Ditto.
  • kwq/KWQKLineEdit.h: Removed everything, since all the KLineEdit stuff was unused. Changed KLineEdit to just be a typedef for QLineEdit.
  • kwq/KWQSlot.mm: Removed slotAutoScroll. (KWQSlot::KWQSlot): And from here. (KWQSlot::call): And from here.
  • kwq/KWQTextStream.h: Removed unused QTextOStream and QTextIStream.
  • kwq/KWQTextStream.mm: Removed unused QTextIStream function. Also made buffer sizes larger so we don't have any problems on 64-bit systems. 10 bytes might not be long enough to sprintf an integer or a long or a pointer, but 100 bytes surely will.
  • kwq/KWQWidget.h: Removed unused focusNextPrevChild.
  • kwq/KWQWidget.mm: Ditto.
  • WebCore.pbproj/project.pbxproj: Removed some files, added others.
  • ForwardingHeaders/kcompletionbox.h: Emptied out, no KWQKCompletionBox.h any more.
  • ForwardingHeaders/kiconloader.h: Emptied out, no KWQKIconLoader.h any more.
  • ForwardingHeaders/kmimetype.h: Emptied out, no KWQKMimeType.h any more.
  • ForwardingHeaders/ksimpleconfig.h: Emptied out, no KWQKSimpleConfig.h any more.
  • ForwardingHeaders/qfontinfo.h: Emptied out, no KWQFontInfo.h any more.
  • ForwardingHeaders/qtooltip.h: Replaced with define of QT_NO_TOOLTIP, no KWQToolTip.h any more.
  • kwq/KWQCompletion.h: Removed.
  • kwq/KWQCompletion.mm: Removed.
  • kwq/KWQFontInfo.h: Removed.
  • kwq/KWQFontInfo.mm: Removed.
  • kwq/KWQKCompletionBox.h: Removed.
  • kwq/KWQKIconLoader.h: Removed.
  • kwq/KWQKIconLoader.mm: Removed.
  • kwq/KWQKMimeType.h: Removed.
  • kwq/KWQKMimeType.mm: Removed.
  • kwq/KWQKSimpleConfig.h: Removed.
  • kwq/KWQKSimpleConfig.mm: Removed.
  • kwq/KWQToolTip.h: Removed.
3:34 PM Changeset in webkit [6669] by darin
  • 6 edits in trunk/WebKit

Reviewed by Ken.

  • implemented some of the trivial WebView editing operations; some had bug reports, to wit:
  • fixed <rdar://problem/3655342>: (Editing: -centerSelectionInVisibleArea: method unimplemented (WebKit editing API))
  • fixed <rdar://problem/3655398>: (Editing: -deleteWordBackward: method unimplemented (WebKit editing API))
  • fixed <rdar://problem/3655397>: (Editing: -deleteWordForward: method unimplemented (WebKit editing API))
  • fixed <rdar://problem/3655387>: (Editing: -insertBacktab: method unimplemented (WebKit editing API))
  • fixed <rdar://problem/3655386>: (Editing: -insertTab: method unimplemented (WebKit editing API))
  • fixed <rdar://problem/3655351>: (Editing: -moveWordBackward: method unimplemented (WebKit editing API))
  • fixed <rdar://problem/3655352>: (Editing: -moveWordBackwardAndModifySelection: method unimplemented (WebKit editing API))
  • fixed <rdar://problem/3655353>: (Editing: -moveWordForward: method unimplemented (WebKit editing API))
  • fixed <rdar://problem/3655354>: (Editing: -moveWordForwardAndModifySelection: method unimplemented (WebKit editing API))
  • fixed <rdar://problem/3655374>: (Editing: -pasteAsPlainText: method unimplemented (WebKit editing API))
  • fixed <rdar://problem/3655362>: (Editing: -scrollLineDown: method unimplemented (WebKit editing API))
  • fixed <rdar://problem/3655363>: (Editing: -scrollLineUp: method unimplemented (WebKit editing API))
  • WebView.subproj/WebView.m: (-[WebView centerSelectionInVisibleArea:]): Implemented. The implementation isn't perfect, but it's hooked up. It simply calls ensureCaretVisible for now. (-[WebView moveBackward:]): Implemented. The WebCore API already has a way to specify backward as opposed to left. A separate issue is the fact that these operations don't have bi-di-savvy implementations, but now this method is hooked up and will work at least for left-to-right text. (-[WebView moveBackwardAndModifySelection:]): Ditto. (-[WebView moveForward:]): Ditto. (-[WebView moveForwardAndModifySelection:]): Ditto. (-[WebView moveWordBackward:]): Ditto. (-[WebView moveWordBackwardAndModifySelection:]): Ditto. (-[WebView moveWordForward:]): Ditto. (-[WebView moveWordForwardAndModifySelection:]): Ditto. (-[WebView scrollLineDown:]): Forward to WebFrameView. (-[WebView scrollLineUp:]): Ditto. (-[WebView scrollPageDown:]): Ditto. (-[WebView scrollPageUp:]): Ditto. (-[WebView delete:]): Implemented. Follows pattern used in cut, copy, and paste. (-[WebView pasteAsPlainText:]): Implemented. Calls delegate, then replaceSelectionWithText: on the bridge. (-[WebView insertTab:]): Implemented. Calls delegate, then replaceSelectionWithText: on the bridge. (-[WebView insertBacktab:]): Implemented. Does nothing. If we ever change so that you can use a WebView as a field editor, then we might have to add code here. (-[WebView deleteWordForward:]): Implement by calling moveForwardAndModifySelection: and then delete:. Might not be a perfect implementation in the presence of delegates who refuse to delete because it will change the selection even if the delete is disallowed. (-[WebView deleteWordBackward:]): Implement by calling moveBackwardAndModifySelection: and then delete:. Same issue about about delegates as deleteWordForward:.
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _pasteFromPasteboard:]): Added a FIXME.
  • DOM.subproj/DOMViews.h: Updated from recent change to WebCore.

May 22, 2004:

12:18 AM Changeset in webkit [6668] by darin
  • 2 edits in trunk/JavaScriptCore

Reviewed by Maciej.

  • fixed <rdar://problem/3664260>: (JS needs to listen to timezone change notifications)
  • kjs/date_object.cpp: (CopyLocalTimeZone): As per Chris Kane and Jordan Hubbard, use <notify.h> with a hardcoded string of "com.apple.system.timezone", and do CFTimeZoneResetSystem since CoreFoundation doesn't do this itself. Turns out this affects the default time zone as long as it hasn't been set explicitly.

May 21, 2004:

11:53 PM Changeset in webkit [6667] by darin
  • 6 edits in trunk/WebCore

Reviewed by Maciej.

  • fixed <rdar://problem/3663659>: (result of toString mistakenly includes all subsequent sibling content)
  • khtml/xml/dom2_rangeimpl.h: Added private startNode() and pastEndNode() functions.
  • khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::toString): Rewrote to use startNode(), pastEndNode(), and traverseNextNode(). The old code here was wrong, and it was easier to rewrite than fix. (DOM::RangeImpl::checkDeleteExtract): Extracted the logic to compute the start node and the past-end node into separate functions. (DOM::RangeImpl::startNode): Added. Started with code extracted from checkDeleteExtract, but then also fixed bugs by using the new traverseNextSibling. The old code handled cases where the offset was past the last child in a container incorrectly. (DOM::RangeImpl::pastEndNode): Added. Started with code extracted from checkDeleteExtract, but then also fixed bugs by using the new traverseNextSibling. The old code hanlded cases where the offset was past the last child in a container incorrectly, and also iterated one node too few in cases where the end contaier was a text node.
  • khtml/xml/dom2_traversalimpl.h: Removed a bunch of unused and unneeded member functions.
  • khtml/xml/dom_nodeimpl.h: Added traverseNextSibling.
  • khtml/xml/dom_nodeimpl.cpp: (NodeImpl::traverseNextNode): Reformatted the code a little bit. (NodeImpl::traverseNextSibling): Added. Like traverseNextNode except it starts after the node's children instead of starting at the beginning of the first child.
6:50 PM Changeset in webkit [6666] by mjs
  • 8 edits in trunk/WebCore

Reviewed by Trey.

<rdar://problem/3656722>: Implement outerText and setOuterText DOM extensions

  • khtml/html/html_elementimpl.cpp: (HTMLElementImpl::outerText): Return same value as innerText(). (HTMLElementImpl::setInnerText): Fix comment. (HTMLElementImpl::setOuterText): Replace node with text, merge neighboring text nodes.
  • khtml/html/html_elementimpl.h: Prototype new methods.
  • khtml/dom/html_element.cpp: (HTMLElement::outerText): Hook up to impl. (HTMLElement::setOuterText): Ditto.
  • khtml/dom/html_element.h: Prototype new methods.
  • khtml/ecma/kjs_html.cpp: (KJS::HTMLElement::getValueProperty): Glue up outerText. (KJS::HTMLElement::putValue): Ditto.
  • khtml/ecma/kjs_html.h: Added new enum value.
  • khtml/ecma/kjs_html.lut.h: (KJS::): Regenerated.
3:27 PM Changeset in webkit [6665] by rjw
  • 8 edits in trunk

WebCore:

Removed _bindObject:forFrame: SPI.

Reviewed by Chris.

  • kwq/KWQKHTMLPart.h:
  • kwq/KWQKHTMLPart.mm:
  • kwq/WebCoreBridge.h:
  • kwq/WebCoreBridge.mm:

WebKit:

Removed _bindObject:forFrame: SPI.

Reviewed by Chris.

  • WebView.subproj/WebView.m:
  • WebView.subproj/WebViewPrivate.h:
3:17 PM Changeset in webkit [6664] by hyatt
  • 3 edits in trunk/WebCore

Fix for 3663644, repaints don't occur when the .innerHTML of a positioned element is changed.

Reviewed by john

  • khtml/rendering/bidi.cpp: (khtml::RenderBlock::layoutInlineChildren):
  • khtml/rendering/render_layer.h: (khtml::RenderLayer::repaintRect):
11:59 AM Changeset in webkit [6663] by vicki
  • 3 edits in trunk

change version number to '142u'. the tree is open.

11:54 AM Changeset in webkit [6662]
  • 3 copies in tags/Safari-141

This commit was manufactured by cvs2svn to create tag 'Safari-141'.

11:54 AM Changeset in webkit [6661] by vicki
  • 6 edits in trunk

Safari-141 stamp

10:22 AM Changeset in webkit [6660] by darin
  • 2 edits in trunk/WebCore

Reviewed by Ken and Chris.

  • fixed <rdar://problem/3656948>: (markup strings that contain <html> and <body> elements don't work, producing nothing)
  • khtml/html/html_elementimpl.cpp: (HTMLElementImpl::createContextualFragment): Changed things around so that nodes are removed from their parent node before
9:42 AM Changeset in webkit [6659] by darin
  • 2 edits in trunk/WebCore

Reviewed by Ken.

  • fixed part of <rdar://problem/3656948>: (HTML Editing: -[WebView replaceSelectionWithMarkupString:] doesn't seem to work)
  • khtml/editing/htmlediting_impl.cpp: (khtml::PasteMarkupCommandImpl::doApply): Changed code to handle case where contextual fragment parses to nothing without crashing.
9:41 AM Changeset in webkit [6658] by darin
  • 3 edits in trunk/WebKit

Reviewed by Ken and Chris.

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _pasteFromPasteboard:]): Call replaceSelectionWithText: instead of replaceSelectionWithMarkupString: when pasting plain text.
  • WebView.subproj/WebDataSource.m: (-[WebDataSource _replaceSelectionWithMarkupString:baseURL:]): Remove bogus check for empty markup. There's nothing wrong with an empty string, and no reason that replacing with empty string should be a no-op instead of a delete.
8:44 AM Changeset in webkit [6657] by darin
  • 2 edits in trunk/WebCore

Reviewed by Ken.

  • kwq/DOM-CSS.mm: Change DOMCSSStyleDeclaration methods to use strings with dash-separators in them rather than interCaps.
1:34 AM Changeset in webkit [6656] by darin
  • 3 edits in trunk/WebCore

Reviewed by Maciej.

  • fixed <rdar://problem/3090663>: (scroll to top of page when anchor is "#top" or "#")
  • khtml/khtml_part.cpp: (KHTMLPart::gotoAnchor): Detect anchor by checking for non-null, not non-empty, because an empty anchor is not the same as no anchor. (KHTMLPart::gotoAnchor): Add special case for anchors named "" and "top" (case insensitive), to scroll to the top left of the frame to match what WinIE and Mozilla do. (KHTMLPart::checkCompleted): Check for non-null here too for consistency.
  • kwq/KWQKURL.mm: (KURL::ref): Change check so that we return empty, not null, if there's an empty ref, as opposed to no ref. (KURL::hasRef): Return true if there's an empty ref, as opposed to no ref. (KURL::parse): Preserve an empty fragment when parsing.

May 20, 2004:

11:52 PM Changeset in webkit [6655] by darin
  • 4 edits in trunk/WebCore

Reviewed by Maciej.

  • fixed <rdar://problem/3575385>: (multiple radio buttons checked when arriving at sites (poll at www.1170kfaq.com, many others))
  • khtml/html/html_formimpl.cpp: (HTMLInputElementImpl::parseHTMLAttribute): Use setChecked to set the default value if we are still in "use default checked" mode. That way, other radio buttons will be unchecked properly and the proper changed methods will be dispatched. (HTMLInputElementImpl::reset): Ditto.
  • khtml/html/html_formimpl.h: (DOM::HTMLInputElementImpl::checked): Changed to just return m_checked. The m_useDefaultChecked flag is now only really looked at when you parse a checked attribute; that's because m_checked and m_defaultChecked are kept equal as long as m_useDefaultChecked is true.
  • khtml/xml/dom_nodeimpl.h: Removed an unnecessary virtual, to make code a little smaller and faster.
5:51 PM Changeset in webkit [6654] by darin
  • 11 edits in trunk

WebCore:

Reviewed by Chris.

  • fixed <rdar://problem/3662383>: (REGRESSION: drag slide-back sometimes causes link to load)
  • fixed <rdar://problem/3662556>: (REGRESSION: letting up mouse while dragging over link activates the link)
  • khtml/khtmlview.h: Added invalidateClick.
  • khtml/khtmlview.cpp: (KHTMLView::invalidateClick): Added. Sets clickCount to 0.
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::matchLabelsAgainstElement): Changed a string replace to a character replace for slightly faster code and smaller code size. (KWQKHTMLPart::khtmlMouseMoveEvent): Call invalidateClick at the appropriate times. To do this correctly, had to add a boolean result to handleMouseDragged: so I can tell if a drag started or not (due to hysteresis). (KWQKHTMLPart::attributedString): Changed a string append to a character append for slightly faster code and smaller code size.
  • kwq/WebCoreBridge.h: Added BOOL result to handleMouseDragged:.

Reviewed by Dave.

  • handle rules with empty bodies properly
  • khtml/css/parser.y: Remove bogus check for empty body that prevents the rule from being created.
  • khtml/css/parser.cpp: Regenerated.

WebKit:

Reviewed by Chris.

  • fixed <rdar://problem/3662383>: (REGRESSION: drag slide-back sometimes causes link to load)
  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge handleMouseDragged:]): Added BOOL result to handleMouseDragged:.
  • WebView.subproj/WebHTMLViewPrivate.h: Added BOOL result to _handleMouseDragged:.
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _handleMouseDragged:]): Added BOOL result, returning YES when the drag started, and no when the hysteresis has not yet been overcome.
5:07 PM Changeset in webkit [6653] by hyatt
  • 3 edits in trunk/WebCore

Revise the patch for incorrect caret positions when brs get deleted. It can be even simpler.

Reviewed by kocienda

  • khtml/rendering/render_flow.cpp: (RenderFlow::dirtyLinesFromChangedChild):
  • khtml/rendering/render_text.cpp: (RenderText::detach):
5:00 PM Changeset in webkit [6652] by hyatt
  • 5 edits in trunk/WebCore

Fix for 3629816, caret in wrong position when deleting <br>s on lines by themselves or when moving <br>s
on lines by themselves.

Reviewed by kocienda

  • khtml/rendering/render_box.cpp: (RenderBox::detach):
  • khtml/rendering/render_br.cpp: (RenderBR::setPos):
  • khtml/rendering/render_br.h:
  • khtml/rendering/render_flow.cpp: (RenderFlow::dirtyLinesFromChangedChild):
3:52 PM Changeset in webkit [6651] by kocienda
  • 13 edits in trunk

WebCore:

Reviewed by Hyatt

Provide the methods to glue the WebView's editing delegate so that these methods work:

<rdar://problem/3655316>: "Editing:�webViewShouldBeginEditing:inDOMRange:�ethod�nimplemented�WebKit�diting�PI)"
<rdar://problem/3655317>: "Editing:�webViewShouldEndEditing:inDOMRange:�ethod�nimplemented�WebKit�diting�PI)"

While I was in the neighborhood and working on understanding focus shifts, I fixed this bug as well:

<rdar://problem/3645154>: "contentEditable div receives focus and blur twice when focus changes to new element"

  • khtml/khtml_part.cpp: (KHTMLPart::invalidateSelection): Do not move focus in this function. That is just a mistake. This function is all about redraw. (KHTMLPart::selectionLayoutChanged): New function. Factor out the redraw parts of notifySelectionChanged so that invalidateSelection can call it. (KHTMLPart::notifySelectionChanged): Call selectionLayoutChanged now that the redraw parts have been factored out. (KHTMLPart::shouldBeginEditing): New function that calls through to the KWQKHTMLPart in an APPLE_CHANGES block. This is part of the code path that will eventually The WebView's delegate to ask the shouldBeginEditing question. (KHTMLPart::shouldEndEditing): Ditto, except the question is about shouldEndEditing.
  • khtml/khtml_part.h:
  • khtml/khtmlview.cpp: (KHTMLView::dispatchMouseEvent): Now looks at the boolean value returned from DocumentImpl::setFocusNode (described below). If the focus shift was blocked, swallow the mouse event.
  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::relinquishesEditingFocus): Part of the WebView's delegation call chain described above. (DocumentImpl::acceptsEditingFocus): Ditto. (DocumentImpl::setFocusNode): Many improvements. Now handles WebView delegation and switching focus in the handlers called as a result of the DOM events that this function calls. Also now returns a boolean to say whether the attempt to set focus was blocked by a handler or by the WebView's delegate.
  • khtml/xml/dom_docimpl.h:
  • kwq/KWQKHTMLPart.h:
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::shouldBeginEditing): More WebView's delegation glue. (KWQKHTMLPart::shouldEndEditing): Ditto.
  • kwq/WebCoreBridge.h:

WebKit:

Reviewed by Hyatt

Provide the methods to glue the WebView's editing delegate so that these methods work:

<rdar://problem/3655316>: "Editing:�webViewShouldBeginEditing:inDOMRange:�ethod�nimplemented�WebKit�diting�PI)"
<rdar://problem/3655317>: "Editing:�webViewShouldEndEditing:inDOMRange:�ethod�nimplemented�WebKit�diting�PI)"

  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge shouldBeginEditing:]): New method used to glue delegate to focus shifts. (-[WebBridge shouldEndEditing:]): Ditto.
  • WebView.subproj/WebView.m: (-[WebView _shouldBeginEditingInDOMRange:]): Ditto. (-[WebView _shouldEndEditingInDOMRange:]): Ditto.
  • WebView.subproj/WebViewPrivate.h: Ditto.
3:13 PM Changeset in webkit [6650] by rjw
  • 12 edits in trunk

WebKit:

Fixed typo in header comment.

Reviewed by Ken.

  • Plugins.subproj/WebScriptObject.h:

WebCore:

Implemented WebScriptObject/DOM wrapper voodoo. DOM wrappers
can now be referenced like any other WebScriptObject, meaning
you can do JS operations on them.

All added implementation of finalizeForWebScript.

Reviewed by Ken.

  • kwq/DOM.mm: (-[DOMObject _init]):
  • kwq/DOMInternal.mm: (-[WebScriptObject _init]): (-[WebScriptObject _initializeScriptDOMNodeImp]):
  • kwq/KWQKHTMLPart.h:
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::KWQKHTMLPart): (KWQKHTMLPart::bindingRootObject): (KWQKHTMLPart::windowScriptObject):

JavaScriptCore:

Implemented WebScriptObject/DOM wrapper voodoo. DOM wrappers
can now be referenced like any other WebScriptObject, meaning
you can do JS operations on them.

All added implementation of finalizeForWebScript.

Reviewed by Ken.

  • bindings/objc/WebScriptObject.h:
  • bindings/objc/WebScriptObject.mm: (-[WebScriptObject _initializeWithObjectImp:KJS::root:Bindings::]): (-[WebScriptObject _initWithObjectImp:KJS::root:Bindings::]): (-[WebScriptObject KJS::]): (-[WebScriptObject dealloc]): (-[WebScriptObject callWebScriptMethod:withArguments:]): (-[WebScriptObject evaluateWebScript:]): (-[WebScriptObject setValue:forKey:]): (-[WebScriptObject valueForKey:]): (-[WebScriptObject stringRepresentation]):
  • bindings/objc/WebScriptObjectPrivate.h:
  • bindings/objc/objc_instance.mm: (ObjcInstance::~ObjcInstance):

WebBrowser:

Added some debugging for WebScriptObject, disabled by default.

Reviewed by Ken.

  • LocationChangeHandler.m: (-[LocationChangeHandler webView:windowScriptObjectAvailable:]): (-[LocationChangeHandler webView:locationChangeDone:forDataSource:]):
1:48 PM Changeset in webkit [6649]
  • 60 copies
    2 deletes in tags/WebCore-125~6~8

This commit was manufactured by cvs2svn to create tag
'WebCore-125~6~8'.

1:48 PM Changeset in webkit [6648] by mjs
  • 6 edits in branches/Safari-1-2-branch/WebCore

Even more Epiphhany changes.

2004-05-19 David Hyatt <hyatt@apple.com>

Implement support for notification posting to accessibility clients for layouts and loads.

  • khtml/khtmlview.cpp: (KHTMLView::layout): khtml/xml/dom_docimpl.cpp: (DocumentImpl::close):
  • kwq/KWQAccObjectCache.h: (KWQAccObjectCache::enableAccessibility): (KWQAccObjectCache::accessibilityEnabled):
  • kwq/KWQAccObjectCache.mm: (KWQAccObjectCache::accObject): (KWQAccObjectCache::setAccObject): (KWQAccObjectCache::removeAccObject): (KWQAccObjectCache::detach): (KWQAccObjectCache::childrenChanged): (KWQAccObjectCache::postNotification):
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge accessibilityTree]):
8:09 AM Changeset in webkit [6647] by darin
  • 12 edits in trunk/WebCore

Reviewed by Ken.

  • fixed <rdar://problem/3661918>: "repro nil-deref in RenderImage::paint (www.codepoetry.net)"
  • khtml/rendering/render_image.cpp: (RenderImage::paint): Check renderer pointer to see if it's nil before dereferencing it.
  • fixed <rdar://problem/3658455>: "readFromData:options:documentAttributes: crashes when passed page without a body (in WebKit mode)"
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::bodyBackgroundColor): Check renderer pointer to see if it's nil before dereferencing it.
  • fixed <rdar://problem/2948112>: "implement addRule for JavaScript for style sheets"
  • khtml/dom/css_stylesheet.h: Added addRule.
  • khtml/dom/css_stylesheet.cpp: (CSSStyleSheet::addRule): Added.
  • khtml/css/css_stylesheetimpl.h: Added addRule.
  • khtml/css/css_stylesheetimpl.cpp: (CSSStyleSheetImpl::addRule): Added an implementation based on the Microsoft documentation. An index of -1 means "at the end of the list".
  • khtml/dom/dom_string.h: Changed the string-append operator to be a non-member function so it works even if the left side has to undergo type conversion.
  • khtml/dom/dom_string.cpp: (DOM::operator+): Changed implementation to match above. Also changed to not use anything private or protected so it doesn't have to be a friend.
  • khtml/ecma/kjs_css.h: Added addRule to the list of functions for CSS style sheets.
  • khtml/ecma/kjs_css.cpp: (DOMCSSStyleSheetProtoFunc::tryCall): Add support for addRule, based on the Microsoft documentation; always returns -1. Also removed unused string conversions.
  • khtml/ecma/kjs_css.lut.h: Regenerated.
Note: See TracTimeline for information about the timeline view.