Timeline



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