Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Side by Side Diff: Source/core/editing/commands/ReplaceSelectionCommand.cpp

Issue 1320573003: Rename isBlock() to isEnclosingBlock() in EditingUtilities (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: 2015-08-26T21:48:03 Rebase Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2005, 2006, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2005, 2006, 2008 Apple Inc. All rights reserved.
3 * Copyright (C) 2009, 2010, 2011 Google Inc. All rights reserved. 3 * Copyright (C) 2009, 2010, 2011 Google Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 460 matching lines...) Expand 10 before | Expand all | Expand 10 after
471 Node* destinationNode = destination.deepEquivalent().anchorNode(); 471 Node* destinationNode = destination.deepEquivalent().anchorNode();
472 Element* sourceBlock = enclosingBlock(sourceNode); 472 Element* sourceBlock = enclosingBlock(sourceNode);
473 Element* destinationBlock = enclosingBlock(destinationNode); 473 Element* destinationBlock = enclosingBlock(destinationNode);
474 return !enclosingNodeOfType(source.deepEquivalent(), &isMailPasteAsQuotation HTMLBlockQuoteElement) 474 return !enclosingNodeOfType(source.deepEquivalent(), &isMailPasteAsQuotation HTMLBlockQuoteElement)
475 && sourceBlock && (!sourceBlock->hasTagName(blockquoteTag) || isMailHTML BlockquoteElement(sourceBlock)) 475 && sourceBlock && (!sourceBlock->hasTagName(blockquoteTag) || isMailHTML BlockquoteElement(sourceBlock))
476 && enclosingListChild(sourceBlock) == enclosingListChild(destinationNode ) 476 && enclosingListChild(sourceBlock) == enclosingListChild(destinationNode )
477 && enclosingTableCell(source.deepEquivalent()) == enclosingTableCell(des tination.deepEquivalent()) 477 && enclosingTableCell(source.deepEquivalent()) == enclosingTableCell(des tination.deepEquivalent())
478 && (!isHTMLHeaderElement(sourceBlock) || haveSameTagName(sourceBlock, de stinationBlock)) 478 && (!isHTMLHeaderElement(sourceBlock) || haveSameTagName(sourceBlock, de stinationBlock))
479 // Don't merge to or from a position before or after a block because it would 479 // Don't merge to or from a position before or after a block because it would
480 // be a no-op and cause infinite recursion. 480 // be a no-op and cause infinite recursion.
481 && !isBlock(sourceNode) && !isBlock(destinationNode); 481 && !isEnclosingBlock(sourceNode) && !isEnclosingBlock(destinationNode);
482 } 482 }
483 483
484 // Style rules that match just inserted elements could change their appearance, like 484 // Style rules that match just inserted elements could change their appearance, like
485 // a div inserted into a document with div { display:inline; }. 485 // a div inserted into a document with div { display:inline; }.
486 void ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline(Insert edNodes& insertedNodes) 486 void ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline(Insert edNodes& insertedNodes)
487 { 487 {
488 RefPtrWillBeRawPtr<Node> pastEndNode = insertedNodes.pastLastLeaf(); 488 RefPtrWillBeRawPtr<Node> pastEndNode = insertedNodes.pastLastLeaf();
489 RefPtrWillBeRawPtr<Node> next = nullptr; 489 RefPtrWillBeRawPtr<Node> next = nullptr;
490 for (RefPtrWillBeRawPtr<Node> node = insertedNodes.firstNodeInserted(); node && node != pastEndNode; node = next) { 490 for (RefPtrWillBeRawPtr<Node> node = insertedNodes.firstNodeInserted(); node && node != pastEndNode; node = next) {
491 // FIXME: <rdar://problem/5371536> Style rules that match pasted content can change it's appearance 491 // FIXME: <rdar://problem/5371536> Style rules that match pasted content can change it's appearance
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
562 continue; 562 continue;
563 } 563 }
564 // There are other styles that style rules can give to style spans, 564 // There are other styles that style rules can give to style spans,
565 // but these are the two important ones because they'll prevent 565 // but these are the two important ones because they'll prevent
566 // inserted content from appearing in the right paragraph. 566 // inserted content from appearing in the right paragraph.
567 // FIXME: Hyatt is concerned that selectively using display:inline w ill give inconsistent 567 // FIXME: Hyatt is concerned that selectively using display:inline w ill give inconsistent
568 // results. We already know one issue because td elements ignore the ir display property 568 // results. We already know one issue because td elements ignore the ir display property
569 // in quirks mode (which Mail.app is always in). We should look for an alternative. 569 // in quirks mode (which Mail.app is always in). We should look for an alternative.
570 570
571 // Mutate using the CSSOM wrapper so we get the same event behavior as a script. 571 // Mutate using the CSSOM wrapper so we get the same event behavior as a script.
572 if (isBlock(element)) 572 if (isEnclosingBlock(element))
573 element->style()->setPropertyInternal(CSSPropertyDisplay, "inlin e", false, IGNORE_EXCEPTION); 573 element->style()->setPropertyInternal(CSSPropertyDisplay, "inlin e", false, IGNORE_EXCEPTION);
574 if (element->layoutObject() && element->layoutObject()->style()->isF loating()) 574 if (element->layoutObject() && element->layoutObject()->style()->isF loating())
575 element->style()->setPropertyInternal(CSSPropertyFloat, "none", false, IGNORE_EXCEPTION); 575 element->style()->setPropertyInternal(CSSPropertyFloat, "none", false, IGNORE_EXCEPTION);
576 } 576 }
577 } 577 }
578 } 578 }
579 579
580 static bool isProhibitedParagraphChild(const AtomicString& name) 580 static bool isProhibitedParagraphChild(const AtomicString& name)
581 { 581 {
582 // https://dvcs.w3.org/hg/editing/raw-file/57abe6d3cb60/editing.html#prohibi ted-paragraph-child 582 // https://dvcs.w3.org/hg/editing/raw-file/57abe6d3cb60/editing.html#prohibi ted-paragraph-child
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
878 return node; 878 return node;
879 } 879 }
880 node = parent; 880 node = parent;
881 } 881 }
882 return node; 882 return node;
883 } 883 }
884 884
885 static bool isInlineHTMLElementWithStyle(const Node* node) 885 static bool isInlineHTMLElementWithStyle(const Node* node)
886 { 886 {
887 // We don't want to skip over any block elements. 887 // We don't want to skip over any block elements.
888 if (isBlock(node)) 888 if (isEnclosingBlock(node))
889 return false; 889 return false;
890 890
891 if (!node->isHTMLElement()) 891 if (!node->isHTMLElement())
892 return false; 892 return false;
893 893
894 // We can skip over elements whose class attribute is 894 // We can skip over elements whose class attribute is
895 // one of our internal classes. 895 // one of our internal classes.
896 const HTMLElement* element = toHTMLElement(node); 896 const HTMLElement* element = toHTMLElement(node);
897 const AtomicString& classAttributeValue = element->getAttribute(classAttr); 897 const AtomicString& classAttributeValue = element->getAttribute(classAttr);
898 if (classAttributeValue == AppleTabSpanClass) { 898 if (classAttributeValue == AppleTabSpanClass) {
(...skipping 650 matching lines...) Expand 10 before | Expand all | Expand 10 after
1549 DEFINE_TRACE(ReplaceSelectionCommand) 1549 DEFINE_TRACE(ReplaceSelectionCommand)
1550 { 1550 {
1551 visitor->trace(m_startOfInsertedContent); 1551 visitor->trace(m_startOfInsertedContent);
1552 visitor->trace(m_endOfInsertedContent); 1552 visitor->trace(m_endOfInsertedContent);
1553 visitor->trace(m_insertionStyle); 1553 visitor->trace(m_insertionStyle);
1554 visitor->trace(m_documentFragment); 1554 visitor->trace(m_documentFragment);
1555 CompositeEditCommand::trace(visitor); 1555 CompositeEditCommand::trace(visitor);
1556 } 1556 }
1557 1557
1558 } // namespace blink 1558 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/editing/commands/InsertListCommand.cpp ('k') | Source/core/editing/serializers/StyledMarkupSerializer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698