Timeline
Jun 2, 2004:
- 11:57 PM Changeset in webkit [6750] by
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 8 edits1 add3 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
-
- 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:
- Rename EditIterator class to PositionIterator. This class needs to run code for selections in non-editable content, so the name change is appropriate.
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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