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.
Created attachment 231320 [details]
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] 
ERROR: Source/WebCore/editing/ReplaceSelectionCommand.cpp:941: Multi line control clauses should use braces. [whitespace/braces] 
ERROR: Source/WebCore/dom/TextEvent.h:46: The parameter name "view" adds no information, so it should be removed. [readability/parameter_name] 
ERROR: Source/WebCore/dom/TextEvent.h:76: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] 
ERROR: Source/WebCore/dom/TextEvent.cpp:85: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] 
ERROR: Source/WebCore/dom/TextEvent.cpp:92: Wrong number of spaces before statement. (expected: 25) [whitespace/indent] 
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]
Comment on 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.
> + 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.
Followup - http://trac.webkit.org/changeset/168658