Timeline



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
Note: See TracTimeline for information about the timeline view.