Timeline



Sep 23, 2004:

7:20 PM Changeset in webkit [7664] by sullivan
  • 2 edits in trunk/WebCore

Reviewed by Maciej.

  • fixed <rdar://problem/3551850> hang caused by interpreting bad javascript guarded by a deliberately bogus "language" attribute (www.riibe.com)
  • khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::parseTag): Check for language attribute of <script> tag in a way that matches WinIE. Previously we were far too permissive.
5:27 PM Changeset in webkit [7663] by hyatt
  • 2 edits in trunk/WebCore

Fix for 3685234 and 3548444, the x-offset for frame borders was off by 1 pixel, causing mojibake to occur when
repainting happened.

  • khtml/rendering/render_canvas.cpp: (RenderCanvas::repaintViewRectangle):
5:17 PM Changeset in webkit [7662] by rjw
  • 12 edits in trunk/WebCore

Fixed <rdar://problem/3813271> dashboard-region-circle and dashboard-region-rectangle should be collapsed into dashboard-region
Fixed <rdar://problem/3813289> dashboard regions need to correctly account for overflow/scrolling

Reviewed by Chris.

  • khtml/css/css_valueimpl.cpp: (CSSPrimitiveValueImpl::cssText):
  • khtml/css/css_valueimpl.h:
  • khtml/css/cssparser.cpp: (CSSParser::parseValue): (skipCommaInDashboardRegion): (CSSParser::parseDashboardRegions):
  • khtml/khtmlview.cpp: (KHTMLView::layout): (KHTMLView::updateDashboardRegions):
  • khtml/khtmlview.h:
  • khtml/rendering/render_layer.cpp: (RenderLayer::scrollToOffset):
  • khtml/rendering/render_object.cpp: (RenderObject::addDashboardRegions):
  • khtml/rendering/render_object.h:
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::dashboardRegionsChanged):
  • kwq/WebDashboardRegion.h:
  • kwq/WebDashboardRegion.m: (-[WebDashboardRegion initWithRect:clip:type:]): (-[WebDashboardRegion dashboardRegionClip]): (-[WebDashboardRegion description]):
5:05 PM Changeset in webkit [7661] by kocienda
  • 2 edits in trunk/WebCore

Reviewed by Richard

  • khtml/xml/dom_position.cpp: (DOM::Position::inRenderedContent): Make the "empty block" check the same as the one use in visible position. This fixes a recent regression which broke up and down arrowing between blocks with an empty block in between.
2:25 PM Changeset in webkit [7660] by mjs
  • 4 edits in trunk

WebCore:

Reviewed by Darin.

<rdar://problem/3685235> REGRESSION (Mail): links are not properly editable

  • khtml/html/html_inlineimpl.cpp: (HTMLAnchorElementImpl::isFocusable): If this element is editable, then follow the normal focus rules so the link does not swallow focus when you arrow key or drag-select into it.

WebKit:

Reviewed by Darin.

<rdar://problem/3685235> REGRESSION (Mail): links are not properly editable

  • WebView.subproj/WebDefaultUIDelegate.m: By default, don't allow link dragging if the element under the mouse pointer is editable. This way, you can drag-select starting inside a link.
10:56 AM Changeset in webkit [7659] by sullivan
  • 3 edits in trunk/WebKit

WebKit:

Reviewed by Chris.

  • WebKit part of fix for <rdar://problem/3415264> Default encoding should initially be set to current system encoding
  • WebView.subproj/WebPreferences.m: (-[WebPreferences _setInitialDefaultTextEncodingToSystemEncoding]): new SPI that sets the initial value of the default text encoding to be the system encoding, with a special-case conversion of MacRoman->Latin1. This is not done automatically for WebKit clients for fear of breaking them.
  • WebView.subproj/WebPreferencesPrivate.h: declare new SPI

WebBrowser:

Reviewed by Chris.

  • WebBrowser part of fix for <rdar://problem/3415264> Default encoding should initially be set to current system encoding
  • AppController.m: (-[AppController applicationDidFinishLaunching:]): call new SPI -[WebPreferences _setInitialDefaultTextEncodingToSystemEncoding]
10:47 AM Changeset in webkit [7658] by hyatt
  • 1 edit in trunk/WebCore/khtml/rendering/render_block.cpp

* empty log message *

10:29 AM Changeset in webkit [7657] by darin
  • 1 edit
    2 adds in trunk
  • added test for the DOM::Range bug fixed recently
  • layout-tests/fast/dom/clone-contents-0-end-offset-expected.txt: Added.
  • layout-tests/fast/dom/clone-contents-0-end-offset.html: Added.
10:22 AM Changeset in webkit [7656] by hyatt
  • 4 edits in trunk/WebCore

Fix for hitlist bug, crash when deleting.

Also fix repaint bug when inlines are inside overflow:auto/scroll regions.

Reviewed by kocienda

  • khtml/editing/htmlediting_impl.cpp: (khtml::DeleteSelectionCommandImpl::DeleteSelectionCommandImpl): (khtml::DeleteSelectionCommandImpl::doApply):
  • khtml/rendering/render_block.cpp: (khtml::RenderBlock::removeChild):
  • khtml/rendering/render_flow.cpp: (RenderFlow::getAbsoluteRepaintRect):
9:52 AM Changeset in webkit [7655] by sullivan
  • 2 edits in trunk/WebCore

Reviewed by Ken.

  • fixed <rdar://problem/3527840> reproducible crash at johnbrown.v32.qikker.com (nil-deref in NodeImpl::dispatchEvent)
  • khtml/xml/dom_nodeimpl.cpp: (NodeImpl::dispatchEvent): guard against document or document->document() being nil
9:10 AM Changeset in webkit [7654] by darin
  • 6 edits
    2 adds in trunk/WebCore

Reviewed by Ken.

  • added new VisibleRange class; not used yet
  • WebCore.pbproj/project.pbxproj: Added visible_range.h and visible_range.cpp.
  • khtml/editing/visible_range.cpp: Added.
  • khtml/editing/visible_range.h: Added.
  • tweaks
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): Use switch statement instead of if statement so we get a warning if we ever add a new granularity.
  • khtml/editing/selection.h: khtml, not DOM, namespace
  • khtml/editing/visible_position.h: Ditto.
9:08 AM Changeset in webkit [7653] by darin
  • 2 edits in trunk/WebCore

Reviewed by Ken.

  • fixed <rdar://problem/3812758> 8S266: attaching mutation events to an editable div crashes Safari
  • khtml/xml/dom_nodeimpl.cpp: (NodeImpl::dispatchEvent): Added ref/deref so this works if passed a "floating" event object. (NodeImpl::dispatchGenericEvent): Ditto. (NodeImpl::dispatchHTMLEvent): Removed unneeded ref/deref now that dispatchEvent takes care of it. (NodeImpl::dispatchMouseEvent): Ditto. (NodeImpl::dispatchUIEvent): Ditto.
9:05 AM Changeset in webkit [7652] by darin
  • 2 edits in trunk/WebCore

Reviewed by Ken.

  • fixed some minor mistakes discovered by code inspection
  • khtml/khtml_part.cpp: (KHTMLPart::setSelection): Changed to not grab focus if clearing the selection. Grabbing focus when we get the selection is also probably something that should be conditional, since you can use a WebView in a mode where it can have selection even when not first responder, ala NSTextView. (KHTMLPart::setCaretVisible): Changed to not grab focus if making the caret invisible. Not sure if it's ever important to grab focus when making the caret visible, but by code inspection it seemed that was unlikely to do harm.
9:03 AM Changeset in webkit [7651] by darin
  • 2 edits in trunk/WebCore

Reviewed by Ken.

  • fixed <rdar://problem/3790595> "ERROR: unimplemented propertyID: 97" logged to console when copying selection (table-layout)
  • khtml/css/css_computedstyle.cpp: (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): Added CSS_PROP_TABLE_LAYOUT case.
9:02 AM Changeset in webkit [7650] by darin
  • 3 edits in trunk/WebCore

Reviewed by Ken.

  • fixed <rdar://problem/3809600> REGRESSION: text in search field doesn't disappear when clicked at developer.apple.com

Reversing the order of scope caused us to get and set too many properties in the window
object; in the case of this bug setting value ended up setting a window.value property
instead of the value of the <input> element.

  • khtml/ecma/kjs_window.h: Removed bogus hasProperty function that always returns true. Testing shows that MacIE and Gecko match our behavior when we remove this, despite the "need this to match IE behavior" comment in the file, which I believe is incorrect.
  • khtml/ecma/kjs_window.cpp: Ditto.
8:58 AM Changeset in webkit [7649] by darin
  • 2 edits in trunk/WebCore

Reviewed by Ken.

  • fixed <rdar://problem/3812471> -[DOMRange cloneContents] clones too much in some cases where endOffset is 0
  • khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::processContents): Added some nil checks to prevent this function from crashing if offsets are greater than the number of child nodes. Added a special case for offset 0 in one case that has a loop that won't work correctly for that case.
8:50 AM Changeset in webkit [7648] by darin
  • 2 edits in trunk/WebCore

