Teach Editor to support more direct replacement of a Node. When using the new API "Editor::replaceNodeFromPasteboard" the intention is that the new DocumentFragment is as similar to the old Node as possible. In practice, the new DocumentFragment: 1 - Can represent a single node that's missing various attributes the original Node had. 2 - Can be an unwanted fragment of arbitrary depth when the replacement happens inside Mail.app This will fix both of those problems. <rdar://problem/16817952>
Created attachment 231320 [details] Patch v1
Attachment 231320 [details] did not pass style-queue: ERROR: Source/WebCore/editing/ReplaceSelectionCommand.cpp:941: Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side. [whitespace/operators] [4] ERROR: Source/WebCore/editing/ReplaceSelectionCommand.cpp:941: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/WebCore/dom/TextEvent.h:46: The parameter name "view" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/WebCore/dom/TextEvent.h:76: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] ERROR: Source/WebCore/dom/TextEvent.cpp:85: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] ERROR: Source/WebCore/dom/TextEvent.cpp:92: Wrong number of spaces before statement. (expected: 25) [whitespace/indent] [4] Total errors found: 6 in 10 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 231325 [details] Patch v2
Comment on attachment 231325 [details] Patch v2 View in context: https://bugs.webkit.org/attachment.cgi?id=231325&action=review Looks good to me. Please make sure all the editing tests are still passing. > Source/WebCore/editing/ReplaceSelectionCommand.h:46 > + IgnoreMailBlockquote = 1 << 6, No comma at the end of the last one
(In reply to comment #4) > (From update of attachment 231325 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=231325&action=review > > Looks good to me. Please make sure all the editing tests are still passing. Doing that now! > > Source/WebCore/editing/ReplaceSelectionCommand.h:46 > > + IgnoreMailBlockquote = 1 << 6, > > No comma at the end of the last one Actually it's preferred (if not yet in the style guidelines) to include a comma on the last value. That was when a new value is added, the patch consists only of one addition instead of one subtraction and two additions. Thanks for the review!
EWS was happy, and no changes locally. http://trac.webkit.org/changeset/168650
Followup - http://trac.webkit.org/changeset/168658