[Webkit-unassigned] [Bug 9505] New: moveParagraphContentsToNewBlockIfNecessary creates a new block outside the current position

bugzilla-daemon at opendarwin.org bugzilla-daemon at opendarwin.org
Mon Jun 19 06:33:07 PDT 2006


           Summary: moveParagraphContentsToNewBlockIfNecessary creates a new
                    block outside the current position
           Product: WebKit
           Version: 420+ (nightly)
          Platform: Macintosh
        OS/Version: Mac OS X 10.4
            Status: NEW
          Severity: normal
          Priority: P2
         Component: HTML Editing
        AssignedTo: webkit-unassigned at opendarwin.org
        ReportedBy: Graham.Dennis at gmail.com

When pasting certain HTML from Safari, moveParagraphContents creates an invalid
DIV element as the first child of a TABLE element. e.g.
<table> <div> <tbody> ... </tbody> </div> </table>

Steps to reproduce:
Do a select-all on the website http://nowataballpark.org/contact.html then
paste the result into any contentEditable div. The result will include a <div>
element within the table.

Cause: By the time the fixupNodeStyles() phase of pasting begins, the HTML just
before the table element looks like:
    <p style="color: rgb(255, 0, 0); text-align: -khtml-center; "/>
    <table border="1" bgcolor="#FFFFFF">
      <tbody style="border-spacing: 2px 2px; color: rgb(255, 0, 0); ">
When applyStyle() is called on the empty paragraph element, this eventually
calls through to moveParagraphContentsToNewBlockIfNecessary with a position of
[p, 0) (where p is the paragraph element). When the VisiblePositions are
created, because the paragraph element has no visible position, the vp's are
all within the table element, and a div element is created inside the table
element. I will attach a patch.

This patch doesn't come with any layout tests as I haven't managed to get one
working. I've tried modifying editing/pasteboard/paste-4039777-fix without any
luck. However the above-mentioned steps do replicate the bug.

Configure bugmail: http://bugzilla.opendarwin.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

More information about the webkit-unassigned mailing list