Reviewed by Ken.

  • fixed <rdar://problem/3811890> when selecting and moving the caret, some words aren't spell-checked (test case included)

This was mostly fixed by changes I made recently, but using the test case in the bug
I discovered one regression I introduced and another problem that wasn't fixed yet.
This change fixes both.

  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::markMisspellingsInSelection): Removed unneeded inRenderedContent() check. It was returning false in cases involving a <br> at the end of line, and the check isn't all that helpful now that we use VisiblePosition, which takes care of that sort of thing for you. Changed code to determine the range to check to use the two different flavors of word boundary to expand to words we touch in both directions. (KWQKHTMLPart::updateSpellChecking): Changed to use the same logic about word boundaries. By being consistent, the anomalies reported in the bug report go away.
8:22 AM Changeset in webkit [7647] by darin
  • 3 edits in trunk/WebKit

Reviewed by Ken.

  • fixed <rdar://problem/3811584> REGRESSION (85-125): iframe.document undefined in function called from button onclick; works from img onclick

The fix is to not let "defers callbacks" have any effect on loading "about:blank".
I also had to fix one bug in WebCore that could then be reproduced by going to "about:blank"
while using a button.

  • WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient connection:didReceiveResponse:]): Loosen asserts to allow this callback for the specific case of "about:blank" even if the defers callbacks flag is true. (-[WebMainResourceClient connectionDidFinishLoading:]): Ditto. (-[WebMainResourceClient loadWithRequestNow:]): Added NSURLRequest return value. Loosened asserts as above. Changed code to return a new request if we get a new request back that is not empty when the defers callbacks flag is true. (-[WebMainResourceClient loadWithRequest:]): If the defers callbacks flag is set, but the URL is one that gives us an empty document, then do the work right away, don't defer it.
8:21 AM Changeset in webkit [7646] by darin
  • 2 edits in trunk/WebCore

Reviewed by Ken.

  • fixed <rdar://problem/3811584> REGRESSION (85-125): iframe.document undefined in function called from button onclick; works from img onclick

Since we are doing a bit less "defers callbacks" work, when testing I ran into this code path.

  • khtml/xml/dom2_eventsimpl.cpp: (MouseEventImpl::computeLayerPos): Check for document without renderer.
12:10 AM Changeset in webkit [7645] by darin
  • 1 edit
    1 add in trunk/WebCore
  • checked in a new file I forgot
  • khtml/editing/text_granularity.h: Added.
12:09 AM Changeset in webkit [7644] by darin
  • 1 edit
    1 add in trunk/WebKit
  • fixed B&I builds by checking in generated file
  • WebCoreSupport.subproj/WebDashboardRegion.h: Added.
12:05 AM Changeset in webkit [7643] by darin
  • 29 edits
    1 add in trunk/WebCore
  • renamed

DOM::CaretPosition -> khtml::VisibleRange
DOM::Selection -> khtml::Selection

  • moved all the functions in visible_units.h from DOM to khtml namespace
  • moved the one thing from Selection that KHTMLPart uses into its own header
  • WebCore.pbproj/project.pbxproj: Added text_granularity.h.
  • ForwardingHeaders/editing/selection.h: Added.
  • WebCore-combined.exp: Regenerated.
  • WebCore-tests.exp: Updated symbol for DOM::Selection debugging.
  • khtml/ecma/kjs_window.cpp: Update names and namespaces.
  • khtml/editing/htmlediting.cpp: Ditto.
  • khtml/editing/htmlediting.h: Ditto.
  • khtml/editing/htmlediting_impl.cpp: Ditto.
  • khtml/editing/htmlediting_impl.h: Ditto.
  • khtml/editing/jsediting.cpp: Ditto.
  • khtml/editing/selection.cpp: Ditto.
  • khtml/editing/selection.h: Ditto.
  • khtml/editing/visible_position.cpp: Ditto.
  • khtml/editing/visible_position.h: Ditto.
  • khtml/editing/visible_text.h: Ditto.
  • khtml/editing/visible_units.cpp: Ditto.
  • khtml/editing/visible_units.h: Ditto.
  • khtml/khtml_part.cpp: Ditto.
  • khtml/khtml_part.h: Ditto.
  • khtml/khtmlpart_p.h: Ditto.
  • khtml/rendering/render_block.cpp: Ditto.
  • khtml/xml/dom_docimpl.h: Ditto.
  • khtml/xml/dom_nodeimpl.cpp: Ditto.
  • kwq/KWQKHTMLPart.h: Ditto.
  • kwq/KWQKHTMLPart.mm: Ditto.
  • kwq/KWQRenderTreeDebug.cpp: Ditto.
  • kwq/WebCoreBridge.mm: Ditto.

Sep 22, 2004:

