Chromium Code Reviews| Index: Source/core/editing/Editor.cpp |
| diff --git a/Source/core/editing/Editor.cpp b/Source/core/editing/Editor.cpp |
| index b8662e8e31bf7efe1b87c278a13d377ac59ebe3a..e0fe678a1f37604ed3a99cea9174c4d1d4367125 100644 |
| --- a/Source/core/editing/Editor.cpp |
| +++ b/Source/core/editing/Editor.cpp |
| @@ -102,14 +102,14 @@ Editor::RevealSelectionScope::~RevealSelectionScope() |
| ASSERT(m_editor->m_preventRevealSelection); |
| --m_editor->m_preventRevealSelection; |
| if (!m_editor->m_preventRevealSelection) |
| - m_editor->m_frame.selection().revealSelection(ScrollAlignment::alignToEdgeIfNeeded, RevealExtent); |
| + m_editor->m_frame->selection().revealSelection(ScrollAlignment::alignToEdgeIfNeeded, RevealExtent); |
|
haraken
2014/09/08 07:25:57
It looks better to use frame().foo than m_frame->f
sof
2014/09/08 21:17:45
Yes; switched over throughout.
|
| } |
| // When an event handler has moved the selection outside of a text control |
| // we should use the target control's selection for this editing operation. |
| VisibleSelection Editor::selectionForCommand(Event* event) |
| { |
| - VisibleSelection selection = m_frame.selection().selection(); |
| + VisibleSelection selection = m_frame->selection().selection(); |
| if (!event) |
| return selection; |
| // If the target is a text control, and the current selection is outside of its shadow tree, |
| @@ -126,10 +126,10 @@ VisibleSelection Editor::selectionForCommand(Event* event) |
| // Function considers Mac editing behavior a fallback when Page or Settings is not available. |
| EditingBehavior Editor::behavior() const |
| { |
| - if (!m_frame.settings()) |
| + if (!m_frame->settings()) |
| return EditingBehavior(EditingMacBehavior); |
| - return EditingBehavior(m_frame.settings()->editingBehaviorType()); |
| + return EditingBehavior(m_frame->settings()->editingBehaviorType()); |
| } |
| static EditorClient& emptyEditorClient() |
| @@ -140,14 +140,14 @@ static EditorClient& emptyEditorClient() |
| EditorClient& Editor::client() const |
| { |
| - if (Page* page = m_frame.page()) |
| + if (Page* page = m_frame->page()) |
| return page->editorClient(); |
| return emptyEditorClient(); |
| } |
| UndoStack* Editor::undoStack() const |
| { |
| - if (Page* page = m_frame.page()) |
| + if (Page* page = m_frame->page()) |
| return &page->undoStack(); |
| return 0; |
| } |
| @@ -179,12 +179,12 @@ bool Editor::handleTextEvent(TextEvent* event) |
| bool Editor::canEdit() const |
| { |
| - return m_frame.selection().rootEditableElement(); |
| + return m_frame->selection().rootEditableElement(); |
| } |
| bool Editor::canEditRichly() const |
| { |
| - return m_frame.selection().isContentRichlyEditable(); |
| + return m_frame->selection().isContentRichlyEditable(); |
| } |
| // WinIE uses onbeforecut and onbeforepaste to enables the cut and paste menu items. They |
| @@ -194,12 +194,12 @@ bool Editor::canEditRichly() const |
| bool Editor::canDHTMLCut() |
| { |
| - return !m_frame.selection().isInPasswordField() && !dispatchCPPEvent(EventTypeNames::beforecut, DataTransferNumb); |
| + return !m_frame->selection().isInPasswordField() && !dispatchCPPEvent(EventTypeNames::beforecut, DataTransferNumb); |
| } |
| bool Editor::canDHTMLCopy() |
| { |
| - return !m_frame.selection().isInPasswordField() && !dispatchCPPEvent(EventTypeNames::beforecopy, DataTransferNumb); |
| + return !m_frame->selection().isInPasswordField() && !dispatchCPPEvent(EventTypeNames::beforecopy, DataTransferNumb); |
| } |
| bool Editor::canDHTMLPaste() |
| @@ -231,9 +231,9 @@ static HTMLImageElement* imageElementFromImageDocument(Document* document) |
| bool Editor::canCopy() const |
| { |
| - if (imageElementFromImageDocument(m_frame.document())) |
| + if (imageElementFromImageDocument(m_frame->document())) |
| return true; |
| - FrameSelection& selection = m_frame.selection(); |
| + FrameSelection& selection = m_frame->selection(); |
| return selection.isRange() && !selection.isInPasswordField(); |
| } |
| @@ -244,7 +244,7 @@ bool Editor::canPaste() const |
| bool Editor::canDelete() const |
| { |
| - FrameSelection& selection = m_frame.selection(); |
| + FrameSelection& selection = m_frame->selection(); |
| return selection.isRange() && selection.rootEditableElement(); |
| } |
| @@ -270,19 +270,19 @@ bool Editor::canDeleteRange(Range* range) const |
| bool Editor::smartInsertDeleteEnabled() const |
| { |
| - if (Settings* settings = m_frame.settings()) |
| + if (Settings* settings = m_frame->settings()) |
| return settings->smartInsertDeleteEnabled(); |
| return false; |
| } |
| bool Editor::canSmartCopyOrDelete() const |
| { |
| - return smartInsertDeleteEnabled() && m_frame.selection().granularity() == WordGranularity; |
| + return smartInsertDeleteEnabled() && m_frame->selection().granularity() == WordGranularity; |
| } |
| bool Editor::isSelectTrailingWhitespaceEnabled() const |
| { |
| - if (Settings* settings = m_frame.settings()) |
| + if (Settings* settings = m_frame->settings()) |
| return settings->selectTrailingWhitespaceEnabled(); |
| return false; |
| } |
| @@ -292,10 +292,10 @@ bool Editor::deleteWithDirection(SelectionDirection direction, TextGranularity g |
| if (!canEdit()) |
| return false; |
| - if (m_frame.selection().isRange()) { |
| + if (m_frame->selection().isRange()) { |
| if (isTypingAction) { |
| - ASSERT(m_frame.document()); |
| - TypingCommand::deleteKeyPressed(*m_frame.document(), canSmartCopyOrDelete() ? TypingCommand::SmartDelete : 0, granularity); |
| + ASSERT(m_frame->document()); |
| + TypingCommand::deleteKeyPressed(*m_frame->document(), canSmartCopyOrDelete() ? TypingCommand::SmartDelete : 0, granularity); |
| revealSelectionAfterEditingOperation(); |
| } else { |
| if (killRing) |
| @@ -312,13 +312,13 @@ bool Editor::deleteWithDirection(SelectionDirection direction, TextGranularity g |
| switch (direction) { |
| case DirectionForward: |
| case DirectionRight: |
| - ASSERT(m_frame.document()); |
| - TypingCommand::forwardDeleteKeyPressed(*m_frame.document(), options, granularity); |
| + ASSERT(m_frame->document()); |
| + TypingCommand::forwardDeleteKeyPressed(*m_frame->document(), options, granularity); |
| break; |
| case DirectionBackward: |
| case DirectionLeft: |
| - ASSERT(m_frame.document()); |
| - TypingCommand::deleteKeyPressed(*m_frame.document(), options, granularity); |
| + ASSERT(m_frame->document()); |
| + TypingCommand::deleteKeyPressed(*m_frame->document(), options, granularity); |
| break; |
| } |
| revealSelectionAfterEditingOperation(); |
| @@ -335,11 +335,11 @@ bool Editor::deleteWithDirection(SelectionDirection direction, TextGranularity g |
| void Editor::deleteSelectionWithSmartDelete(bool smartDelete) |
| { |
| - if (m_frame.selection().isNone()) |
| + if (m_frame->selection().isNone()) |
| return; |
| - ASSERT(m_frame.document()); |
| - DeleteSelectionCommand::create(*m_frame.document(), smartDelete)->apply(); |
| + ASSERT(m_frame->document()); |
| + DeleteSelectionCommand::create(*m_frame->document(), smartDelete)->apply(); |
| } |
| void Editor::pasteAsPlainText(const String& pastingText, bool smartReplace) |
| @@ -347,7 +347,7 @@ void Editor::pasteAsPlainText(const String& pastingText, bool smartReplace) |
| Element* target = findEventTargetFromSelection(); |
| if (!target) |
| return; |
| - target->dispatchEvent(TextEvent::createForPlainTextPaste(m_frame.domWindow(), pastingText, smartReplace), IGNORE_EXCEPTION); |
| + target->dispatchEvent(TextEvent::createForPlainTextPaste(m_frame->domWindow(), pastingText, smartReplace), IGNORE_EXCEPTION); |
| } |
| void Editor::pasteAsFragment(PassRefPtrWillBeRawPtr<DocumentFragment> pastingFragment, bool smartReplace, bool matchStyle) |
| @@ -355,12 +355,12 @@ void Editor::pasteAsFragment(PassRefPtrWillBeRawPtr<DocumentFragment> pastingFra |
| Element* target = findEventTargetFromSelection(); |
| if (!target) |
| return; |
| - target->dispatchEvent(TextEvent::createForFragmentPaste(m_frame.domWindow(), pastingFragment, smartReplace, matchStyle), IGNORE_EXCEPTION); |
| + target->dispatchEvent(TextEvent::createForFragmentPaste(m_frame->domWindow(), pastingFragment, smartReplace, matchStyle), IGNORE_EXCEPTION); |
| } |
| bool Editor::tryDHTMLCopy() |
| { |
| - if (m_frame.selection().isInPasswordField()) |
| + if (m_frame->selection().isInPasswordField()) |
| return false; |
| return !dispatchCPPEvent(EventTypeNames::copy, DataTransferWritable); |
| @@ -368,7 +368,7 @@ bool Editor::tryDHTMLCopy() |
| bool Editor::tryDHTMLCut() |
| { |
| - if (m_frame.selection().isInPasswordField()) |
| + if (m_frame->selection().isInPasswordField()) |
| return false; |
| return !dispatchCPPEvent(EventTypeNames::cut, DataTransferWritable); |
| @@ -397,8 +397,8 @@ void Editor::pasteWithPasteboard(Pasteboard* pasteboard) |
| KURL url; |
| String markup = pasteboard->readHTML(url, fragmentStart, fragmentEnd); |
| if (!markup.isEmpty()) { |
| - ASSERT(m_frame.document()); |
| - fragment = createFragmentFromMarkupWithContext(*m_frame.document(), markup, fragmentStart, fragmentEnd, url, DisallowScriptingAndPluginContent); |
| + ASSERT(m_frame->document()); |
| + fragment = createFragmentFromMarkupWithContext(*m_frame->document(), markup, fragmentStart, fragmentEnd, url, DisallowScriptingAndPluginContent); |
| } |
| } |
| @@ -503,7 +503,7 @@ bool Editor::canSmartReplaceWithPasteboard(Pasteboard* pasteboard) |
| void Editor::replaceSelectionWithFragment(PassRefPtrWillBeRawPtr<DocumentFragment> fragment, bool selectReplacement, bool smartReplace, bool matchStyle) |
| { |
| - if (m_frame.selection().isNone() || !m_frame.selection().isContentEditable() || !fragment) |
| + if (m_frame->selection().isNone() || !m_frame->selection().isContentEditable() || !fragment) |
| return; |
| ReplaceSelectionCommand::CommandOptions options = ReplaceSelectionCommand::PreventNesting | ReplaceSelectionCommand::SanitizeFragment; |
| @@ -513,13 +513,13 @@ void Editor::replaceSelectionWithFragment(PassRefPtrWillBeRawPtr<DocumentFragmen |
| options |= ReplaceSelectionCommand::SmartReplace; |
| if (matchStyle) |
| options |= ReplaceSelectionCommand::MatchStyle; |
| - ASSERT(m_frame.document()); |
| - ReplaceSelectionCommand::create(*m_frame.document(), fragment, options, EditActionPaste)->apply(); |
| + ASSERT(m_frame->document()); |
| + ReplaceSelectionCommand::create(*m_frame->document(), fragment, options, EditActionPaste)->apply(); |
| revealSelectionAfterEditingOperation(); |
| - if (m_frame.selection().isInPasswordField() || !spellChecker().isContinuousSpellCheckingEnabled()) |
| + if (m_frame->selection().isInPasswordField() || !spellChecker().isContinuousSpellCheckingEnabled()) |
| return; |
| - spellChecker().chunkAndMarkAllMisspellingsAndBadGrammar(m_frame.selection().rootEditableElement()); |
| + spellChecker().chunkAndMarkAllMisspellingsAndBadGrammar(m_frame->selection().rootEditableElement()); |
| } |
| void Editor::replaceSelectionWithText(const String& text, bool selectReplacement, bool smartReplace) |
| @@ -529,7 +529,7 @@ void Editor::replaceSelectionWithText(const String& text, bool selectReplacement |
| PassRefPtrWillBeRawPtr<Range> Editor::selectedRange() |
| { |
| - return m_frame.selection().toNormalizedRange(); |
| + return m_frame->selection().toNormalizedRange(); |
| } |
| bool Editor::shouldDeleteRange(Range* range) const |
| @@ -542,15 +542,15 @@ bool Editor::shouldDeleteRange(Range* range) const |
| void Editor::notifyComponentsOnChangedSelection(const VisibleSelection& oldSelection, FrameSelection::SetSelectionOptions options) |
| { |
| - client().respondToChangedSelection(&m_frame, m_frame.selection().selectionType()); |
| + client().respondToChangedSelection(m_frame, m_frame->selection().selectionType()); |
| setStartNewKillRingSequence(true); |
| } |
| void Editor::respondToChangedContents(const VisibleSelection& endingSelection) |
| { |
| - if (m_frame.settings() && m_frame.settings()->accessibilityEnabled()) { |
| + if (m_frame->settings() && m_frame->settings()->accessibilityEnabled()) { |
| Node* node = endingSelection.start().deprecatedNode(); |
| - if (AXObjectCache* cache = m_frame.document()->existingAXObjectCache()) |
| + if (AXObjectCache* cache = m_frame->document()->existingAXObjectCache()) |
| cache->postNotification(node, AXObjectCache::AXValueChanged, false); |
| } |
| @@ -560,8 +560,8 @@ void Editor::respondToChangedContents(const VisibleSelection& endingSelection) |
| void Editor::removeFormattingAndStyle() |
| { |
| - ASSERT(m_frame.document()); |
| - RemoveFormatCommand::create(*m_frame.document())->apply(); |
| + ASSERT(m_frame->document()); |
| + RemoveFormatCommand::create(*m_frame->document())->apply(); |
| } |
| void Editor::clearLastEditCommand() |
| @@ -573,19 +573,19 @@ Element* Editor::findEventTargetFrom(const VisibleSelection& selection) const |
| { |
| Element* target = selection.start().element(); |
| if (!target) |
| - target = m_frame.document()->body(); |
| + target = m_frame->document()->body(); |
| return target; |
| } |
| Element* Editor::findEventTargetFromSelection() const |
| { |
| - return findEventTargetFrom(m_frame.selection().selection()); |
| + return findEventTargetFrom(m_frame->selection().selection()); |
| } |
| void Editor::applyStyle(StylePropertySet* style, EditAction editingAction) |
| { |
| - switch (m_frame.selection().selectionType()) { |
| + switch (m_frame->selection().selectionType()) { |
| case NoSelection: |
| // do nothing |
| break; |
| @@ -594,8 +594,8 @@ void Editor::applyStyle(StylePropertySet* style, EditAction editingAction) |
| break; |
| case RangeSelection: |
| if (style) { |
| - ASSERT(m_frame.document()); |
| - ApplyStyleCommand::create(*m_frame.document(), EditingStyle::create(style).get(), editingAction)->apply(); |
| + ASSERT(m_frame->document()); |
| + ApplyStyleCommand::create(*m_frame->document(), EditingStyle::create(style).get(), editingAction)->apply(); |
| } |
| break; |
| } |
| @@ -603,10 +603,10 @@ void Editor::applyStyle(StylePropertySet* style, EditAction editingAction) |
| void Editor::applyParagraphStyle(StylePropertySet* style, EditAction editingAction) |
| { |
| - if (m_frame.selection().isNone() || !style) |
| + if (m_frame->selection().isNone() || !style) |
| return; |
| - ASSERT(m_frame.document()); |
| - ApplyStyleCommand::create(*m_frame.document(), EditingStyle::create(style).get(), editingAction, ApplyStyleCommand::ForceBlockProperties)->apply(); |
| + ASSERT(m_frame->document()); |
| + ApplyStyleCommand::create(*m_frame->document(), EditingStyle::create(style).get(), editingAction, ApplyStyleCommand::ForceBlockProperties)->apply(); |
| } |
| void Editor::applyStyleToSelection(StylePropertySet* style, EditAction editingAction) |
| @@ -628,23 +628,23 @@ void Editor::applyParagraphStyleToSelection(StylePropertySet* style, EditAction |
| bool Editor::selectionStartHasStyle(CSSPropertyID propertyID, const String& value) const |
| { |
| return EditingStyle::create(propertyID, value)->triStateOfStyle( |
| - EditingStyle::styleAtSelectionStart(m_frame.selection().selection(), propertyID == CSSPropertyBackgroundColor).get()); |
| + EditingStyle::styleAtSelectionStart(m_frame->selection().selection(), propertyID == CSSPropertyBackgroundColor).get()); |
| } |
| TriState Editor::selectionHasStyle(CSSPropertyID propertyID, const String& value) const |
| { |
| - return EditingStyle::create(propertyID, value)->triStateOfStyle(m_frame.selection().selection()); |
| + return EditingStyle::create(propertyID, value)->triStateOfStyle(m_frame->selection().selection()); |
| } |
| String Editor::selectionStartCSSPropertyValue(CSSPropertyID propertyID) |
| { |
| - RefPtrWillBeRawPtr<EditingStyle> selectionStyle = EditingStyle::styleAtSelectionStart(m_frame.selection().selection(), |
| + RefPtrWillBeRawPtr<EditingStyle> selectionStyle = EditingStyle::styleAtSelectionStart(m_frame->selection().selection(), |
| propertyID == CSSPropertyBackgroundColor); |
| if (!selectionStyle || !selectionStyle->style()) |
| return String(); |
| if (propertyID == CSSPropertyFontSize) |
| - return String::number(selectionStyle->legacyFontSize(m_frame.document())); |
| + return String::number(selectionStyle->legacyFontSize(m_frame->document())); |
| return selectionStyle->style()->getPropertyValue(propertyID); |
| } |
| @@ -659,7 +659,7 @@ static void dispatchEditableContentChangedEvents(PassRefPtrWillBeRawPtr<Element> |
| void Editor::appliedEditing(PassRefPtrWillBeRawPtr<CompositeEditCommand> cmd) |
| { |
| EventQueueScope scope; |
| - m_frame.document()->updateLayout(); |
| + m_frame->document()->updateLayout(); |
| EditCommandComposition* composition = cmd->composition(); |
| ASSERT(composition); |
| @@ -670,7 +670,7 @@ void Editor::appliedEditing(PassRefPtrWillBeRawPtr<CompositeEditCommand> cmd) |
| changeSelectionAfterCommand(newSelection, 0); |
| if (!cmd->preservesTypingStyle()) |
| - m_frame.selection().clearTypingStyle(); |
| + m_frame->selection().clearTypingStyle(); |
| // Command will be equal to last edit command only in the case of typing |
| if (m_lastEditCommand.get() == cmd) { |
| @@ -689,13 +689,13 @@ void Editor::appliedEditing(PassRefPtrWillBeRawPtr<CompositeEditCommand> cmd) |
| void Editor::unappliedEditing(PassRefPtrWillBeRawPtr<EditCommandComposition> cmd) |
| { |
| EventQueueScope scope; |
| - m_frame.document()->updateLayout(); |
| + m_frame->document()->updateLayout(); |
| dispatchEditableContentChangedEvents(cmd->startingRootEditableElement(), cmd->endingRootEditableElement()); |
| VisibleSelection newSelection(cmd->startingSelection()); |
| newSelection.validatePositionsIfNeeded(); |
| - if (newSelection.start().document() == m_frame.document() && newSelection.end().document() == m_frame.document()) |
| + if (newSelection.start().document() == m_frame->document() && newSelection.end().document() == m_frame->document()) |
| changeSelectionAfterCommand(newSelection, FrameSelection::CloseTyping | FrameSelection::ClearTypingStyle); |
| m_lastEditCommand = nullptr; |
| @@ -707,7 +707,7 @@ void Editor::unappliedEditing(PassRefPtrWillBeRawPtr<EditCommandComposition> cmd |
| void Editor::reappliedEditing(PassRefPtrWillBeRawPtr<EditCommandComposition> cmd) |
| { |
| EventQueueScope scope; |
| - m_frame.document()->updateLayout(); |
| + m_frame->document()->updateLayout(); |
| dispatchEditableContentChangedEvents(cmd->startingRootEditableElement(), cmd->endingRootEditableElement()); |
| @@ -726,7 +726,7 @@ PassOwnPtrWillBeRawPtr<Editor> Editor::create(LocalFrame& frame) |
| } |
| Editor::Editor(LocalFrame& frame) |
| - : m_frame(frame) |
| + : m_frame(&frame) |
| , m_preventRevealSelection(0) |
| , m_shouldStartNewKillRingSequence(false) |
| // This is off by default, since most editors want this behavior (this matches IE but not FF). |
| @@ -744,14 +744,14 @@ Editor::~Editor() |
| void Editor::clear() |
| { |
| - m_frame.inputMethodController().clear(); |
| + m_frame->inputMethodController().clear(); |
| m_shouldStyleWithCSS = false; |
| m_defaultParagraphSeparator = EditorParagraphSeparatorIsDiv; |
| } |
| bool Editor::insertText(const String& text, KeyboardEvent* triggeringEvent) |
| { |
| - return m_frame.eventHandler().handleTextInputEvent(text, triggeringEvent); |
| + return m_frame->eventHandler().handleTextInputEvent(text, triggeringEvent); |
| } |
| bool Editor::insertTextWithoutSendingTextEvent(const String& text, bool selectInsertedText, TextEvent* triggeringEvent) |
| @@ -795,10 +795,10 @@ bool Editor::insertLineBreak() |
| if (!canEdit()) |
| return false; |
| - VisiblePosition caret = m_frame.selection().selection().visibleStart(); |
| + VisiblePosition caret = m_frame->selection().selection().visibleStart(); |
| bool alignToEdge = isEndOfEditableOrNonEditableContent(caret); |
| - ASSERT(m_frame.document()); |
| - TypingCommand::insertLineBreak(*m_frame.document(), 0); |
| + ASSERT(m_frame->document()); |
| + TypingCommand::insertLineBreak(*m_frame->document(), 0); |
| revealSelectionAfterEditingOperation(alignToEdge ? ScrollAlignment::alignToEdgeIfNeeded : ScrollAlignment::alignCenterIfNeeded); |
| return true; |
| @@ -812,10 +812,10 @@ bool Editor::insertParagraphSeparator() |
| if (!canEditRichly()) |
| return insertLineBreak(); |
| - VisiblePosition caret = m_frame.selection().selection().visibleStart(); |
| + VisiblePosition caret = m_frame->selection().selection().visibleStart(); |
| bool alignToEdge = isEndOfEditableOrNonEditableContent(caret); |
| - ASSERT(m_frame.document()); |
| - TypingCommand::insertParagraphSeparator(*m_frame.document(), 0); |
| + ASSERT(m_frame->document()); |
| + TypingCommand::insertParagraphSeparator(*m_frame->document(), 0); |
| revealSelectionAfterEditingOperation(alignToEdge ? ScrollAlignment::alignToEdgeIfNeeded : ScrollAlignment::alignCenterIfNeeded); |
| return true; |
| @@ -830,8 +830,8 @@ void Editor::cut() |
| RefPtrWillBeRawPtr<Range> selection = selectedRange(); |
| if (shouldDeleteRange(selection.get())) { |
| spellChecker().updateMarkersForWordsAffectedByEditing(true); |
| - String plainText = m_frame.selectedTextForClipboard(); |
| - if (enclosingTextFormControl(m_frame.selection().start())) { |
| + String plainText = m_frame->selectedTextForClipboard(); |
| + if (enclosingTextFormControl(m_frame->selection().start())) { |
| Pasteboard::generalPasteboard()->writePlainText(plainText, |
| canSmartCopyOrDelete() ? Pasteboard::CanSmartReplace : Pasteboard::CannotSmartReplace); |
| } else { |
| @@ -847,29 +847,29 @@ void Editor::copy() |
| return; // DHTML did the whole operation |
| if (!canCopy()) |
| return; |
| - if (enclosingTextFormControl(m_frame.selection().start())) { |
| - Pasteboard::generalPasteboard()->writePlainText(m_frame.selectedTextForClipboard(), |
| + if (enclosingTextFormControl(m_frame->selection().start())) { |
| + Pasteboard::generalPasteboard()->writePlainText(m_frame->selectedTextForClipboard(), |
| canSmartCopyOrDelete() ? Pasteboard::CanSmartReplace : Pasteboard::CannotSmartReplace); |
| } else { |
| - Document* document = m_frame.document(); |
| + Document* document = m_frame->document(); |
| if (HTMLImageElement* imageElement = imageElementFromImageDocument(document)) |
| writeImageNodeToPasteboard(Pasteboard::generalPasteboard(), imageElement, document->title()); |
| else |
| - writeSelectionToPasteboard(Pasteboard::generalPasteboard(), selectedRange().get(), m_frame.selectedTextForClipboard()); |
| + writeSelectionToPasteboard(Pasteboard::generalPasteboard(), selectedRange().get(), m_frame->selectedTextForClipboard()); |
| } |
| } |
| void Editor::paste() |
| { |
| - ASSERT(m_frame.document()); |
| + ASSERT(m_frame->document()); |
| if (tryDHTMLPaste(AllMimeTypes)) |
| return; // DHTML did the whole operation |
| if (!canPaste()) |
| return; |
| spellChecker().updateMarkersForWordsAffectedByEditing(false); |
| - ResourceFetcher* loader = m_frame.document()->fetcher(); |
| + ResourceFetcher* loader = m_frame->document()->fetcher(); |
| ResourceCacheValidationSuppressor validationSuppressor(loader); |
| - if (m_frame.selection().isContentRichlyEditable()) |
| + if (m_frame->selection().isContentRichlyEditable()) |
| pasteWithPasteboard(Pasteboard::generalPasteboard()); |
| else |
| pasteAsPlainTextWithPasteboard(Pasteboard::generalPasteboard()); |
| @@ -1015,7 +1015,7 @@ void Editor::revealSelectionAfterEditingOperation(const ScrollAlignment& alignme |
| if (m_preventRevealSelection) |
| return; |
| - m_frame.selection().revealSelection(alignment, revealExtentOption); |
| + m_frame->selection().revealSelection(alignment, revealExtentOption); |
| } |
| void Editor::transpose() |
| @@ -1023,7 +1023,7 @@ void Editor::transpose() |
| if (!canEdit()) |
| return; |
| - VisibleSelection selection = m_frame.selection().selection(); |
| + VisibleSelection selection = m_frame->selection().selection(); |
| if (!selection.isCaret()) |
| return; |
| @@ -1048,8 +1048,8 @@ void Editor::transpose() |
| String transposed = text.right(1) + text.left(1); |
| // Select the two characters. |
| - if (newSelection != m_frame.selection().selection()) |
| - m_frame.selection().setSelection(newSelection); |
| + if (newSelection != m_frame->selection().selection()) |
| + m_frame->selection().setSelection(newSelection); |
| // Insert the transposed characters. |
| replaceSelectionWithText(transposed, false, false); |
| @@ -1075,8 +1075,8 @@ void Editor::changeSelectionAfterCommand(const VisibleSelection& newSelection, |
| return; |
| // See <rdar://problem/5729315> Some shouldChangeSelectedDOMRange contain Ranges for selections that are no longer valid |
| - bool selectionDidNotChangeDOMPosition = newSelection == m_frame.selection().selection(); |
| - m_frame.selection().setSelection(newSelection, options); |
| + bool selectionDidNotChangeDOMPosition = newSelection == m_frame->selection().selection(); |
| + m_frame->selection().setSelection(newSelection, options); |
| // Some editing operations change the selection visually without affecting its position within the DOM. |
| // For example when you press return in the following (the caret is marked by ^): |
| @@ -1086,7 +1086,7 @@ void Editor::changeSelectionAfterCommand(const VisibleSelection& newSelection, |
| // does not call EditorClient::respondToChangedSelection(), which, on the Mac, sends selection change notifications and |
| // starts a new kill ring sequence, but we want to do these things (matches AppKit). |
| if (selectionDidNotChangeDOMPosition) |
| - client().respondToChangedSelection(&m_frame, m_frame.selection().selectionType()); |
| + client().respondToChangedSelection(m_frame, m_frame->selection().selectionType()); |
| } |
| IntRect Editor::firstRectForRange(Range* range) const |
| @@ -1121,30 +1121,30 @@ IntRect Editor::firstRectForRange(Range* range) const |
| void Editor::computeAndSetTypingStyle(StylePropertySet* style, EditAction editingAction) |
| { |
| if (!style || style->isEmpty()) { |
| - m_frame.selection().clearTypingStyle(); |
| + m_frame->selection().clearTypingStyle(); |
| return; |
| } |
| // Calculate the current typing style. |
| RefPtrWillBeRawPtr<EditingStyle> typingStyle = nullptr; |
| - if (m_frame.selection().typingStyle()) { |
| - typingStyle = m_frame.selection().typingStyle()->copy(); |
| + if (m_frame->selection().typingStyle()) { |
| + typingStyle = m_frame->selection().typingStyle()->copy(); |
| typingStyle->overrideWithStyle(style); |
| } else { |
| typingStyle = EditingStyle::create(style); |
| } |
| - typingStyle->prepareToApplyAt(m_frame.selection().selection().visibleStart().deepEquivalent(), EditingStyle::PreserveWritingDirection); |
| + typingStyle->prepareToApplyAt(m_frame->selection().selection().visibleStart().deepEquivalent(), EditingStyle::PreserveWritingDirection); |
| // Handle block styles, substracting these from the typing style. |
| RefPtrWillBeRawPtr<EditingStyle> blockStyle = typingStyle->extractAndRemoveBlockProperties(); |
| if (!blockStyle->isEmpty()) { |
| - ASSERT(m_frame.document()); |
| - ApplyStyleCommand::create(*m_frame.document(), blockStyle.get(), editingAction)->apply(); |
| + ASSERT(m_frame->document()); |
| + ApplyStyleCommand::create(*m_frame->document(), blockStyle.get(), editingAction)->apply(); |
| } |
| // Set the remaining style as the typing style. |
| - m_frame.selection().setTypingStyle(typingStyle); |
| + m_frame->selection().setTypingStyle(typingStyle); |
| } |
| bool Editor::findString(const String& target, bool forward, bool caseFlag, bool wrapFlag, bool startInSelection) |
| @@ -1155,15 +1155,15 @@ bool Editor::findString(const String& target, bool forward, bool caseFlag, bool |
| bool Editor::findString(const String& target, FindOptions options) |
| { |
| - VisibleSelection selection = m_frame.selection().selection(); |
| + VisibleSelection selection = m_frame->selection().selection(); |
| RefPtrWillBeRawPtr<Range> resultRange = rangeOfString(target, selection.firstRange().get(), options); |
| if (!resultRange) |
| return false; |
| - m_frame.selection().setSelection(VisibleSelection(resultRange.get(), DOWNSTREAM)); |
| - m_frame.selection().revealSelection(); |
| + m_frame->selection().setSelection(VisibleSelection(resultRange.get(), DOWNSTREAM)); |
| + m_frame->selection().revealSelection(); |
| return true; |
| } |
| @@ -1217,8 +1217,8 @@ PassRefPtrWillBeRawPtr<Range> Editor::rangeOfString(const String& target, Range* |
| // Start from an edge of the reference range. Which edge is used depends on whether we're searching forward or |
| // backward, and whether startInSelection is set. |
| - Position searchStart = firstPositionInNode(m_frame.document()); |
| - Position searchEnd = lastPositionInNode(m_frame.document()); |
| + Position searchStart = firstPositionInNode(m_frame->document()); |
| + Position searchEnd = lastPositionInNode(m_frame->document()); |
| bool forward = !(options & Backwards); |
| bool startInReferenceRange = referenceRange && (options & StartInSelection); |
| @@ -1243,8 +1243,8 @@ PassRefPtrWillBeRawPtr<Range> Editor::rangeOfString(const String& target, Range* |
| } |
| if (!resultRange && options & WrapAround) { |
| - searchStart = firstPositionInNode(m_frame.document()); |
| - searchEnd = lastPositionInNode(m_frame.document()); |
| + searchStart = firstPositionInNode(m_frame->document()); |
| + searchEnd = lastPositionInNode(m_frame->document()); |
| resultRange = findStringBetweenPositions(target, searchStart, searchEnd, options); |
| } |
| @@ -1257,19 +1257,19 @@ void Editor::setMarkedTextMatchesAreHighlighted(bool flag) |
| return; |
| m_areMarkedTextMatchesHighlighted = flag; |
| - m_frame.document()->markers().repaintMarkers(DocumentMarker::TextMatch); |
| + m_frame->document()->markers().repaintMarkers(DocumentMarker::TextMatch); |
| } |
| void Editor::respondToChangedSelection(const VisibleSelection& oldSelection, FrameSelection::SetSelectionOptions options) |
| { |
| spellChecker().respondToChangedSelection(oldSelection, options); |
| - m_frame.inputMethodController().cancelCompositionIfSelectionIsInvalid(); |
| + m_frame->inputMethodController().cancelCompositionIfSelectionIsInvalid(); |
| notifyComponentsOnChangedSelection(oldSelection, options); |
| } |
| SpellChecker& Editor::spellChecker() const |
| { |
| - return m_frame.spellChecker(); |
| + return m_frame->spellChecker(); |
| } |
| void Editor::toggleOverwriteModeEnabled() |
| @@ -1280,6 +1280,7 @@ void Editor::toggleOverwriteModeEnabled() |
| void Editor::trace(Visitor* visitor) |
| { |
| + visitor->trace(m_frame); |
| visitor->trace(m_lastEditCommand); |
| visitor->trace(m_mark); |
| } |