diff options
Diffstat (limited to 'chromium/third_party/WebKit/Source/core/editing/ApplyStyleCommand.h')
-rw-r--r-- | chromium/third_party/WebKit/Source/core/editing/ApplyStyleCommand.h | 53 |
1 files changed, 27 insertions, 26 deletions
diff --git a/chromium/third_party/WebKit/Source/core/editing/ApplyStyleCommand.h b/chromium/third_party/WebKit/Source/core/editing/ApplyStyleCommand.h index 363e09e505d..435b25f510e 100644 --- a/chromium/third_party/WebKit/Source/core/editing/ApplyStyleCommand.h +++ b/chromium/third_party/WebKit/Source/core/editing/ApplyStyleCommand.h @@ -41,46 +41,48 @@ enum ShouldIncludeTypingStyle { IgnoreTypingStyle }; -class ApplyStyleCommand : public CompositeEditCommand { +class ApplyStyleCommand FINAL : public CompositeEditCommand { public: enum EPropertyLevel { PropertyDefault, ForceBlockProperties }; enum InlineStyleRemovalMode { RemoveIfNeeded, RemoveAlways, RemoveNone }; enum EAddStyledElement { AddStyledElement, DoNotAddStyledElement }; typedef bool (*IsInlineElementToRemoveFunction)(const Element*); - static PassRefPtr<ApplyStyleCommand> create(Document& document, const EditingStyle* style, EditAction action = EditActionChangeAttributes, EPropertyLevel level = PropertyDefault) + static PassRefPtrWillBeRawPtr<ApplyStyleCommand> create(Document& document, const EditingStyle* style, EditAction action = EditActionChangeAttributes, EPropertyLevel level = PropertyDefault) { - return adoptRef(new ApplyStyleCommand(document, style, action, level)); + return adoptRefWillBeNoop(new ApplyStyleCommand(document, style, action, level)); } - static PassRefPtr<ApplyStyleCommand> create(Document& document, const EditingStyle* style, const Position& start, const Position& end, EditAction action = EditActionChangeAttributes, EPropertyLevel level = PropertyDefault) + static PassRefPtrWillBeRawPtr<ApplyStyleCommand> create(Document& document, const EditingStyle* style, const Position& start, const Position& end, EditAction action = EditActionChangeAttributes, EPropertyLevel level = PropertyDefault) { - return adoptRef(new ApplyStyleCommand(document, style, start, end, action, level)); + return adoptRefWillBeNoop(new ApplyStyleCommand(document, style, start, end, action, level)); } - static PassRefPtr<ApplyStyleCommand> create(PassRefPtr<Element> element, bool removeOnly = false, EditAction action = EditActionChangeAttributes) + static PassRefPtrWillBeRawPtr<ApplyStyleCommand> create(PassRefPtrWillBeRawPtr<Element> element, bool removeOnly = false, EditAction action = EditActionChangeAttributes) { - return adoptRef(new ApplyStyleCommand(element, removeOnly, action)); + return adoptRefWillBeNoop(new ApplyStyleCommand(element, removeOnly, action)); } - static PassRefPtr<ApplyStyleCommand> create(Document& document, const EditingStyle* style, IsInlineElementToRemoveFunction isInlineElementToRemoveFunction, EditAction action = EditActionChangeAttributes) + static PassRefPtrWillBeRawPtr<ApplyStyleCommand> create(Document& document, const EditingStyle* style, IsInlineElementToRemoveFunction isInlineElementToRemoveFunction, EditAction action = EditActionChangeAttributes) { - return adoptRef(new ApplyStyleCommand(document, style, isInlineElementToRemoveFunction, action)); + return adoptRefWillBeNoop(new ApplyStyleCommand(document, style, isInlineElementToRemoveFunction, action)); } + virtual void trace(Visitor*) OVERRIDE; + private: ApplyStyleCommand(Document&, const EditingStyle*, EditAction, EPropertyLevel); ApplyStyleCommand(Document&, const EditingStyle*, const Position& start, const Position& end, EditAction, EPropertyLevel); - ApplyStyleCommand(PassRefPtr<Element>, bool removeOnly, EditAction); + ApplyStyleCommand(PassRefPtrWillBeRawPtr<Element>, bool removeOnly, EditAction); ApplyStyleCommand(Document&, const EditingStyle*, bool (*isInlineElementToRemove)(const Element*), EditAction); - virtual void doApply(); - virtual EditAction editingAction() const; + virtual void doApply() OVERRIDE; + virtual EditAction editingAction() const OVERRIDE; // style-removal helpers bool isStyledInlineElementToRemove(Element*) const; bool shouldApplyInlineStyleToRun(EditingStyle*, Node* runStart, Node* pastEndNode); - void removeConflictingInlineStyleFromRun(EditingStyle*, RefPtr<Node>& runStart, RefPtr<Node>& runEnd, PassRefPtr<Node> pastEndNode); - bool removeInlineStyleFromElement(EditingStyle*, PassRefPtr<HTMLElement>, InlineStyleRemovalMode = RemoveIfNeeded, EditingStyle* extractedStyle = 0); + void removeConflictingInlineStyleFromRun(EditingStyle*, RefPtrWillBeMember<Node>& runStart, RefPtrWillBeMember<Node>& runEnd, PassRefPtrWillBeRawPtr<Node> pastEndNode); + bool removeInlineStyleFromElement(EditingStyle*, PassRefPtrWillBeRawPtr<HTMLElement>, InlineStyleRemovalMode = RemoveIfNeeded, EditingStyle* extractedStyle = 0); inline bool shouldRemoveInlineStyleFromElement(EditingStyle* style, HTMLElement* element) {return removeInlineStyleFromElement(style, element, RemoveNone);} - void replaceWithSpanOrRemoveIfWithoutAttributes(HTMLElement*&); + void replaceWithSpanOrRemoveIfWithoutAttributes(HTMLElement*); bool removeImplicitlyStyledElement(EditingStyle*, HTMLElement*, InlineStyleRemovalMode, EditingStyle* extractedStyle); bool removeCSSStyle(EditingStyle*, HTMLElement*, InlineStyleRemovalMode = RemoveIfNeeded, EditingStyle* extractedStyle = 0); HTMLElement* highestAncestorWithConflictingInlineStyle(EditingStyle*, Node*); @@ -88,18 +90,17 @@ private: void pushDownInlineStyleAroundNode(EditingStyle*, Node*); void removeInlineStyle(EditingStyle* , const Position& start, const Position& end); bool nodeFullySelected(Node*, const Position& start, const Position& end) const; - bool nodeFullyUnselected(Node*, const Position& start, const Position& end) const; // style-application helpers void applyBlockStyle(EditingStyle*); void applyRelativeFontStyleChange(EditingStyle*); void applyInlineStyle(EditingStyle*); void fixRangeAndApplyInlineStyle(EditingStyle*, const Position& start, const Position& end); - void applyInlineStyleToNodeRange(EditingStyle*, PassRefPtr<Node> startNode, PassRefPtr<Node> pastEndNode); + void applyInlineStyleToNodeRange(EditingStyle*, PassRefPtrWillBeRawPtr<Node> startNode, PassRefPtrWillBeRawPtr<Node> pastEndNode); void addBlockStyle(const StyleChange&, HTMLElement*); - void addInlineStyleIfNeeded(EditingStyle*, PassRefPtr<Node> start, PassRefPtr<Node> end, EAddStyledElement = AddStyledElement); - Position positionToComputeInlineStyleChange(PassRefPtr<Node>, RefPtr<Node>& dummyElement); - void applyInlineStyleChange(PassRefPtr<Node> startNode, PassRefPtr<Node> endNode, StyleChange&, EAddStyledElement); + void addInlineStyleIfNeeded(EditingStyle*, PassRefPtrWillBeRawPtr<Node> start, PassRefPtrWillBeRawPtr<Node> end, EAddStyledElement = AddStyledElement); + Position positionToComputeInlineStyleChange(PassRefPtrWillBeRawPtr<Node>, RefPtrWillBeMember<Node>& dummyElement); + void applyInlineStyleChange(PassRefPtrWillBeRawPtr<Node> startNode, PassRefPtrWillBeRawPtr<Node> endNode, StyleChange&, EAddStyledElement); void splitTextAtStart(const Position& start, const Position& end); void splitTextAtEnd(const Position& start, const Position& end); void splitTextElementAtStart(const Position& start, const Position& end); @@ -108,11 +109,11 @@ private: bool isValidCaretPositionInTextNode(const Position& position); bool mergeStartWithPreviousIfIdentical(const Position& start, const Position& end); bool mergeEndWithNextIfIdentical(const Position& start, const Position& end); - void cleanupUnstyledAppleStyleSpans(Node* dummySpanAncestor); + void cleanupUnstyledAppleStyleSpans(ContainerNode* dummySpanAncestor); - void surroundNodeRangeWithElement(PassRefPtr<Node> start, PassRefPtr<Node> end, PassRefPtr<Element>); + void surroundNodeRangeWithElement(PassRefPtrWillBeRawPtr<Node> start, PassRefPtrWillBeRawPtr<Node> end, PassRefPtrWillBeRawPtr<Element>); float computedFontSize(Node*); - void joinChildTextNodes(Node*, const Position& start, const Position& end); + void joinChildTextNodes(ContainerNode*, const Position& start, const Position& end); HTMLElement* splitAncestorsWithUnicodeBidi(Node*, bool before, WritingDirection allowedDirection); void removeEmbeddingUpToEnclosingBlock(Node* node, Node* unsplitAncestor); @@ -121,13 +122,13 @@ private: Position startPosition(); Position endPosition(); - RefPtr<EditingStyle> m_style; + RefPtrWillBeMember<EditingStyle> m_style; EditAction m_editingAction; EPropertyLevel m_propertyLevel; Position m_start; Position m_end; bool m_useEndingSelection; - RefPtr<Element> m_styledInlineElement; + RefPtrWillBeMember<Element> m_styledInlineElement; bool m_removeOnly; IsInlineElementToRemoveFunction m_isInlineElementToRemoveFunction; }; @@ -136,7 +137,7 @@ enum ShouldStyleAttributeBeEmpty { AllowNonEmptyStyleAttribute, StyleAttributeSh bool isEmptyFontTag(const Element*, ShouldStyleAttributeBeEmpty = StyleAttributeShouldBeEmpty); bool isLegacyAppleStyleSpan(const Node*); bool isStyleSpanOrSpanWithOnlyStyleAttribute(const Element*); -PassRefPtr<HTMLElement> createStyleSpanElement(Document&); +PassRefPtrWillBeRawPtr<HTMLElement> createStyleSpanElement(Document&); } // namespace WebCore |