11:21 PM Changeset in webkit [7642] by darin
  • 217 edits in trunk/WebCore
  • ForwardingHeaders/*: Use import instead of include.
10:23 PM Changeset in webkit [7641] by darin
  • 34 edits
    4 adds
    9 deletes in trunk/WebCore
  • renamed these files:

misc/khtml_text_operations.h -> editing/visible_text.h
misc/khtml_text_operations.cpp -> editing/visible_text.cpp
xml/dom_caretposition.cpp -> editing/visible_position.cpp
xml/dom_caretposition.h -> editing/visible_position.h
xml/dom_selection.cpp -> editing/selection.cpp
xml/dom_selection.h -> editing/selection.h

  • broke out the word/line/paragraph part of visible_position.h into visible_units.h
  • removed some unnecessary includes from some header files to reduce the number of files that trigger "building the world"
  • WebCore.pbproj/project.pbxproj: Added the files under new names, removed the old ones.
  • ForwardingHeaders/editing/jsediting.h: Added.
  • ForwardingHeaders/editing/visible_text.h: Added.
  • ForwardingHeaders/misc/khtml_text_operations.h: Removed.
  • ForwardingHeaders/xml/dom_caretposition.h: Removed.
  • ForwardingHeaders/xml/dom_selection.h: Removed.
  • khtml/ecma/kjs_window.cpp: Updated or removed #include lines.
  • khtml/editing/htmlediting.cpp: Ditto.
  • khtml/editing/htmlediting.h: Ditto.
  • khtml/editing/htmlediting_impl.cpp: Ditto.
  • khtml/editing/htmlediting_impl.h: Ditto.
  • khtml/editing/jsediting.cpp: Ditto.
  • khtml/editing/selection.cpp: Ditto.
  • khtml/editing/selection.h: Ditto.
  • khtml/editing/visible_position.cpp: Ditto.
  • khtml/editing/visible_position.h: Ditto.
  • khtml/editing/visible_text.cpp: Ditto.
  • khtml/editing/visible_text.h: Ditto.
  • khtml/editing/visible_units.cpp: Added.
  • khtml/editing/visible_units.h: Added.
  • khtml/html/html_elementimpl.cpp: Updated or removed #include lines.
  • khtml/khtml_part.cpp: Ditto.
  • khtml/khtml_part.h: Ditto.
  • khtml/khtmlpart_p.h: Ditto.
  • khtml/khtmlview.cpp: Ditto.
  • khtml/misc/khtml_text_operations.cpp: Removed.
  • khtml/misc/khtml_text_operations.h: Removed.
  • khtml/rendering/render_block.cpp: Updated or removed #include lines.
  • khtml/xml/dom2_rangeimpl.cpp: Ditto.
  • khtml/xml/dom_caretposition.cpp: Removed.
  • khtml/xml/dom_caretposition.h: Removed.
  • khtml/xml/dom_docimpl.cpp: Updated or removed #include lines.
  • khtml/xml/dom_docimpl.h: Ditto.
  • khtml/xml/dom_elementimpl.cpp: Ditto.
  • khtml/xml/dom_nodeimpl.cpp: Ditto.
  • khtml/xml/dom_position.cpp: Ditto.
  • khtml/xml/dom_selection.cpp: Removed.
  • khtml/xml/dom_selection.h: Removed.
  • kwq/KWQKHTMLPart.mm: Updated or removed #include lines.
  • kwq/KWQKHTMLPart.h: Ditto.
  • kwq/KWQRenderTreeDebug.cpp: Ditto.
  • kwq/WebCoreBridge.mm: Ditto.
6:50 PM Changeset in webkit [7640] by rjw
  • 13 edits
    2 adds in trunk

WebCore:

Pass dashboard regions up to WebKit.

Don't collect regions from RenderTexts.

Made more args and return types references to avoid
copying value lists.

Reviewed by Hyatt.

  • WebCore.pbproj/project.pbxproj:
  • khtml/khtmlview.cpp: (KHTMLView::layout):
  • khtml/rendering/render_object.cpp: (RenderObject::collectDashboardRegions):
  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::dashboardRegions): (DocumentImpl::setDashboardRegions):
  • khtml/xml/dom_docimpl.h:
  • kwq/KWQKHTMLPart.h:
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::didFirstLayout): (KWQKHTMLPart::dashboardRegionsChanged):
  • kwq/WebCoreBridge.h:
  • kwq/WebDashboardRegion.h: Added.
  • kwq/WebDashboardRegion.m: Added. (-[WebDashboardRegion initWithRect:type:]): (-[WebDashboardRegion copyWithZone:]): (-[WebDashboardRegion dashboardRegionRect]): (-[WebDashboardRegion dashboardRegionType]): (-[WebDashboardRegion description]):

WebKit:

Pass dashboard regions to UI delegate.

Reviewed by Hyatt.

  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge dashboardRegionsChanged:]):
  • WebView.subproj/WebUIDelegatePrivate.h:
  • copy-webcore-files-to-webkit:

WebBrowser:

Debug only code to display dashboard regions.

Reviewed by Hyatt.

  • BrowserWebController.m: (-[BrowserWebView webView:dashboardRegionsChanged:]):
4:57 PM Changeset in webkit [7639] by kocienda
  • 5 edits in trunk

Reviewed by Hyatt

Fix for this hitlist bug:

<rdar://problem/3805486> REGRESSION (Mail): Empty block elements can cause the caret to get "stuck" in one spot

  • khtml/xml/dom_caretposition.cpp: (DOM::CaretPosition::isCandidate): You can no longer caret into empty blocks with no height. Also did a little clean up in this function.
  • layout-tests/editing/deleting/delete-3800834-fix-expected.txt: Regenerated expected results. This test was actually failing and had bogus results checked in!
  • layout-tests/editing/selection/select-all-003-expected.txt: Regenerated expected results.
4:45 PM Changeset in webkit [7638] by cblu
  • 2 edits in trunk/WebKit

Fixed build that I just broke.

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]):
4:42 PM Changeset in webkit [7637] by cblu
  • 9 edits in trunk

WebCore:

Fixed: <rdar://problem/3812091> REGRESSION (Mail): double-clicked word is not smart inserted on drag

Reviewed by john.

  • khtml/editing/htmlediting.cpp: (khtml::MoveSelectionCommand::MoveSelectionCommand): take smartMove arg
  • khtml/editing/htmlediting.h:
  • khtml/editing/htmlediting_impl.cpp: (khtml::CompositeEditCommandImpl::deleteSelection): take smartDelete arg (khtml::MoveSelectionCommandImpl::MoveSelectionCommandImpl): take smartMove arg (khtml::MoveSelectionCommandImpl::doApply): pass smartMove for smartDelete and smartReplace
  • khtml/editing/htmlediting_impl.h:
  • kwq/WebCoreBridge.h:
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge moveSelectionToDragCaret:smartMove:]): take smartMove arg

WebKit:

<rdar://problem/3812091> REGRESSION (Mail): double-clicked word is not smart inserted on drag

Reviewed by john.

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): pass value for smartMove
3:17 PM Changeset in webkit [7636] by kocienda
  • 5 edits in trunk/WebCore

Reviewed by Hyatt

  • khtml/css/css_computedstyle.cpp: (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): New overloaded version of this function, one that takes a flag to determine whether to perform a document updateLayout() call before querying the style system.
  • khtml/css/css_computedstyle.h: (DOM::EUpdateLayout): Give a symbolic constant to true/false for the purpose of the new call to getPropertyCSSValue.
  • khtml/editing/htmlediting_impl.cpp: (khtml::StyleChange::currentlyHasStyle): Pass DoNotUpdateLayout to call to getPropertyCSSValue. (khtml::CompositeEditCommandImpl::applyTypingStyle): Add in top-level calls to updateLayout before doing style changes that now do not update styles themselves. (khtml::ApplyStyleCommandImpl::doApply): Ditto. (khtml::ApplyStyleCommandImpl::removeCSSStyle): Pass DoNotUpdateLayout to call to getPropertyCSSValue. (khtml::DeleteSelectionCommandImpl::computeTypingStyle): Remove this dead code.
  • khtml/editing/htmlediting_impl.h: Ditto.
2:25 PM Changeset in webkit [7635] by cblu
  • 5 edits in trunk/WebKit

WebKit:

Fixed:
<rdar://problem/3667301> Frequent crashes in Mail when viewing HTML messages (CFURLGetByteRangeForComponent)
<rdar://problem/3810354> WebResourceLoadDelegate can't refuse requests by returning nil; code asserts/crashes instead

Reviewed by rjw.

  • WebCoreSupport.subproj/WebSubresourceClient.m: (+[WebSubresourceClient startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]): removed broken code that handled loadWithRequest returning NO
  • WebView.subproj/WebBaseResourceHandleDelegate.m: (-[WebBaseResourceHandleDelegate loadWithRequest:]): if nil is returned from the client for willSendRequest, report the cancelled error and return

WebBrowser:

Reviewed by rjw.

  • LoadProgressMonitor.m: (-[LoadProgressMonitor webView:resource:willSendRequest:redirectResponse:fromDataSource:]): updated to use "new" API, this wasn't being called!
2:12 PM Changeset in webkit [7634] by kocienda
  • 9 edits
    2 adds in trunk

WebCore:

Reviewed by Darin

  • WebCore.pbproj/project.pbxproj: New files added.
  • khtml/khtml_part.cpp: (KHTMLPart::clearSelection): No longer calls setFocusIfNeeded. (KHTMLPart::slotClearSelection): Merged old implementation from this function to clearSelection. Now just calls clearSelection. Also put in !APPLE_CHANGES since we do not call it.
  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::setFocusNode): Add some code to determine when setting the focus should clear the selection.
  • kwq/KWQWidget.mm: (QWidget::hasFocus): Call _webcore_effectiveFirstResponder to get view to check for focus. (QWidget::setFocus): Ditto.
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge deselectText]): Called slotClearSelection and should have been. Now calls clearSelection.
  • kwq/WebCoreView.h: Added.
  • kwq/WebCoreView.m: Added. (-[NSView _webcore_effectiveFirstResponder]): New method to yield the correct responder to check for firstResponder-ness before calling makeFirstResonder. This helps to prevent unwanted firstResponder switching. (-[NSClipView _webcore_effectiveFirstResponder]): Ditto. (-[NSScrollView _webcore_effectiveFirstResponder]): Ditto.

WebKit:

Reviewed by Darin

  • WebView.subproj/WebFrameView.m: (-[WebFrameView _webcore_effectiveFirstResponder]): New function to yield the correct responder to check for firstResponder-ness before calling makeFirstResonder. This helps to prevent unwanted firstResponder switching.
  • WebView.subproj/WebView.m: (-[WebView _webcore_effectiveFirstResponder]): Ditto.
1:36 PM Changeset in webkit [7633] by mjs
  • 3 edits in trunk/WebCore

Reviewed by Darin.

<rdar://problem/3805137> REGRESSION: Cannot search on pricetool.com

The problem here is that residual style handling can cause an
element associated with a misnested form to lose the association,
because it can become detached and then reattached in this
case. So we need to maintain the association.

  • khtml/html/html_formimpl.h: Added list of dormant elements to form, and dormant bit to generic form element.
  • khtml/html/html_formimpl.cpp: (DOM::HTMLFormElementImpl::~HTMLFormElementImpl): Clear m_form field for dormant elements too. (DOM::HTMLFormElementImpl::registerFormElement): Remove from dormant list in addition to adding to main list. (DOM::HTMLFormElementImpl::removeFormElement): Remove from both lists. (DOM::HTMLFormElementImpl::makeFormElementDormant): New method, remove from main list, add to dormant list. (DOM::HTMLGenericFormElementImpl::HTMLGenericFormElementImpl): Initialize dormant bit to false. (DOM::HTMLGenericFormElementImpl::insertedIntoDocument): If the element is dormant and has a form, re-register it and clear the dormant bit. (DOM::HTMLGenericFormElementImpl::removedFromDocument): If the document has a form, tell the form it is dormant and set the dormant bit.
1:26 PM Changeset in webkit [7632] by cblu
  • 4 edits in trunk/WebCore

Fixed: <rdar://problem/3811187> REGRESSION (Mail): Control-click past end of document does not spell check last word

Reviewed by kocienda.

  • khtml/xml/dom_selection.cpp: (DOM::Selection::validate): if at the end of the document, expand to the left.
1:15 PM Changeset in webkit [7631] by mjs
  • 1 edit in trunk/WebCore/ChangeLog-2005-08-23

Remove stray non-ascii characters in ChangeLog.

1:14 PM Changeset in webkit [7630] by mjs
  • 3 edits in trunk/WebCore

Reviewed by Ken and John.

<rdar://problem/3759228> REGRESSION (Mail): stray characters when entering text via input method right after newline

  • khtml/editing/htmlediting_impl.cpp: (khtml::CompositeEditCommandImpl::inputText): Add an optional selectInsertedText parameter. (khtml::ReplaceSelectionCommandImpl::doApply): Let the inputText operation select the text when inserting plain text, because it already knows all the right information to do so, and this function doesn't (sometimes text is inserted before the start of the old selection, not after!)
  • khtml/editing/htmlediting_impl.h:
1:03 PM Changeset in webkit [7629] by rjw
  • 3 edits in trunk/WebCore

More tweaks to dashboard regions style.

Move dashboard regions list into css3NonInheritedData so it will be shared
by all styles that don't modify the empty region list.

Make the initial value for dashboard region list a static to minimize allocations
of empty lists.

Unrelated to regions: make marquee, flex box, and opacity style accessor functions const.

Reviewed by Hyatt.

  • khtml/rendering/render_style.cpp: (RenderStyle::diff):
  • khtml/rendering/render_style.h: (khtml::RenderStyle::opacity): (khtml::RenderStyle::boxAlign): (khtml::RenderStyle::boxDirection): (khtml::RenderStyle::boxFlexGroup): (khtml::RenderStyle::boxOrdinalGroup): (khtml::RenderStyle::boxOrient): (khtml::RenderStyle::boxPack): (khtml::RenderStyle::marqueeIncrement): (khtml::RenderStyle::marqueeSpeed): (khtml::RenderStyle::marqueeLoopCount): (khtml::RenderStyle::marqueeBehavior): (khtml::RenderStyle::marqueeDirection): (khtml::RenderStyle::dashboardRegions): (khtml::RenderStyle::setDashboardRegions): (khtml::RenderStyle::setDashboardRegion): (khtml::RenderStyle::initialDashboardRegions):
11:42 AM Changeset in webkit [7628] by hyatt
  • 2 edits in trunk/WebCore

Fix for 3802766, entire view redrawn in Blot while typing. Don't needlessly create text nodes just to find
out the font for the caret position.

Reviewed by darin

  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::fontForSelection):

Sep 21, 2004:

6:30 PM Changeset in webkit [7627] by cblu
  • 12 edits in trunk

WebCore:

Fixed:
<rdar://problem/3735071> REGRESSION (Mail): WebCore Editing must do smart paste
<rdar://problem/3799163> REGRESSION (Mail): Deleting a word doesn't delete whitespace

Reviewed by darin.

  • khtml/editing/htmlediting.cpp: (khtml::DeleteSelectionCommand::DeleteSelectionCommand): take smartDelete parameter (khtml::ReplaceSelectionCommand::ReplaceSelectionCommand): take smartReplace parameter
  • khtml/editing/htmlediting.h:
  • khtml/editing/htmlediting_impl.cpp: (khtml::DeleteSelectionCommandImpl::DeleteSelectionCommandImpl): take smartDelete parameter (khtml::DeleteSelectionCommandImpl::doApply): delete whitespace before and after selection if necessary (khtml::ReplaceSelectionCommandImpl::ReplaceSelectionCommandImpl): take smartReplace parameter (khtml::ReplaceSelectionCommandImpl::doApply): add whitespace before and after the replacement if necessary
  • khtml/editing/htmlediting_impl.h:
  • kwq/WebCoreBridge.h:
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge replaceSelectionWithFragment:selectReplacement:smartReplace:]): take smartReplace parameter (-[WebCoreBridge replaceSelectionWithNode:selectReplacement:smartReplace:]): ditto (-[WebCoreBridge replaceSelectionWithMarkupString:baseURLString:selectReplacement:smartReplace:]): ditto (-[WebCoreBridge replaceSelectionWithText:selectReplacement:smartReplace:]): ditto (-[WebCoreBridge deleteSelectionWithSmartDelete:]): take smartDelete parameter

WebKit:

Fixed:
<rdar://problem/3735071> REGRESSION (Mail): WebCore Editing must do smart paste
<rdar://problem/3799163> REGRESSION (Mail): Deleting a word doesn't delete whitespace

Reviewed by darin.

  • WebView.subproj/WebDataSource.m: (-[WebDataSource _replaceSelectionWithArchive:selectReplacement:]): pass NO for smartReplace
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _pasteWithPasteboard:allowPlainText:]): pass parameter for smartReplace using _canSmartReplaceWithPasteboard (-[WebHTMLView _changeSpellingFromMenu:]): pass NO for smartReplace (-[WebHTMLView pasteboardTypesForSelection]): include WebSmartPastePboardType when _canSmartCopyOrDelete return YES (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]): ditto (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): pass parameter for smartReplace using _canSmartReplaceWithPasteboard (-[WebHTMLView delete:]): call _deleteSelection (-[WebHTMLView cut:]): don't call delegate twice, call _deleteRange to delete (-[WebHTMLView pasteAsPlainText:]): pass parameter for smartReplace using _canSmartReplaceWithPasteboard (-[WebHTMLView _changeWordCaseWithSelector:]): pass NO for smartReplace (-[WebHTMLView deleteBackward:]): call _deleteSelection when there is a selected range (-[WebHTMLView _changeSpellingToWord:]): pass NO for smartReplace (-[WebHTMLView deleteToMark:]): pass NO for smartDeleteOK (-[WebHTMLView transpose:]): pass NO for smartReplace (-[WebHTMLView _shouldDeleteRange:]): moved (-[WebHTMLView _deleteRange:preflight:killRing:prepend:smartDeleteOK:]): moved, handle smartDelete (-[WebHTMLView _deleteWithDirection:granularity:killRing:]): moved (-[WebHTMLView _deleteSelection]): new (-[WebHTMLView _canSmartReplaceWithPasteboard]): new (-[WebHTMLView _canSmartCopyOrDelete]): new (-[WebHTMLView setMarkedText:selectedRange:]): pass NO for smartReplace (-[WebHTMLView _discardMarkedText]): call _deleteSelection (-[WebTextCompleteController _insertMatch:]): pass NO for smartReplace (-[WebTextCompleteController endRevertingChange:moveLeft:]): pass NO for smartReplace
  • WebView.subproj/WebHTMLViewInternal.h:
  • WebView.subproj/WebView.m: (-[WebView _commonInitializationWithFrameName:groupName:]): set smartInsertDeleteEnabled to YES (-[WebView replaceSelectionWithNode:]): pass NO for smartReplace (-[WebView replaceSelectionWithText:]): pass NO for smartReplace (-[WebView replaceSelectionWithMarkupString:]): pass NO for smartReplace (-[WebView deleteSelection]): call _deleteSelection on WebHTMLView
6:13 PM Changeset in webkit [7626] by rjw
  • 8 edits in trunk/WebCore

More dashboard region work.

Added support for computed style and cssText for new region property.
Added restriction on length types allowed in region functions.
Added initial and inheritance support for -apple-dashboard-region.

Reviewed by Hyatt.

  • khtml/css/css_computedstyle.cpp: (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
  • khtml/css/css_valueimpl.cpp: (CSSPrimitiveValueImpl::cssText):
  • khtml/css/cssparser.cpp: (CSSParser::parseDashboardRegions):
  • khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::applyProperty):
  • khtml/rendering/render_object.cpp: (RenderObject::addDashboardRegions):
  • khtml/rendering/render_style.cpp: (RenderStyle::diff):
  • khtml/rendering/render_style.h: (khtml::StyleDashboardRegion::operator==): (khtml::RenderStyle::dashboardRegions): (khtml::RenderStyle::setDashboardRegions): (khtml::RenderStyle::initialDashboardRegions):
5:41 PM Changeset in webkit [7625] by darin
  • 10 edits in trunk/WebCore

Reviewed by Ken.

  • fixed problem where our updateLayout call ignores pending stylesheets all the time
  • khtml/xml/dom_docimpl.h: Added updateLayoutIgnorePendingStylesheets.
  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::updateLayout): Took out the "ignore pending stylesheets" business here. (DocumentImpl::updateLayoutIgnorePendingStylesheets): Put it in here.
  • khtml/ecma/kjs_dom.cpp: (DOMNode::getValueProperty): Call the new updateLayoutIgnorePendingStylesheets function.
  • khtml/ecma/kjs_html.cpp: (KJS::HTMLElement::getValueProperty): Ditto. (KJS::HTMLElement::putValue): Ditto.
  • khtml/ecma/kjs_views.cpp: (DOMAbstractViewFunc::tryCall): Ditto.
  • khtml/ecma/kjs_window.cpp: (Window::updateLayout): Ditto. (Selection::get): Ditto. (SelectionFunc::tryCall): Ditto.
  • khtml/html/html_imageimpl.h: Add ignorePendingStylesheets boolean parameter.
  • khtml/html/html_imageimpl.cpp: (HTMLImageElementImpl::width): Respect new parameter. (HTMLImageElementImpl::height): Ditto.
  • tweaks
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): Removed unneeded explicit "true" parameter to setSelection. (-[WebCoreBridge alterCurrentSelection:verticalDistance:]): Ditto.
5:38 PM Changeset in webkit [7624] by darin
  • 4 edits in trunk/WebCore

Reviewed by Ken.

  • fix crash when pasting text at the end of the document and then doing an undo
  • khtml/editing/htmlediting_impl.cpp: (khtml::EditCommandImpl::apply): Call markMisspellingsInSelection before doing the editing operation, and we'll tell setSelection not to unmark the old selection. Also call updateLayout before calling appliedEditing so DOM operations in the code responding to the selection change will work. (khtml::EditCommandImpl::unapply): Ditto. (khtml::EditCommandImpl::reapply): Ditto.
  • khtml/khtml_part.h: Added a third parameter to setSelection to tell it whether to unmark the old selection. We must pass false when editing, because the old selection might have now-invalid offsets inside it.
  • khtml/khtml_part.cpp: (KHTMLPart::setSelection): Add unmarkOldSelection parameter, and respect it. (KHTMLPart::appliedEditing): Pass false for unmarkOldSelection. (KHTMLPart::unappliedEditing): Ditto. (KHTMLPart::reappliedEditing): Ditto.
3:12 PM Changeset in webkit [7623] by rjw
  • 14 edits in trunk/WebCore

Part 2 of the feature requested in
<rdar://problem/3752791> Dashboard: Need a better solution for control regions

This patch actually collections the regions and converts to absolute coordinates.
Only remaining piece is to pass over the bridge and up the alley to WebKit
UI delegate.

Reviewed by Ken.

  • khtml/css/css_valueimpl.h: (DOM::CSSPrimitiveValueImpl::getDashboardRegionValue):
  • khtml/css/cssparser.cpp: (CSSParser::parseValue): (CSSParser::parseDashboardRegions):
  • khtml/css/cssproperties.c:
  • khtml/css/cssproperties.h:
  • khtml/css/cssproperties.in:
  • khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::applyProperty):
  • khtml/khtmlview.cpp: (KHTMLView::layout):
  • khtml/rendering/render_object.cpp: (RenderObject::computeDashboardRegions): (RenderObject::addDashboardRegions): (RenderObject::collectDashboardRegions):
  • khtml/rendering/render_object.h: (khtml::DashboardRegionValue::operator==):
  • khtml/rendering/render_style.cpp:
  • khtml/rendering/render_style.h: (khtml::StyleDashboardRegion::): (khtml::RenderStyle::dashboardRegions): (khtml::RenderStyle::setDashboardRegion):
  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::DocumentImpl): (DocumentImpl::updateLayout): (DocumentImpl::acceptsEditingFocus): (DocumentImpl::dashboardRegions): (DocumentImpl::setDashboardRegions):
  • khtml/xml/dom_docimpl.h: (DOM::DocumentImpl::hasDashboardRegions): (DOM::DocumentImpl::setHasDashboardRegions):
3:09 PM Changeset in webkit [7622] by sullivan
  • 8 edits in trunk

WebCore:

Reviewed by Darin.

  • WebCore part of fix for <rdar://problem/3618274> REGRESSION (125-135): Option-tab doesn't always work as expected
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::tabsToAllControls): reworked logic to match what we promise in the UI; this worked correctly before for regular tabbing, but not for option-tabbing.
  • kwq/KWQButton.mm: (QButton::focusPolicy): check tabsToAllControls() rather than just WebCoreKeyboardAccessFull
  • kwq/KWQComboBox.mm: (QComboBox::focusPolicy): ditto
  • kwq/KWQFileButton.mm: (KWQFileButton::focusPolicy): ditto
  • kwq/KWQListBox.mm: (QListBox::focusPolicy): ditto

WebKit:

Reviewed by Darin.

  • WebKit part of fix for <rdar://problem/3618274> REGRESSION (125-135): Option-tab doesn't always work as expected
  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]): Don't set WebCoreKeyboardAccessFull when setting WebCoreKeyboardAccessTabsToLinks after all; these need to be tested independently to get the option-tab behavior correct.

WebBrowser:

Fixed: <rdar://problem/3807365> REGRSSION (8A259): drag bookmark to Finder does not appear in Finder

Reviewed by john.

  • BookmarksViewController.m: (-[BookmarksViewController outlineView:namesOfPromisedFilesDroppedAtDestination:forDraggedItems:]): new, must implement this method on Tiger for promised drags to work
2:53 PM Changeset in webkit [7621] by sullivan
  • 2 edits in trunk/WebKit
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView doCommandBySelector:]): Commented out part of previous change; it breaks Mail editing until Mail fixes bug 3810158.
2:18 PM Changeset in webkit [7620] by sullivan
  • 4 edits in trunk/WebCore
  • khtml/xml/dom_selection.cpp: (DOM::Selection::modify): initialize xPos to make compiler happy in deployment builds
12:00 PM Changeset in webkit [7619] by sullivan
  • 2 edits in trunk/WebKit

Reviewed by Ken.

  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView doCommandBySelector:]): Fix build failure from previous checkin, d'oh! Didn't set up webview variable.
11:31 AM Changeset in webkit [7618] by darin
  • 14 edits in trunk/WebCore

Reviewed by Ken.

  • some small mechanical improvements to the position and selection classes
  • khtml/xml/dom_position.h: Added clear(), startPosition(), and endPosition().
  • khtml/xml/dom_position.cpp: (DOM::Position::clear): Added. (DOM::startPosition): Added. (DOM::endPosition): Added.
  • khtml/xml/dom_caretposition.h: Changed m_position to m_deepPosition. Added clear(), removed node() and offset().
  • khtml/xml/dom_caretposition.cpp: (DOM::CaretPosition::init): Updated for name change of m_position to m_deepPosition. (DOM::CaretPosition::isLastInBlock): Ditto. (DOM::CaretPosition::next): Ditto. (DOM::CaretPosition::previous): Ditto. (DOM::CaretPosition::debugPosition): Ditto. (DOM::CaretPosition::formatForDebugger): Ditto.
  • khtml/xml/dom_selection.h: Remove setStart, setEnd, setStartAndEnd, rangeStart, rangeEnd, and all the assignXXX functions.
  • khtml/xml/dom_selection.cpp: (DOM::Selection::Selection): Wean from assign functions, get and set data members directly. (DOM::Selection::init): Don't clear base, extent, start, and end, since they have constructors. (DOM::Selection::operator=): Wean from assign functions, get and set data members directly. (DOM::Selection::moveTo): Ditto. (DOM::Selection::setModifyBias): Ditto. (DOM::Selection::modifyExtendingRightForward): Ditto. (DOM::Selection::modifyMovingRightForward): Ditto. (DOM::Selection::modifyExtendingLeftBackward): Ditto. (DOM::Selection::modifyMovingLeftBackward): Ditto. (DOM::Selection::modify): Ditto. (DOM::Selection::xPosForVerticalArrowNavigation): Ditto. (DOM::Selection::clear): Ditto. (DOM::Selection::setBase): Ditto. (DOM::Selection::setExtent): Ditto. (DOM::Selection::setBaseAndExtent): Ditto. (DOM::Selection::toRange): Ditto. (DOM::Selection::layoutCaret): Ditto. (DOM::Selection::needsCaretRepaint): Ditto. (DOM::Selection::validate): Ditto. (DOM::Selection::debugRenderer): Ditto. (DOM::Selection::debugPosition): Ditto. (DOM::Selection::end):
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::advanceToNextMisspelling): Tweaked whitespace.
11:08 AM Changeset in webkit [7617] by sullivan
  • 3 edits in trunk/WebKit

Reviewed by Ken.

  • fixed <rdar://problem/3809477> WebHTMLView needs to pass doCommandBySelector through delegate
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView doCommandBySelector:]): Call through to editing delegate. If editing delegate returns YES, don't call super.
  • WebView.subproj/WebDefaultEditingDelegate.m: (-[WebDefaultEditingDelegate webView:doCommandBySelector:]): default implementation (which was never called) was returning YES, but it should return NO to signal that it didn't handle the selector.
10:06 AM Changeset in webkit [7616] by cblu
  • 5 edits in trunk

WebCore:

Fixed: <rdar://problem/3647229> Safari does not play inline Windows Media Content on some sites (miggy.net and ministryofsound.com)

Reviewed by john.

  • khtml/rendering/render_frames.cpp: (RenderPartObject::updateWidget): when no MIME type is specified map from the WMP CLASSID to the WMP MIME type, look for the URL of the content in the URL PARAM tag

WebKit:

Fixed: <rdar://problem/3647229> Safari does not play inline Windows Media Content on some sites (miggy.net and ministryofsound.com)

Reviewed by john.

  • Plugins.subproj/WebBaseNetscapePluginView.m:
  • Plugins.subproj/WebNetscapePluginEmbeddedView.m: (-[WebNetscapePluginEmbeddedView initWithFrame:plugin:URL:baseURL:MIMEType:attributeKeys:attributeValues:]): set the plug-in before calling setting the attributes, so we can avoid passing certain attributes to the WMP plug-in that cause it to crash

Sep 20, 2004:

6:16 PM Changeset in webkit [7615] by darin
  • 23 edits in trunk/WebCore

Reviewed by Maciej.

  • fixed regression from my recent check-in where misspelled words do not get unmarked when moving the caret
  • changed CaretPosition to hold a Position instead of a node and offset
  • renamed isEmpty to isNull, etc.
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::jumpToSelection): Updated for name changes. (KWQKHTMLPart::advanceToNextMisspelling): Ditto. (KWQKHTMLPart::fontForSelection): Ditto. (KWQKHTMLPart::setDisplaysWithFocusAttributes): Ditto. (KWQKHTMLPart::markMisspellingsInSelection): Ditto. (KWQKHTMLPart::updateSpellChecking): Fixed bug by using LeftWordIfOnBoundary.
  • khtml/xml/dom_position.h: Updated for name changes.
  • khtml/xml/dom_position.cpp: (DOM::Position::element): Change to not use a separate null check. (DOM::Position::computedStyle): Updated for name changes. (DOM::Position::previousCharacterPosition): Ditto. (DOM::Position::nextCharacterPosition): Ditto. (DOM::Position::equivalentRangeCompliantPosition): Ditto. (DOM::Position::equivalentShallowPosition): Ditto. (DOM::Position::equivalentDeepPosition): Ditto. (DOM::Position::closestRenderedPosition): Ditto. (DOM::Position::inRenderedContent): Ditto. (DOM::Position::inRenderedText): Ditto. (DOM::Position::isRenderedCharacter): Ditto. (DOM::Position::rendersInDifferentPosition): Ditto. (DOM::Position::isFirstRenderedPositionOnLine): Ditto. (DOM::Position::isLastRenderedPositionOnLine): Ditto. (DOM::Position::inFirstEditableInRootEditableElement): Ditto. (DOM::Position::leadingWhitespacePosition): Ditto. (DOM::Position::trailingWhitespacePosition): Ditto. (DOM::Position::debugPosition): Ditto. (DOM::Position::formatForDebugger): Ditto.
  • khtml/xml/dom_caretposition.h: Change to use m_position, and change names.
  • khtml/xml/dom_caretposition.cpp: (DOM::CaretPosition::CaretPosition): Remove code to set up m_node. (DOM::CaretPosition::init): Set m_position directly. (DOM::CaretPosition::isLastInBlock): Updated for name changes. (DOM::CaretPosition::next): Set m_position directly. (DOM::CaretPosition::previous): Set m_position directly. (DOM::CaretPosition::previousCaretPosition): Updated for name changes. (DOM::CaretPosition::nextCaretPosition): Ditto. (DOM::CaretPosition::previousPosition): Ditto. (DOM::CaretPosition::nextPosition): Ditto. (DOM::CaretPosition::atStart): Ditto. (DOM::CaretPosition::atEnd): Ditto. (DOM::CaretPosition::isCandidate): Ditto. (DOM::CaretPosition::debugPosition): Ditto. (DOM::CaretPosition::formatForDebugger): Ditto. (DOM::startOfWord): Ditto. (DOM::endOfWord): Ditto. (DOM::previousParagraphPosition): Ditto. (DOM::nextParagraphPosition): Ditto.
  • khtml/xml/dom_selection.h: Updated names. Added isCaret and isRange.
  • khtml/xml/dom_selection.cpp: (DOM::Selection::modifyMovingRightForward): Updated for name changes. (DOM::Selection::modifyMovingLeftBackward): Ditto. (DOM::Selection::modify): Ditto. (DOM::Selection::expandUsingGranularity): Ditto. (DOM::Selection::xPosForVerticalArrowNavigation): Ditto. (DOM::Selection::toRange): Ditto. (DOM::Selection::layoutCaret): Ditto. (DOM::Selection::needsCaretRepaint): Ditto. (DOM::Selection::validate): Ditto. (DOM::startOfFirstRunAt): Ditto. (DOM::endOfLastRunAt): Ditto. (DOM::selectionForLine): Ditto. (DOM::Selection::formatForDebugger): Ditto.
  • khtml/ecma/kjs_window.cpp: (Selection::get): Updated for name changes. (Selection::toString): Ditto.
  • khtml/editing/htmlediting_impl.cpp: (khtml::debugPosition): Ditto. (khtml::StyleChange::init): Ditto. (khtml::StyleChange::currentlyHasStyle): Ditto. (khtml::CompositeEditCommandImpl::deleteSelection): Ditto. (khtml::CompositeEditCommandImpl::deleteUnrenderedText): Ditto. (khtml::ApplyStyleCommandImpl::doApply): Ditto. (khtml::DeleteSelectionCommandImpl::doApply): Ditto. (khtml::InputNewlineCommandImpl::doApply): Ditto. (khtml::InputTextCommandImpl::prepareForTextInsertion): Ditto. (khtml::InputTextCommandImpl::input): Ditto. (khtml::ReplaceSelectionCommandImpl::doApply): Ditto. (khtml::MoveSelectionCommandImpl::doApply): Ditto. (khtml::TypingCommandImpl::doApply): Ditto. (khtml::TypingCommandImpl::markMisspellingsAfterTyping): Ditto. (khtml::TypingCommandImpl::issueCommandForDeleteKey): Ditto.
  • khtml/editing/jsediting.cpp: (enabledAnySelection): Ditto. (enabledRangeSelection): Ditto.
  • khtml/khtml_part.cpp: (KHTMLPart::hasSelection): Ditto. (KHTMLPart::setFocusNodeIfNeeded): Ditto. (KHTMLPart::selectionLayoutChanged): Ditto. (KHTMLPart::timerEvent): Ditto. (KHTMLPart::isPointInsideSelection): Ditto. (KHTMLPart::selectClosestWordFromMouseEvent): Ditto. (KHTMLPart::handleMousePressEventTripleClick): Ditto. (KHTMLPart::handleMousePressEventSingleClick): Ditto. (KHTMLPart::handleMouseMoveEventSelection): Ditto. (KHTMLPart::khtmlMouseReleaseEvent): Ditto. (KHTMLPart::selectionHasStyle): Ditto. (KHTMLPart::selectionComputedStyle): Ditto.
  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::updateSelection): Ditto.
  • khtml/xml/dom_positioniterator.cpp: (DOM::PositionIterator::peekPrevious): Ditto. (DOM::PositionIterator::peekNext): Ditto. (DOM::PositionIterator::atStart): Ditto. (DOM::PositionIterator::atEnd): Ditto.
  • khtml/xml/dom_positioniterator.h: (DOM::PositionIterator::isEmpty): Ditto.
  • kwq/KWQRenderTreeDebug.cpp: (writeSelection): Ditto.
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge editableDOMRangeForPoint:]): Ditto. (-[WebCoreBridge deleteSelection]): Ditto. (-[WebCoreBridge ensureCaretVisible]): Ditto. (-[WebCoreBridge rangeOfCharactersAroundCaret]): Ditto.
5:28 PM Changeset in webkit [7614] by darin
  • 6 edits in trunk/WebCore

Reviewed by Maciej.

  • fixed <rdar://problem/3808073> find is broken
  • khtml/misc/khtml_text_operations.h: Add m_pastEndNode and change name of m_endNode to m_endContainer to more accurately reflect its purpose.
  • khtml/misc/khtml_text_operations.cpp: (khtml::TextIterator::TextIterator): Use pastEnd() for end of iteration, and change to handle bad ranges better: just return an empty iterator instead of raising an exception. (khtml::TextIterator::advance): Change to use m_pastEndNode to detect the end of iteration. (khtml::TextIterator::handleTextNode): Update for name change. (khtml::TextIterator::handleTextBox): Ditto. (khtml::TextIterator::range): Handle case where m_endContainer is nil.
  • khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::surroundContents): Use offsetInCharacters. (DOM::RangeImpl::startNode): Added check for nil start container and use offsetInCharacters. (DOM::RangeImpl::pastEndNode): Ditto.
4:56 PM Changeset in webkit [7613] by cblu
  • 10 edits in trunk

WebCore:

Fixed: <rdar://problem/3781290> REGRESSION (Mail): Crash in ReplaceSelectionCommandImpl attaching file to new message

Reviewed by kocienda.

  • khtml/khtml_part.cpp: (KHTMLPart::setSelection): setFocusNodeIfNeeded now works on the current selection so call setFocusNodeIfNeeded after setting the selection (KHTMLPart::clearSelection): don't call setFocusNodeIfNeeded with the current selection (KHTMLPart::setCaretVisible): ditto (KHTMLPart::setFocusNodeIfNeeded): do nothing if the part isn't focused, work with the current selection
  • khtml/khtml_part.h:
  • khtml/khtmlpart_p.h: (KHTMLPartPrivate::KHTMLPartPrivate): added m_isFocused
  • kwq/KWQKHTMLPart.h:
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::KWQKHTMLPart): removed _displaysWithFocusAttributes this is replaced by m_isFocused (KWQKHTMLPart::setSelectionFromNone): new, code factored out from setDisplaysWithFocusAttributes (KWQKHTMLPart::setDisplaysWithFocusAttributes): call setSelectionFromNone (KWQKHTMLPart::displaysWithFocusAttributes): now returns m_isFocused
  • kwq/WebCoreBridge.h:
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge setSelectionFromNone]): new

WebKit:

Fixed: <rdar://problem/3781290> REGRESSION (Mail): Crash in ReplaceSelectionCommandImpl attaching file to new message

Reviewed by kocienda.

  • WebView.subproj/WebView.m: (-[WebView setEditable:]): call updateSelectionFromEmpty on the bridge if there is no selection
4:26 PM Changeset in webkit [7612] by darin
  • 2 edits in trunk/WebCore

Reviewed by Dave.

  • fixed nil-deref happening often in Mail when I delete
  • khtml/rendering/render_br.cpp: (RenderBR::selectionRect): Check for nil lastLeafChild. Dave may want to figure out why it's nil and do a different fix later.
2:53 PM Changeset in webkit [7611] by mjs
  • 2 edits in trunk/WebCore

Reviewed by Richard.

<rdar://problem/3672101> HANG: typing into login field at dws-direkt.deutsche-bank.de (infinite recursion)

  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::defaultEventHandler): Copy the list of handlers before firing any of them, in case a handler affects the list of event handlers.
2:36 PM Changeset in webkit [7610] by cblu
  • 15 edits in trunk

WebCore:

Fixed:
<rdar://problem/3429921> obey PARAM tags inside of OBJECT tags when necessary
<rdar://problem/3515685> Object tag in Java 1.4.1 / Safari doesn't recognize params

Reviewed by darin.

  • khtml/khtml_part.cpp: (KHTMLPart::requestFrame): take 2 parameter arrays rather than 1 which will have to be parsed (KHTMLPart::requestObject): ditto
  • khtml/khtml_part.h:
  • khtml/khtmlpart_p.h:
  • khtml/rendering/render_frames.cpp: (RenderPartObject::updateWidget): use PARAM tags when there is no EMBED specified
  • kwq/KWQKHTMLPart.h:
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::createPart): call renamed bridge method
  • kwq/KWQKJavaAppletWidget.mm: (KJavaAppletWidget::KJavaAppletWidget): ditto
  • kwq/KWQStringList.h:
  • kwq/KWQStringList.mm: (QStringList::getNSArray): return a const array
  • kwq/WebCoreBridge.h:
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge URLWithAttributeString:]): renamed to match API

WebKit:

Changes to implement renamed bridge methods.

Reviewed by darin.

  • ChangeLog:
  • DOM.subproj/WebDOMOperations.m: (-[DOMDocument URLWithAttributeString:]): call renamed bridge method
  • WebCoreSupport.subproj/WebBridge.m: (-[WebBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]): take 2 parameter arrays rather than 1 which will have to be parsed (-[WebBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]): ditto
1:21 PM Changeset in webkit [7609] by darin
  • 1 edit
    1 add
    1 delete in trunk/WebKit

Reviewed by Chris.

  • WebView.subproj/WebFramePrivate.h: Added back.
  • WebView.subproj/WebFrameViewPrivate.h: Removed.
11:54 AM Changeset in webkit [7608] by darin
  • 39 edits
    2 deletes in trunk

WebCore:

Reviewed by Ken.

  • fixed <rdar://problem/3655360> REGRESSION (Mail): Ctrl-V emacs key binding, -pageDown: method, unimplemented (and pageUp, and selection-modifying versions)
  • fixed <rdar://problem/3735055> REGRESSION (Mail): WebCore double click rules treat style change as a boundary
  • fixed <rdar://problem/3789939> REGRESSION (Mail): double-clicking on border whitespace selects space plus word before/after
  • fixed <rdar://problem/3792138> REGRESSION (Mail): Spell checker doesn't check current selected word
  • fixed <rdar://problem/3806604> REGRESSION (164): Triple-click sometimes selects extra characters
  • fixed <rdar://problem/3806996> REGRESSION (125-162): Triple-click in <pre> tagged text behaves oddly (leuf.net)
  • khtml/xml/dom_caretposition.h: Added a lot of new functions. Removed implicit conversion operator that converts from CaretPosition to Position.
  • khtml/xml/dom_caretposition.cpp: (DOM::CaretPosition::CaretPosition): Change to call deepEquivalent so it works without the implicit Position conversion operator. (DOM::CaretPosition::operator=): Ditto. (DOM::CaretPosition::next): Ditto. (DOM::CaretPosition::previous): Ditto. (DOM::CaretPosition::setPosition): Added an assertion. (DOM::start): Added. (DOM::end): Added. (DOM::setStart): Added. (DOM::setEnd): Added. (DOM::previousWordBoundary): Added. (DOM::nextWordBoundary): Added. (DOM::startWordBoundary): Added. (DOM::startOfWord): Added. (DOM::endWordBoundary): Added. (DOM::endOfWord): Added. (DOM::previousWordPositionBoundary): Added. (DOM::previousWordPosition): Added. (DOM::nextWordPositionBoundary): Added. (DOM::nextWordPosition): Added. (DOM::previousLinePosition): Added. (DOM::nextLinePosition): Added. (DOM::startOfParagraph): Changed function name. (DOM::endOfParagraph): Changed function name. Fixed code in includeLineBreak to work around the CaretPosition constructor issue for <br>, pass the right parameter for the block flow case, and handle <pre> properly. (DOM::inSameParagraph): Added. (DOM::previousParagraphPosition): Added. (DOM::nextParagraphPosition): Added.
  • khtml/xml/dom_position.h: Removed a number of functions no longer used; also made some private.
  • khtml/xml/dom_position.cpp: Removed a number of functions no longer used.
  • khtml/xml/dom_selection.h: Replaced DOCUMENT with DOCUMENT_BOUNDARY. Added overloads of lots of functions that take CaretPosition directly. Added overload of modify that takes a parameter for vertical distance to help implement pageDown: and friends. Replaced getRepaintRect with two new functions named caretRect and caretRepaintRect. Removed nodeIsBeforeNode.
  • khtml/xml/dom_selection.cpp: (DOM::Selection::Selection): Added constructor that takes two CaretPosition objects. (DOM::Selection::setModifyBias): Added. Helper function. (DOM::Selection::modifyExtendingRightForward): Don't set modify bias, since that's now the caller's responsibility. Reimplement WORD and LINE in terms of new CaretPosition functions. Implement PARAGRAPH and change PARAGRAPH_BOUNDARY to use CaretPosition function by its new name. (DOM::Selection::modifyMovingRightForward): Ditto. (DOM::Selection::modifyExtendingLeftBackward): Ditto. (DOM::Selection::modifyMovingLeftBackward): Ditto. (DOM::Selection::modify): Call setModifyBias, and use a switch statement instead of if. (DOM::caretY): Added. Helper for the new modify function that implements moving a pixel distance, used by pageDown: and friends. (DOM::Selection::modify): Added. (DOM::Selection::toRange): Use RangeImpl::compareBoundaryPoints instead of nodeIsBeforeNode. (DOM::Selection::caretRect): Added. Replaces getRepaintRect, but does not add slop. (DOM::Selection::caretRepaintRect): Added. Replaces getRepaintRect; still adds slop. (DOM::Selection::needsCaretRepaint): Call caretRepaintRect. (DOM::Selection::validate): Use RangeImpl::compareBoundaryPoints instead of nodeIsBeforeNode. Reimplement WORD to use new CaretPosition functions; this fixes the double-clicking problems. Change paragraph calls to use new names.
  • ForwardingHeaders/dom/dom_position.h: Removed. This was in the wrong location.
  • khtml/editing/htmlediting.cpp: Fixed include that said "dom/dom_position.h".
  • khtml/editing/htmlediting_impl.cpp: Fixed include that said "dom/dom_position.h". (khtml::TypingCommandImpl::markMisspellingsAfterTyping): Rewrote this to use the new CaretPosition functions instead of the old Position functions.
  • khtml/misc/helper.h: Added const to character pointer parameter. Also put invertedColor inside an !APPLE_CHANGES since it doesn't do us any good.
  • khtml/misc/helper.cpp: (khtml::findWordBoundary): Added const to character pointer parameter. (khtml::nextWordFromIndex): Ditto.
  • kwq/KWQTextUtilities.h: Change parameters to const.
  • kwq/KWQTextUtilities.cpp: (KWQFindWordBoundary): Change parameter to const.
  • kwq/KWQTextUtilities.mm: (KWQFindNextWordFromIndex): Change parameter to const.
  • khtml/css/cssstyleselector.cpp: Disable code that uses invertedColor when APPLE_CHANGES, since it won't work for us.
  • khtml/rendering/render_canvas.cpp: (RenderCanvas::setSelection): Added checks for selection end so we can set the selection end to nodes that are not leaf nodes and it will still work. Also took out bogus firstChild/lastChild loops for the same reason.
  • kwq/KWQKHTMLPart.h: Add "start before selection" flag to advanceToNextMisspelling. Needed to fix bug with spell checking.
  • kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::findString): Changed to use CaretPosition. (KWQKHTMLPart::advanceToNextMisspelling): Added code to handle "start before selection" flag and changed to use CaretPosition and new helper functions. (KWQKHTMLPart::markMisspellingsInSelection): More changes to use CaretPosition. (KWQKHTMLPart::updateSpellChecking): Ditto.
  • kwq/WebCoreBridge.h: Replaced WebSelectByDocument with WebSelectToDocumentBoundary. Added advanceToNextMisspellingStartingJustBeforeSelection, rangeByAlteringCurrentSelection:verticalDistance:, and alterCurrentSelection:verticalDistance:.
  • kwq/WebCoreBridge.mm: (-[WebCoreBridge advanceToNextMisspellingStartingJustBeforeSelection]): Added. (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): Added case for selecting by paragraph to save X position. (-[WebCoreBridge rangeByAlteringCurrentSelection:verticalDistance:]): Added. (-[WebCoreBridge alterCurrentSelection:verticalDistance:]): Added. (-[WebCoreBridge ensureCaretVisible]): Call caretRect instead of getRepaintRect.

WebKit:

Reviewed by Ken.

  • fixed <rdar://problem/3655360> REGRESSION (Mail): Ctrl-V emacs key binding, -pageDown: method, unimplemented (and pageUp, and selection-modifying versions)
  • fixed <rdar://problem/3792138> REGRESSION (Mail): Spell checker doesn't check current selected word
  • WebView.subproj/WebFrameViewInternal.h: Moved WebFrameViewPrivate inside the WebFrameView.m file. Removed a bunch of methods that don't need to be seen in other files, and added _verticalPageScrollDistance.
  • WebView.subproj/WebFrameViewPrivate.h: Removed. Renamed to WebFrameViewInternal.h.
  • WebView.subproj/WebFrameView.m: (-[WebFrameView _verticalKeyboardScrollDistance]): Move in the file because of internal vs. private. (-[WebFrameView _shouldDrawBorder]): Ditto. (-[WebFrameView _tile]): Ditto. (-[WebFrameView _verticalPageScrollDistance]): Added. Separate method so it can be called by the code to implement pageDown:. (-[WebFrameView _drawBorder]): Move in the file because of internal vs. private. (-[WebFrameView _goBack]): Ditto. (-[WebFrameView _goForward]): Ditto. (-[WebFrameView _scrollVerticallyBy:]): Ditto. (-[WebFrameView _scrollHorizontallyBy:]): Ditto. (-[WebFrameView _horizontalKeyboardScrollDistance]): Ditto. (-[WebFrameView _horizontalPageScrollDistance]): Added. Separate method for consistency with vertical method above. (-[WebFrameView _pageVertically:]): Moved and changed to use _verticalPageScrollDistance. (-[WebFrameView _pageHorizontally:]): Moved and changed to use _horizontalPageScrollDistance. (-[WebFrameView _scrollLineVertically:]): Move in the file because of internal vs. private. (-[WebFrameView _scrollLineHorizontally:]): Ditto. (-[WebFrameView scrollPageUp:]): Ditto. (-[WebFrameView scrollPageDown:]): Ditto. (-[WebFrameView scrollLineUp:]): Ditto. (-[WebFrameView scrollLineDown:]): Ditto. (-[WebFrameView _firstResponderIsControl]): Ditto. (-[WebFrameView keyDown:]): Changed to eliminate _pageLeft, _lineLeft, _pageRight, and _lineRight.
  • WebView.subproj/WebDataSource.m: Use WebFrameView.h instead of WebFrameViewPrivate.h.
  • WebView.subproj/WebHTMLView.m: (-[WebHTMLView _alterCurrentSelection:verticalDistance:]): Added. (-[WebHTMLView moveToBeginningOfDocument:]): Use WebSelectToDocumentBoundary. (-[WebHTMLView moveToBeginningOfDocumentAndModifySelection:]): Ditto. (-[WebHTMLView moveToEndOfDocument:]): Ditto. (-[WebHTMLView moveToEndOfDocumentAndModifySelection:]): Ditto. (-[WebHTMLView moveParagraphBackwardAndModifySelection:]): Added. (-[WebHTMLView moveParagraphForwardAndModifySelection:]): Added. (-[WebHTMLView pageUp:]): Added. (-[WebHTMLView pageDown:]): Added. (-[WebHTMLView pageUpAndModifySelection:]): Added. (-[WebHTMLView pageDownAndModifySelection:]): Added. (-[WebHTMLView showGuessPanel:]): Changed to call advanceToNextMisspellingStartingJustBeforeSelection. This fixes the problem with spell checking.
  • WebView.subproj/WebImageView.m: (-[WebImageView webView]): Changed to use _web_parentWebView. (-[WebImageView menuForEvent:]): Changed to use [self webView]. (-[WebImageView mouseDown:]): Ditto. (-[WebImageView mouseDragged:]): Ditto. (-[WebImageView draggedImage:endedAt:operation:]): Ditto.
  • WebView.subproj/WebTextView.m: (-[WebTextView _textSizeMultiplierFromWebView]): Changed to use _web_parentWebView. (-[WebTextView menuForEvent:]): Ditto. (-[WebTextView drawPageBorderWithSize:]): Ditto. (-[WebTextView knowsPageRange:]): Ditto.
  • Plugins.subproj/WebPluginDatabase.m: Updated filename of WebFrameViewInternal.h.
  • WebCoreSupport.subproj/WebBridge.m: Ditto.
  • WebKit.pbproj/project.pbxproj: Ditto.
  • WebView.subproj/WebFrame.m: Ditto.
  • WebView.subproj/WebView.m: Ditto.
  • Misc.subproj/WebNSViewExtras.m: Ditto.
11:52 AM Changeset in webkit [7607] by darin
  • 3 edits in trunk/WebCore

Reviewed by Ken.

  • cleaned up DOM::RangeImpl a little so compareBoundaryPoints can be used outside the class
  • khtml/xml/dom2_rangeimpl.h: Added const to many of the member functions and made the compareBoundaryPoints that works on parameters be a const member function.
  • khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::commonAncestorContainer): Added const. (DOM::RangeImpl::compareBoundaryPoints): Added const. (DOM::RangeImpl::boundaryPointsValid): Added const, and wrote cleaner version. (DOM::RangeImpl::insertNode): Simplified by calling containedByReadOnly. (DOM::RangeImpl::toString): Added const. (DOM::RangeImpl::toHTML): Added const. (DOM::RangeImpl::createContextualFragment): Added const. (DOM::RangeImpl::cloneRange): Added const. (DOM::RangeImpl::surroundContents): Simplified by calling containedByReadOnly.
11:51 AM Changeset in webkit [7606] by darin
  • 2 edits in trunk/WebCore

Reviewed by Ken.

  • khtml/rendering/render_replaced.cpp: (RenderWidget::setSelectionState): Added nil check for the widget.
11:50 AM Changeset in webkit [7605] by darin
  • 2 edits in trunk/WebCore

Reviewed by Ken.

  • fixed <rdar://problem/3773740> calling addEventListener on a frame that hasn't loaded yet crashes
  • khtml/ecma/kjs_window.cpp: (WindowFunc::tryCall): Add nil checks for the document. The nil check prevents the crash but there's still a bug here; I filed 3807059 about that.
11:49 AM Changeset in webkit [7604] by darin
  • 2 edits in trunk/WebCore

Reviewed by Ken.

  • fixed problem where up and down arrow keys are not preserving X position
  • khtml/khtml_part.cpp: (KHTMLPart::selectionLayoutChanged): Moved code to clear m_xPosForVerticalArrowNavigation out of here. (KHTMLPart::notifySelectionChanged): Moved it into here.
11:48 AM Changeset in webkit [7603] by darin
  • 1 edit in trunk/WebKit/Misc.subproj/WebNSViewExtras.m

Fix filename.

11:47 AM Changeset in webkit [7602] by darin
  • 3 edits in trunk/WebKit

Reviewed by Ken.

  • added helper method _web_parentWebView so fewer files need to get at WebFrame private methods
  • Misc.subproj/WebNSViewExtras.h: Added _web_parentWebView.
  • Misc.subproj/WebNSViewExtras.m: (-[NSView _web_parentWebView]): Added.
10:23 AM Changeset in webkit [7601]
  • 24 copies
    3 deletes in tags/WebKit-125~5~2

This commit was manufactured by cvs2svn to create tag
'WebKit-125~5~2'.

10:23 AM Changeset in webkit [7600] by vicki
  • 2 edits in branches/Safari-1-2-branch/WebKit
  • versioning for WebKit, WebKit-125.5.2
10:17 AM Changeset in webkit [7599]
  • 71 copies
    2 deletes in tags/WebCore-125~8~9

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

10:17 AM Changeset in webkit [7598] by vicki
  • 2 edits in branches/Safari-1-2-branch/WebCore
  • versioning for SUPanNavy, WebCore-125.8.9
10:12 AM Changeset in webkit [7597] by vicki
  • 2 edits in branches/Safari-1-2-branch/WebCore
  • rolled in the fix for 3801256

2004-09-03 Darin Adler <Darin Adler>

Reviewed by Chris.

  • fixed <rdar://problem/3410112> filename with non-ASCII name for <input type=file> should be sent in the page's encoding
  • khtml/html/html_formimpl.cpp: (DOM::HTMLFormElementImpl::formData): Encode filename using the codec rather than doing the &# dance. It turns out that Mozilla only does the &# thing under certain circumstances that are not important. Always encoding the filename is almost certainly better behavior, and will fix many serious problems for Japanese and Korean users and websites.
Note: See TracTimeline for information about the timeline view.