<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[150140] trunk/Source</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/150140">150140</a></dd>
<dt>Author</dt> <dd>andersca@apple.com</dd>
<dt>Date</dt> <dd>2013-05-15 12:47:47 -0700 (Wed, 15 May 2013)</dd>
</dl>

<h3>Log Message</h3>
<pre>Frame::editor() should return a reference
https://bugs.webkit.org/show_bug.cgi?id=116037

Reviewed by Darin Adler.

Source/WebCore:

A frame's editor can never be null. Change Frame::editor() to return a reference to reflect this.
Also, make Frame::m_editor a const member variable so nobody will accidentally set it to null.

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::hasMisspelling):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(AXAttributeStringSetSpelling):
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::cloneChildNodes):
* dom/Document.cpp:
(WebCore::acceptsEditingFocus):
(WebCore::Document::setFocusedNode):
(WebCore::command):
* editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::timerFired):
(WebCore::AlternativeTextController::applyDictationAlternative):
* editing/CompositeEditCommand.cpp:
(WebCore::EditCommandComposition::unapply):
(WebCore::EditCommandComposition::reapply):
(WebCore::CompositeEditCommand::apply):
(WebCore::CompositeEditCommand::moveParagraphs):
* editing/DeleteButton.cpp:
(WebCore::DeleteButton::defaultEventHandler):
* editing/DeleteButtonController.cpp:
(WebCore::DeleteButtonController::show):
* editing/DeleteButtonController.h:
(WebCore::DeleteButtonControllerDisableScope::DeleteButtonControllerDisableScope):
(WebCore::DeleteButtonControllerDisableScope::~DeleteButtonControllerDisableScope):
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::mergeParagraphs):
(WebCore::DeleteSelectionCommand::doApply):
* editing/EditCommand.cpp:
(WebCore::EditCommand::EditCommand):
* editing/EditingStyle.cpp:
(WebCore::StyleChange::StyleChange):
* editing/Editor.cpp:
(WebCore::Editor::markMisspellingsAfterTypingToWord):
* editing/EditorCommand.cpp:
(WebCore::applyCommandToFrame):
(WebCore::executeToggleStyle):
(WebCore::executeApplyParagraphStyle):
(WebCore::expandSelectionToGranularity):
(WebCore::stateStyle):
(WebCore::valueStyle):
(WebCore::executeCopy):
(WebCore::executeCut):
(WebCore::executeDefaultParagraphSeparator):
(WebCore::executeDelete):
(WebCore::executeDeleteBackward):
(WebCore::executeDeleteBackwardByDecomposingPreviousCharacter):
(WebCore::executeDeleteForward):
(WebCore::executeDeleteToBeginningOfLine):
(WebCore::executeDeleteToBeginningOfParagraph):
(WebCore::executeDeleteToEndOfLine):
(WebCore::executeDeleteToEndOfParagraph):
(WebCore::executeDeleteToMark):
(WebCore::executeDeleteWordBackward):
(WebCore::executeDeleteWordForward):
(WebCore::executeFindString):
(WebCore::executeForwardDelete):
(WebCore::executeIgnoreSpelling):
(WebCore::executeInsertNewline):
(WebCore::executeMakeTextWritingDirectionLeftToRight):
(WebCore::executeMakeTextWritingDirectionNatural):
(WebCore::executeMakeTextWritingDirectionRightToLeft):
(WebCore::executeToggleOverwrite):
(WebCore::executePaste):
(WebCore::executePasteGlobalSelection):
(WebCore::executePasteAndMatchStyle):
(WebCore::executePasteAsPlainText):
(WebCore::executeRedo):
(WebCore::executeRemoveFormat):
(WebCore::executeSelectToMark):
(WebCore::executeSetMark):
(WebCore::executeStyleWithCSS):
(WebCore::executeUseCSS):
(WebCore::executeSwapWithMark):
(WebCore::executeTakeFindStringFromSelection):
(WebCore::executeTranspose):
(WebCore::executeUndo):
(WebCore::executeYank):
(WebCore::executeYankAndSelect):
(WebCore::supportedCopyCut):
(WebCore::supportedPaste):
(WebCore::enabledVisibleSelection):
(WebCore::enabledVisibleSelectionAndMark):
(WebCore::enableCaretInEditableText):
(WebCore::enabledCopy):
(WebCore::enabledCut):
(WebCore::enabledInEditableText):
(WebCore::enabledDelete):
(WebCore::enabledPaste):
(WebCore::enabledRedo):
(WebCore::enabledTakeFindStringFromSelection):
(WebCore::enabledUndo):
(WebCore::stateOrderedList):
(WebCore::stateStyleWithCSS):
(WebCore::stateUnorderedList):
(WebCore::valueDefaultParagraphSeparator):
* editing/FrameSelection.cpp:
(WebCore::shouldAlwaysUseDirectionalSelection):
(WebCore::FrameSelection::setSelection):
(WebCore::FrameSelection::nextWordPositionForPlatform):
(WebCore::FrameSelection::modifyMovingRight):
(WebCore::FrameSelection::modifyMovingLeft):
(WebCore::FrameSelection::modify):
(WebCore::shouldStopBlinkingDueToTypingCommand):
(WebCore::FrameSelection::shouldDeleteSelection):
(WebCore::FrameSelection::shouldChangeSelection):
* editing/InsertTextCommand.cpp:
(WebCore::InsertTextCommand::doApply):
* editing/SpellChecker.cpp:
(WebCore::SpellChecker::didCheck):
* editing/SpellingCorrectionCommand.cpp:
* editing/TypingCommand.cpp:
(WebCore::TypingCommand::insertText):
(WebCore::TypingCommand::lastTypingCommandIfStillOpenForTyping):
(WebCore::TypingCommand::markMisspellingsAfterTyping):
(WebCore::TypingCommand::typingAddedToOpenCommand):
(WebCore::TypingCommand::deleteKeyPressed):
(WebCore::TypingCommand::forwardDeleteKeyPressed):
* editing/htmlediting.cpp:
(WebCore::createDefaultParagraphElement):
* editing/mac/EditorMac.mm:
(WebCore::Editor::pasteWithPasteboard):
* editing/markup.cpp:
(WebCore::createMarkup):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::endEditing):
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::subtreeHasChanged):
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::handleKeydownEvent):
(WebCore::TextFieldInputType::didSetValueByUserEdit):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::closeURL):
(WebCore::FrameLoader::didOpenURL):
(WebCore::FrameLoader::clear):
* page/ContextMenuController.cpp:
(WebCore::insertUnicodeCharacter):
(WebCore::ContextMenuController::contextMenuItemSelected):
(WebCore::ContextMenuController::populate):
(WebCore::ContextMenuController::checkOrEnableIfNeeded):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::find):
* page/DragController.cpp:
(WebCore::DragController::dispatchTextInputEventFor):
(WebCore::DragController::concludeEditDrag):
(WebCore::DragController::startDrag):
* page/EventHandler.cpp:
(WebCore::EventHandler::selectClosestWordFromMouseEvent):
(WebCore::EventHandler::handleMousePressEventSingleClick):
(WebCore::EventHandler::handlePasteGlobalSelection):
(WebCore::EventHandler::sendContextMenuEvent):
(WebCore::EventHandler::sendContextMenuEventForKey):
(WebCore::EventHandler::keyEvent):
(WebCore::EventHandler::defaultKeyboardEventHandler):
(WebCore::EventHandler::defaultTextInputEventHandler):
(WebCore::EventHandler::defaultBackspaceEventHandler):
* page/FocusController.cpp:
(WebCore::relinquishesEditingFocus):
* page/Frame.cpp:
(WebCore::Frame::rangeForPoint):
* page/Frame.h:
(Frame):
(WebCore::Frame::editor):
* page/Page.cpp:
(WebCore::Page::findString):
(WebCore::Page::findStringMatchingRanges):
(WebCore::Page::rangeOfString):
(WebCore::Page::markAllMatchesForText):
(WebCore::Page::setDeviceScaleFactor):
* platform/mac/ClipboardMac.mm:
(WebCore::ClipboardMac::writeRange):
* platform/mac/DragDataMac.mm:
(WebCore::DragData::asURL):
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::getStringSelection):
(WebCore::Pasteboard::getDataSelection):
(WebCore::Pasteboard::writeSelectionForTypes):
(WebCore::writeURLForTypes):
(WebCore::Pasteboard::plainText):
(WebCore::documentFragmentWithRTF):
(WebCore::Pasteboard::documentFragment):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::dictationAlternatives):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::paintTextMatchMarker):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::positionForPointWithInlineChildren):
* testing/Internals.cpp:
(WebCore::spellchecker):
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::hasSpellingMarker):
(WebCore::Internals::hasAutocorrectedMarker):
(WebCore::Internals::setContinuousSpellCheckingEnabled):
(WebCore::Internals::setAutomaticQuoteSubstitutionEnabled):
(WebCore::Internals::setAutomaticLinkDetectionEnabled):
(WebCore::Internals::setAutomaticDashSubstitutionEnabled):
(WebCore::Internals::setAutomaticTextReplacementEnabled):
(WebCore::Internals::setAutomaticSpellingCorrectionEnabled):
(WebCore::Internals::isOverwriteModeEnabled):
(WebCore::Internals::toggleOverwriteModeEnabled):
(WebCore::Internals::hasGrammarMarker):

Source/WebKit/blackberry:

* WebCoreSupport/EditorClientBlackBerry.cpp:
(WebCore::EditorClientBlackBerry::shouldSpellCheckFocusedField):
(WebCore::EditorClientBlackBerry::handleKeyboardEvent):
* WebKitSupport/DOMSupport.cpp:
(BlackBerry::WebKit::DOMSupport::elementHasContinuousSpellCheckingEnabled):
* WebKitSupport/InPageSearchManager.cpp:
(BlackBerry::WebKit::InPageSearchManager::findAndMarkText):
(BlackBerry::WebKit::InPageSearchManager::scopeStringMatches):
* WebKitSupport/SelectionHandler.cpp:
(BlackBerry::WebKit::SelectionHandler::selectedText):

Source/WebKit/efl:

* WebCoreSupport/DumpRenderTreeSupportEfl.cpp:
(DumpRenderTreeSupportEfl::executeCoreCommandByName):
(DumpRenderTreeSupportEfl::isCommandEnabled):
* WebCoreSupport/EditorClientEfl.cpp:
(WebCore::EditorClientEfl::respondToChangedSelection):
(WebCore::EditorClientEfl::handleEditingKeyboardEvent):
* ewk/ewk_frame.cpp:
(ewk_frame_editable_set):
(ewk_frame_selection_get):
(ewk_frame_text_search):
(ewk_frame_text_matches_mark):
(ewk_frame_text_matches_highlight_set):
(ewk_frame_text_matches_highlight_get):
* ewk/ewk_view.cpp:
(ewk_view_selection_get):
(ewk_view_editor_command_execute):

Source/WebKit/gtk:

* WebCoreSupport/ChromeClientGtk.cpp:
(WebKit::ChromeClient::paint):
* WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
(DumpRenderTreeSupportGtk::executeCoreCommandByName):
(DumpRenderTreeSupportGtk::isCommandEnabled):
* WebCoreSupport/EditorClientGtk.cpp:
(WebKit::EditorClient::respondToChangedSelection):
(WebKit::EditorClient::executePendingEditorCommands):
(WebKit::EditorClient::handleKeyboardEvent):
* WebCoreSupport/WebViewInputMethodFilter.cpp:
(WebKit::WebViewInputMethodFilter::canEdit):
(WebKit::WebViewInputMethodFilter::confirmCompositionText):
(WebKit::WebViewInputMethodFilter::confirmCurrentComposition):
(WebKit::WebViewInputMethodFilter::cancelCurrentComposition):
(WebKit::WebViewInputMethodFilter::setPreedit):
* webkit/webkitwebframe.cpp:
(webkit_web_frame_replace_selection):
* webkit/webkitwebview.cpp:
(getLocationForKeyboardGeneratedContextMenu):
(webkit_web_view_focus_in_event):
(webkit_web_view_real_select_all):
(webkit_web_view_real_cut_clipboard):
(webkit_web_view_real_copy_clipboard):
(webkit_web_view_real_undo):
(webkit_web_view_real_redo):
(webkit_web_view_real_paste_clipboard):
(webkit_web_view_set_highlight_text_matches):
(webkit_web_view_can_cut_clipboard):
(webkit_web_view_can_copy_clipboard):
(webkit_web_view_can_paste_clipboard):
(webkit_web_view_delete_selection):
(webkit_web_view_set_editable):
(webkit_web_view_can_undo):
(webkit_web_view_can_redo):

Source/WebKit/mac:

* WebView/WebFrame.mm:
(-[WebFrame _selectedString]):
(-[WebFrame _firstRectForDOMRange:]):
(-[WebFrame _markDOMRange]):
(-[WebFrame _insertParagraphSeparatorInQuotedContent]):
(-[WebFrame _setTypingStyle:withUndoAction:]):
(-[WebFrame _replaceSelectionWithFragment:selectReplacement:smartReplace:matchStyle:]):
* WebView/WebHTMLRepresentation.mm:
(-[WebHTMLRepresentation finishedLoadingWithDataSource:]):
* WebView/WebHTMLView.mm:
(-[WebHTMLView _pasteWithPasteboard:allowPlainText:]):
(-[WebHTMLView _shouldDeleteRange:]):
(-[WebHTMLView _canEdit]):
(-[WebHTMLView _canEditRichly]):
(-[WebHTMLView _insertOrderedList]):
(-[WebHTMLView _insertUnorderedList]):
(-[WebHTMLView _canIncreaseSelectionListLevel]):
(-[WebHTMLView _canDecreaseSelectionListLevel]):
(-[WebHTMLView _increaseSelectionListLevel]):
(-[WebHTMLView _increaseSelectionListLevelOrdered]):
(-[WebHTMLView _increaseSelectionListLevelUnordered]):
(-[WebHTMLView _decreaseSelectionListLevel]):
(-[WebHTMLView Editor::coreCommandBySelector:]):
(-[WebHTMLView Editor::coreCommandByName:]):
(-[WebHTMLView validateUserInterfaceItemWithoutDelegate:]):
(-[WebHTMLView becomeFirstResponder]):
(-[WebHTMLView _selectionStartFontAttributesAsRTF]):
(-[WebHTMLView _applyStyleToSelection:withUndoAction:]):
(-[WebHTMLView _changeCSSColorUsingSelector:inRange:]):
(-[WebHTMLView checkSpelling:]):
(-[WebHTMLView showGuessPanel:]):
(-[WebHTMLView toggleBaseWritingDirection:]):
(-[WebHTMLView changeBaseWritingDirection:]):
(-[WebHTMLView _changeBaseWritingDirectionTo:]):
(-[WebHTMLView _updateFontPanel]):
(-[WebHTMLView markedRange]):
(-[WebHTMLView hasMarkedText]):
(-[WebHTMLView unmarkText]):
(-[WebHTMLView setMarkedText:selectedRange:]):
(-[WebHTMLView doCommandBySelector:]):
(-[WebHTMLView insertText:]):
(-[WebHTMLView _updateSelectionForInputManager]):
(-[WebHTMLView countMatchesForText:inDOMRange:options:limit:markMatches:]):
(-[WebHTMLView setMarkedTextMatchesAreHighlighted:]):
(-[WebHTMLView markedTextMatchesAreHighlighted]):
(-[WebHTMLView _findString:options:]):
* WebView/WebView.mm:
(-[WebView _executeCoreCommandByName:value:]):
(-[WebView editableDOMRangeForPoint:]):
(-[WebView setEditable:]):
(-[WebView deleteSelection]):
(-[WebView applyStyle:]):
(-[WebView typingAttributes]):
(-[WebView _simplifyMarkup:endNode:]):
(-[WebView handleAcceptedAlternativeText:]):

Source/WebKit/qt:

* WebCoreSupport/DumpRenderTreeSupportQt.cpp:
(DumpRenderTreeSupportQt::executeCoreCommandByName):
(DumpRenderTreeSupportQt::isCommandEnabled):
(DumpRenderTreeSupportQt::firstRectForCharacterRange):
* WebCoreSupport/EditorClientQt.cpp:
(WebCore::EditorClientQt::respondToChangedSelection):
(WebCore::EditorClientQt::registerUndoStep):
(WebCore::EditorClientQt::handleKeyboardEvent):
* WebCoreSupport/QWebPageAdapter.cpp:
(QWebPageAdapter::selectedText):
(QWebPageAdapter::selectedHtml):
(QWebPageAdapter::setContentEditable):

Source/WebKit/win:

* WebCoreSupport/WebContextMenuClient.cpp:
(WebContextMenuClient::searchWithGoogle):
* WebFrame.cpp:
(WebFrame::hasSpellingMarker):
(WebFrame::setTextDirection):
(WebFrame::selectedString):
(WebFrame::selectAll):
* WebView.cpp:
(WebView::execCommand):
(WebView::handleEditingKeyboardEvent):
(WebView::executeCoreCommandByName):
(WebView::selectedText):
(WebView::deleteEnabled):
(WebView::editingEnabled):
(WebView::replaceSelectionWithText):
(WebView::copy):
(WebView::cut):
(WebView::paste):
(WebView::copyURL):
(WebView::delete_):
(WebView::checkSpelling):
(WebView::showGuessPanel):
(WebView::clearUndoRedoOperations):
(WebView::prepareCandidateWindow):
(WebView::resetIME):
(WebView::updateSelectionForIME):
(WebView::onIMEComposition):
(WebView::onIMEEndComposition):
(WebView::onIMERequestCharPosition):
(WebView::onIMERequest):
(WebView::setCompositionForTesting):
(WebView::hasCompositionForTesting):
(WebView::confirmCompositionForTesting):
(WebView::compositionRangeForTesting):
(WebView::firstRectForCharacterRangeForTesting):
(WebView::selectedRangeForTesting):

Source/WebKit/wince:

* WebCoreSupport/EditorClientWinCE.cpp:
(WebKit::EditorClientWinCE::handleEditingKeyboardEvent):

Source/WebKit2:

* WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
(WebKit::WebContextMenuClient::searchWithGoogle):
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::updateGlobalSelection):
* WebProcess/WebCoreSupport/efl/WebEditorClientEfl.cpp:
(WebKit::WebEditorClient::handleInputMethodKeydown):
* WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
(WebKit::WebEditorClient::executePendingEditorCommands):
(WebKit::WebEditorClient::handleKeyboardEvent):
* WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
(WebKit::WebContextMenuClient::searchWithGoogle):
(WebKit::WebContextMenuClient::searchWithSpotlight):
* WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
(WebKit::changeWordCase):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::selectionAsString):
(WebKit::WebFrame::setTextDirection):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::editorState):
(WebKit::WebPage::executeEditingCommand):
(WebKit::WebPage::isEditingCommandEnabled):
(WebKit::WebPage::validateCommand):
(WebKit::WebPage::handleEditingKeyboardEvent):
(WebKit::WebPage::advanceToNextMisspelling):
(WebKit::WebPage::uppercaseWord):
(WebKit::WebPage::lowercaseWord):
(WebKit::WebPage::capitalizeWord):
(WebKit::WebPage::replaceSelectionWithText):
(WebKit::WebPage::handleAlternativeTextUIResult):
(WebKit::WebPage::setCompositionForTesting):
(WebKit::WebPage::hasCompositionForTesting):
(WebKit::WebPage::confirmCompositionForTesting):
(WebKit::WebPage::setComposition):
(WebKit::WebPage::cancelComposition):
* WebProcess/WebPage/efl/WebPageEfl.cpp:
(WebKit::WebPage::confirmComposition):
(WebKit::WebPage::setComposition):
(WebKit::WebPage::cancelComposition):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::executeKeypressCommandsInternal):
(WebKit::WebPage::handleEditingKeyboardEvent):
(WebKit::WebPage::setComposition):
(WebKit::WebPage::confirmComposition):
(WebKit::WebPage::cancelComposition):
(WebKit::WebPage::insertText):
(WebKit::WebPage::insertDictatedText):
(WebKit::WebPage::getMarkedRange):
(WebKit::WebPage::firstRectForCharacterRange):
(WebKit::WebPage::readSelectionFromPasteboard):
(WebKit::WebPage::getStringSelectionForPasteboard):
(WebKit::WebPage::getDataSelectionForPasteboard):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityObjectcpp">trunk/Source/WebCore/accessibility/AccessibilityObject.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityatkWebKitAccessibleInterfaceEditableTextcpp">trunk/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceEditableText.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilitymacWebAccessibilityObjectWrapperMacmm">trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm</a></li>
<li><a href="#trunkSourceWebCoredomClipboardcpp">trunk/Source/WebCore/dom/Clipboard.cpp</a></li>
<li><a href="#trunkSourceWebCoredomContainerNodecpp">trunk/Source/WebCore/dom/ContainerNode.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumentcpp">trunk/Source/WebCore/dom/Document.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingAlternativeTextControllercpp">trunk/Source/WebCore/editing/AlternativeTextController.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingCompositeEditCommandcpp">trunk/Source/WebCore/editing/CompositeEditCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingDeleteButtoncpp">trunk/Source/WebCore/editing/DeleteButton.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingDeleteButtonControllercpp">trunk/Source/WebCore/editing/DeleteButtonController.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingDeleteButtonControllerh">trunk/Source/WebCore/editing/DeleteButtonController.h</a></li>
<li><a href="#trunkSourceWebCoreeditingDeleteSelectionCommandcpp">trunk/Source/WebCore/editing/DeleteSelectionCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingEditCommandcpp">trunk/Source/WebCore/editing/EditCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingEditingStylecpp">trunk/Source/WebCore/editing/EditingStyle.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingEditorcpp">trunk/Source/WebCore/editing/Editor.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingEditorCommandcpp">trunk/Source/WebCore/editing/EditorCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingFrameSelectioncpp">trunk/Source/WebCore/editing/FrameSelection.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingInsertTextCommandcpp">trunk/Source/WebCore/editing/InsertTextCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingSpellCheckercpp">trunk/Source/WebCore/editing/SpellChecker.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingSpellingCorrectionCommandcpp">trunk/Source/WebCore/editing/SpellingCorrectionCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingTypingCommandcpp">trunk/Source/WebCore/editing/TypingCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditinghtmleditingcpp">trunk/Source/WebCore/editing/htmlediting.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingmacEditorMacmm">trunk/Source/WebCore/editing/mac/EditorMac.mm</a></li>
<li><a href="#trunkSourceWebCoreeditingmarkupcpp">trunk/Source/WebCore/editing/markup.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLInputElementcpp">trunk/Source/WebCore/html/HTMLInputElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTextAreaElementcpp">trunk/Source/WebCore/html/HTMLTextAreaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlTextFieldInputTypecpp">trunk/Source/WebCore/html/TextFieldInputType.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderFrameLoadercpp">trunk/Source/WebCore/loader/FrameLoader.cpp</a></li>
<li><a href="#trunkSourceWebCorepageContextMenuControllercpp">trunk/Source/WebCore/page/ContextMenuController.cpp</a></li>
<li><a href="#trunkSourceWebCorepageDOMWindowcpp">trunk/Source/WebCore/page/DOMWindow.cpp</a></li>
<li><a href="#trunkSourceWebCorepageDragControllercpp">trunk/Source/WebCore/page/DragController.cpp</a></li>
<li><a href="#trunkSourceWebCorepageEventHandlercpp">trunk/Source/WebCore/page/EventHandler.cpp</a></li>
<li><a href="#trunkSourceWebCorepageFocusControllercpp">trunk/Source/WebCore/page/FocusController.cpp</a></li>
<li><a href="#trunkSourceWebCorepageFramecpp">trunk/Source/WebCore/page/Frame.cpp</a></li>
<li><a href="#trunkSourceWebCorepageFrameh">trunk/Source/WebCore/page/Frame.h</a></li>
<li><a href="#trunkSourceWebCorepagePagecpp">trunk/Source/WebCore/page/Page.cpp</a></li>
<li><a href="#trunkSourceWebCorepageTouchAdjustmentcpp">trunk/Source/WebCore/page/TouchAdjustment.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgtkClipboardGtkcpp">trunk/Source/WebCore/platform/gtk/ClipboardGtk.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgtkPasteboardGtkcpp">trunk/Source/WebCore/platform/gtk/PasteboardGtk.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmacDragDataMacmm">trunk/Source/WebCore/platform/mac/DragDataMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmacPasteboardMacmm">trunk/Source/WebCore/platform/mac/PasteboardMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformqtClipboardQtcpp">trunk/Source/WebCore/platform/qt/ClipboardQt.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformqtPasteboardQtcpp">trunk/Source/WebCore/platform/qt/PasteboardQt.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformwinClipboardWincpp">trunk/Source/WebCore/platform/win/ClipboardWin.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformwinPasteboardWincpp">trunk/Source/WebCore/platform/win/PasteboardWin.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingHitTestResultcpp">trunk/Source/WebCore/rendering/HitTestResult.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingInlineTextBoxcpp">trunk/Source/WebCore/rendering/InlineTextBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockcpp">trunk/Source/WebCore/rendering/RenderBlock.cpp</a></li>
<li><a href="#trunkSourceWebCoretestingInternalscpp">trunk/Source/WebCore/testing/Internals.cpp</a></li>
<li><a href="#trunkSourceWebKitblackberryChangeLog">trunk/Source/WebKit/blackberry/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitblackberryWebCoreSupportEditorClientBlackBerrycpp">trunk/Source/WebKit/blackberry/WebCoreSupport/EditorClientBlackBerry.cpp</a></li>
<li><a href="#trunkSourceWebKitblackberryWebKitSupportDOMSupportcpp">trunk/Source/WebKit/blackberry/WebKitSupport/DOMSupport.cpp</a></li>
<li><a href="#trunkSourceWebKitblackberryWebKitSupportInPageSearchManagercpp">trunk/Source/WebKit/blackberry/WebKitSupport/InPageSearchManager.cpp</a></li>
<li><a href="#trunkSourceWebKitblackberryWebKitSupportSelectionHandlercpp">trunk/Source/WebKit/blackberry/WebKitSupport/SelectionHandler.cpp</a></li>
<li><a href="#trunkSourceWebKiteflChangeLog">trunk/Source/WebKit/efl/ChangeLog</a></li>
<li><a href="#trunkSourceWebKiteflWebCoreSupportDumpRenderTreeSupportEflcpp">trunk/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp</a></li>
<li><a href="#trunkSourceWebKiteflWebCoreSupportEditorClientEflcpp">trunk/Source/WebKit/efl/WebCoreSupport/EditorClientEfl.cpp</a></li>
<li><a href="#trunkSourceWebKiteflewkewk_framecpp">trunk/Source/WebKit/efl/ewk/ewk_frame.cpp</a></li>
<li><a href="#trunkSourceWebKiteflewkewk_viewcpp">trunk/Source/WebKit/efl/ewk/ewk_view.cpp</a></li>
<li><a href="#trunkSourceWebKitgtkChangeLog">trunk/Source/WebKit/gtk/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitgtkWebCoreSupportChromeClientGtkcpp">trunk/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp</a></li>
<li><a href="#trunkSourceWebKitgtkWebCoreSupportDumpRenderTreeSupportGtkcpp">trunk/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp</a></li>
<li><a href="#trunkSourceWebKitgtkWebCoreSupportEditorClientGtkcpp">trunk/Source/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp</a></li>
<li><a href="#trunkSourceWebKitgtkWebCoreSupportWebViewInputMethodFiltercpp">trunk/Source/WebKit/gtk/WebCoreSupport/WebViewInputMethodFilter.cpp</a></li>
<li><a href="#trunkSourceWebKitgtkwebkitwebkitwebframecpp">trunk/Source/WebKit/gtk/webkit/webkitwebframe.cpp</a></li>
<li><a href="#trunkSourceWebKitgtkwebkitwebkitwebviewcpp">trunk/Source/WebKit/gtk/webkit/webkitwebview.cpp</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebFramemm">trunk/Source/WebKit/mac/WebView/WebFrame.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebHTMLRepresentationmm">trunk/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebHTMLViewmm">trunk/Source/WebKit/mac/WebView/WebHTMLView.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebViewmm">trunk/Source/WebKit/mac/WebView/WebView.mm</a></li>
<li><a href="#trunkSourceWebKitqtChangeLog">trunk/Source/WebKit/qt/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitqtWebCoreSupportDumpRenderTreeSupportQtcpp">trunk/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp</a></li>
<li><a href="#trunkSourceWebKitqtWebCoreSupportEditorClientQtcpp">trunk/Source/WebKit/qt/WebCoreSupport/EditorClientQt.cpp</a></li>
<li><a href="#trunkSourceWebKitqtWebCoreSupportQWebPageAdaptercpp">trunk/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp</a></li>
<li><a href="#trunkSourceWebKitwinChangeLog">trunk/Source/WebKit/win/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitwinWebCoreSupportWebContextMenuClientcpp">trunk/Source/WebKit/win/WebCoreSupport/WebContextMenuClient.cpp</a></li>
<li><a href="#trunkSourceWebKitwinWebFramecpp">trunk/Source/WebKit/win/WebFrame.cpp</a></li>
<li><a href="#trunkSourceWebKitwinWebViewcpp">trunk/Source/WebKit/win/WebView.cpp</a></li>
<li><a href="#trunkSourceWebKitwinceChangeLog">trunk/Source/WebKit/wince/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitwinceWebCoreSupportEditorClientWinCEcpp">trunk/Source/WebKit/wince/WebCoreSupport/EditorClientWinCE.cpp</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebContextMenuClientcpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebContextMenuClient.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebEditorClientcpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupporteflWebEditorClientEflcpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/efl/WebEditorClientEfl.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportgtkWebEditorClientGtkcpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportmacWebContextMenuClientMacmm">trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportmacWebEditorClientMacmm">trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebFramecpp">trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebPagecpp">trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageeflWebPageEflcpp">trunk/Source/WebKit2/WebProcess/WebPage/efl/WebPageEfl.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPagemacWebPageMacmm">trunk/Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/ChangeLog        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -1,3 +1,216 @@
</span><ins>+2013-05-13  Anders Carlsson  &lt;andersca@apple.com&gt;
+
+        Frame::editor() should return a reference
+        https://bugs.webkit.org/show_bug.cgi?id=116037
+
+        Reviewed by Darin Adler.
+
+        A frame's editor can never be null. Change Frame::editor() to return a reference to reflect this.
+        Also, make Frame::m_editor a const member variable so nobody will accidentally set it to null.
+
+        * accessibility/AccessibilityObject.cpp:
+        (WebCore::AccessibilityObject::hasMisspelling):
+        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
+        (AXAttributeStringSetSpelling):
+        * dom/ContainerNode.cpp:
+        (WebCore::ContainerNode::cloneChildNodes):
+        * dom/Document.cpp:
+        (WebCore::acceptsEditingFocus):
+        (WebCore::Document::setFocusedNode):
+        (WebCore::command):
+        * editing/AlternativeTextController.cpp:
+        (WebCore::AlternativeTextController::timerFired):
+        (WebCore::AlternativeTextController::applyDictationAlternative):
+        * editing/CompositeEditCommand.cpp:
+        (WebCore::EditCommandComposition::unapply):
+        (WebCore::EditCommandComposition::reapply):
+        (WebCore::CompositeEditCommand::apply):
+        (WebCore::CompositeEditCommand::moveParagraphs):
+        * editing/DeleteButton.cpp:
+        (WebCore::DeleteButton::defaultEventHandler):
+        * editing/DeleteButtonController.cpp:
+        (WebCore::DeleteButtonController::show):
+        * editing/DeleteButtonController.h:
+        (WebCore::DeleteButtonControllerDisableScope::DeleteButtonControllerDisableScope):
+        (WebCore::DeleteButtonControllerDisableScope::~DeleteButtonControllerDisableScope):
+        * editing/DeleteSelectionCommand.cpp:
+        (WebCore::DeleteSelectionCommand::mergeParagraphs):
+        (WebCore::DeleteSelectionCommand::doApply):
+        * editing/EditCommand.cpp:
+        (WebCore::EditCommand::EditCommand):
+        * editing/EditingStyle.cpp:
+        (WebCore::StyleChange::StyleChange):
+        * editing/Editor.cpp:
+        (WebCore::Editor::markMisspellingsAfterTypingToWord):
+        * editing/EditorCommand.cpp:
+        (WebCore::applyCommandToFrame):
+        (WebCore::executeToggleStyle):
+        (WebCore::executeApplyParagraphStyle):
+        (WebCore::expandSelectionToGranularity):
+        (WebCore::stateStyle):
+        (WebCore::valueStyle):
+        (WebCore::executeCopy):
+        (WebCore::executeCut):
+        (WebCore::executeDefaultParagraphSeparator):
+        (WebCore::executeDelete):
+        (WebCore::executeDeleteBackward):
+        (WebCore::executeDeleteBackwardByDecomposingPreviousCharacter):
+        (WebCore::executeDeleteForward):
+        (WebCore::executeDeleteToBeginningOfLine):
+        (WebCore::executeDeleteToBeginningOfParagraph):
+        (WebCore::executeDeleteToEndOfLine):
+        (WebCore::executeDeleteToEndOfParagraph):
+        (WebCore::executeDeleteToMark):
+        (WebCore::executeDeleteWordBackward):
+        (WebCore::executeDeleteWordForward):
+        (WebCore::executeFindString):
+        (WebCore::executeForwardDelete):
+        (WebCore::executeIgnoreSpelling):
+        (WebCore::executeInsertNewline):
+        (WebCore::executeMakeTextWritingDirectionLeftToRight):
+        (WebCore::executeMakeTextWritingDirectionNatural):
+        (WebCore::executeMakeTextWritingDirectionRightToLeft):
+        (WebCore::executeToggleOverwrite):
+        (WebCore::executePaste):
+        (WebCore::executePasteGlobalSelection):
+        (WebCore::executePasteAndMatchStyle):
+        (WebCore::executePasteAsPlainText):
+        (WebCore::executeRedo):
+        (WebCore::executeRemoveFormat):
+        (WebCore::executeSelectToMark):
+        (WebCore::executeSetMark):
+        (WebCore::executeStyleWithCSS):
+        (WebCore::executeUseCSS):
+        (WebCore::executeSwapWithMark):
+        (WebCore::executeTakeFindStringFromSelection):
+        (WebCore::executeTranspose):
+        (WebCore::executeUndo):
+        (WebCore::executeYank):
+        (WebCore::executeYankAndSelect):
+        (WebCore::supportedCopyCut):
+        (WebCore::supportedPaste):
+        (WebCore::enabledVisibleSelection):
+        (WebCore::enabledVisibleSelectionAndMark):
+        (WebCore::enableCaretInEditableText):
+        (WebCore::enabledCopy):
+        (WebCore::enabledCut):
+        (WebCore::enabledInEditableText):
+        (WebCore::enabledDelete):
+        (WebCore::enabledPaste):
+        (WebCore::enabledRedo):
+        (WebCore::enabledTakeFindStringFromSelection):
+        (WebCore::enabledUndo):
+        (WebCore::stateOrderedList):
+        (WebCore::stateStyleWithCSS):
+        (WebCore::stateUnorderedList):
+        (WebCore::valueDefaultParagraphSeparator):
+        * editing/FrameSelection.cpp:
+        (WebCore::shouldAlwaysUseDirectionalSelection):
+        (WebCore::FrameSelection::setSelection):
+        (WebCore::FrameSelection::nextWordPositionForPlatform):
+        (WebCore::FrameSelection::modifyMovingRight):
+        (WebCore::FrameSelection::modifyMovingLeft):
+        (WebCore::FrameSelection::modify):
+        (WebCore::shouldStopBlinkingDueToTypingCommand):
+        (WebCore::FrameSelection::shouldDeleteSelection):
+        (WebCore::FrameSelection::shouldChangeSelection):
+        * editing/InsertTextCommand.cpp:
+        (WebCore::InsertTextCommand::doApply):
+        * editing/SpellChecker.cpp:
+        (WebCore::SpellChecker::didCheck):
+        * editing/SpellingCorrectionCommand.cpp:
+        * editing/TypingCommand.cpp:
+        (WebCore::TypingCommand::insertText):
+        (WebCore::TypingCommand::lastTypingCommandIfStillOpenForTyping):
+        (WebCore::TypingCommand::markMisspellingsAfterTyping):
+        (WebCore::TypingCommand::typingAddedToOpenCommand):
+        (WebCore::TypingCommand::deleteKeyPressed):
+        (WebCore::TypingCommand::forwardDeleteKeyPressed):
+        * editing/htmlediting.cpp:
+        (WebCore::createDefaultParagraphElement):
+        * editing/mac/EditorMac.mm:
+        (WebCore::Editor::pasteWithPasteboard):
+        * editing/markup.cpp:
+        (WebCore::createMarkup):
+        * html/HTMLInputElement.cpp:
+        (WebCore::HTMLInputElement::endEditing):
+        * html/HTMLTextAreaElement.cpp:
+        (WebCore::HTMLTextAreaElement::subtreeHasChanged):
+        * html/TextFieldInputType.cpp:
+        (WebCore::TextFieldInputType::handleKeydownEvent):
+        (WebCore::TextFieldInputType::didSetValueByUserEdit):
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::closeURL):
+        (WebCore::FrameLoader::didOpenURL):
+        (WebCore::FrameLoader::clear):
+        * page/ContextMenuController.cpp:
+        (WebCore::insertUnicodeCharacter):
+        (WebCore::ContextMenuController::contextMenuItemSelected):
+        (WebCore::ContextMenuController::populate):
+        (WebCore::ContextMenuController::checkOrEnableIfNeeded):
+        * page/DOMWindow.cpp:
+        (WebCore::DOMWindow::find):
+        * page/DragController.cpp:
+        (WebCore::DragController::dispatchTextInputEventFor):
+        (WebCore::DragController::concludeEditDrag):
+        (WebCore::DragController::startDrag):
+        * page/EventHandler.cpp:
+        (WebCore::EventHandler::selectClosestWordFromMouseEvent):
+        (WebCore::EventHandler::handleMousePressEventSingleClick):
+        (WebCore::EventHandler::handlePasteGlobalSelection):
+        (WebCore::EventHandler::sendContextMenuEvent):
+        (WebCore::EventHandler::sendContextMenuEventForKey):
+        (WebCore::EventHandler::keyEvent):
+        (WebCore::EventHandler::defaultKeyboardEventHandler):
+        (WebCore::EventHandler::defaultTextInputEventHandler):
+        (WebCore::EventHandler::defaultBackspaceEventHandler):
+        * page/FocusController.cpp:
+        (WebCore::relinquishesEditingFocus):
+        * page/Frame.cpp:
+        (WebCore::Frame::rangeForPoint):
+        * page/Frame.h:
+        (Frame):
+        (WebCore::Frame::editor):
+        * page/Page.cpp:
+        (WebCore::Page::findString):
+        (WebCore::Page::findStringMatchingRanges):
+        (WebCore::Page::rangeOfString):
+        (WebCore::Page::markAllMatchesForText):
+        (WebCore::Page::setDeviceScaleFactor):
+        * platform/mac/ClipboardMac.mm:
+        (WebCore::ClipboardMac::writeRange):
+        * platform/mac/DragDataMac.mm:
+        (WebCore::DragData::asURL):
+        * platform/mac/PasteboardMac.mm:
+        (WebCore::Pasteboard::getStringSelection):
+        (WebCore::Pasteboard::getDataSelection):
+        (WebCore::Pasteboard::writeSelectionForTypes):
+        (WebCore::writeURLForTypes):
+        (WebCore::Pasteboard::plainText):
+        (WebCore::documentFragmentWithRTF):
+        (WebCore::Pasteboard::documentFragment):
+        * rendering/HitTestResult.cpp:
+        (WebCore::HitTestResult::dictationAlternatives):
+        * rendering/InlineTextBox.cpp:
+        (WebCore::InlineTextBox::paint):
+        (WebCore::InlineTextBox::paintTextMatchMarker):
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::positionForPointWithInlineChildren):
+        * testing/Internals.cpp:
+        (WebCore::spellchecker):
+        (WebCore::Internals::resetToConsistentState):
+        (WebCore::Internals::hasSpellingMarker):
+        (WebCore::Internals::hasAutocorrectedMarker):
+        (WebCore::Internals::setContinuousSpellCheckingEnabled):
+        (WebCore::Internals::setAutomaticQuoteSubstitutionEnabled):
+        (WebCore::Internals::setAutomaticLinkDetectionEnabled):
+        (WebCore::Internals::setAutomaticDashSubstitutionEnabled):
+        (WebCore::Internals::setAutomaticTextReplacementEnabled):
+        (WebCore::Internals::setAutomaticSpellingCorrectionEnabled):
+        (WebCore::Internals::isOverwriteModeEnabled):
+        (WebCore::Internals::toggleOverwriteModeEnabled):
+        (WebCore::Internals::hasGrammarMarker):
+
</ins><span class="cx"> 2013-05-15  Darin Adler  &lt;darin@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Mac] Make Clipboard class no longer polymorphic by removing the last virtual functions
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityObject.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -320,11 +320,9 @@
</span><span class="cx">     if (!frame)
</span><span class="cx">         return false;
</span><span class="cx">     
</span><del>-    Editor* editor = frame-&gt;editor();
-    if (!editor)
-        return false;
</del><ins>+    Editor&amp; editor = frame-&gt;editor();
</ins><span class="cx">     
</span><del>-    TextCheckerClient* textChecker = editor-&gt;textChecker();
</del><ins>+    TextCheckerClient* textChecker = editor.textChecker();
</ins><span class="cx">     if (!textChecker)
</span><span class="cx">         return false;
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityatkWebKitAccessibleInterfaceEditableTextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceEditableText.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceEditableText.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceEditableText.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -79,7 +79,7 @@
</span><span class="cx">     coreObject-&gt;setSelectedVisiblePositionRange(coreObject-&gt;visiblePositionRangeForRange(PlainTextRange(*position, 0)));
</span><span class="cx">     coreObject-&gt;setFocused(true);
</span><span class="cx">     // FIXME: We should set position to the actual inserted text length, which may be less than that requested.
</span><del>-    if (document-&gt;frame()-&gt;editor()-&gt;insertTextWithoutSendingTextEvent(String::fromUTF8(string).substring(0, length), false, 0))
</del><ins>+    if (document-&gt;frame()-&gt;editor().insertTextWithoutSendingTextEvent(String::fromUTF8(string).substring(0, length), false, 0))
</ins><span class="cx">         *position += length;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -106,7 +106,7 @@
</span><span class="cx"> 
</span><span class="cx">     coreObject-&gt;setSelectedVisiblePositionRange(coreObject-&gt;visiblePositionRangeForRange(PlainTextRange(startPos, endPos - startPos)));
</span><span class="cx">     coreObject-&gt;setFocused(true);
</span><del>-    document-&gt;frame()-&gt;editor()-&gt;performDelete();
</del><ins>+    document-&gt;frame()-&gt;editor().performDelete();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static void webkitAccessibleEditableTextPasteText(AtkEditableText*, gint)
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilitymacWebAccessibilityObjectWrapperMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -724,7 +724,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (unifiedTextCheckerEnabled(node-&gt;document()-&gt;frame())) {
</span><span class="cx">         // Check the spelling directly since document-&gt;markersForNode() does not store the misspelled marking when the cursor is in a word.
</span><del>-        TextCheckerClient* checker = node-&gt;document()-&gt;frame()-&gt;editor()-&gt;textChecker();
</del><ins>+        TextCheckerClient* checker = node-&gt;document()-&gt;frame()-&gt;editor().textChecker();
</ins><span class="cx">         
</span><span class="cx">         // checkTextOfParagraph is the only spelling/grammar checker implemented in WK1 and WK2
</span><span class="cx">         Vector&lt;TextCheckingResult&gt; results;
</span><span class="lines">@@ -742,7 +742,7 @@
</span><span class="cx">     int currentPosition = 0;
</span><span class="cx">     while (charLength &gt; 0) {
</span><span class="cx">         const UChar* charData = chars + currentPosition;
</span><del>-        TextCheckerClient* checker = node-&gt;document()-&gt;frame()-&gt;editor()-&gt;textChecker();
</del><ins>+        TextCheckerClient* checker = node-&gt;document()-&gt;frame()-&gt;editor().textChecker();
</ins><span class="cx">         
</span><span class="cx">         int misspellingLocation = -1;
</span><span class="cx">         int misspellingLength = 0;
</span></span></pre></div>
<a id="trunkSourceWebCoredomClipboardcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Clipboard.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Clipboard.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/dom/Clipboard.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -345,7 +345,7 @@
</span><span class="cx">     // FIXME: This is a design mistake, a layering violation that should be fixed.
</span><span class="cx">     // The code to write the range to a pasteboard should be an Editor function that takes a pasteboard argument.
</span><span class="cx">     // FIXME: The frame argument seems redundant, since a Range is in a particular document, which has a corresponding frame.
</span><del>-    m_pasteboard-&gt;writeSelection(range, frame-&gt;editor()-&gt;smartInsertDeleteEnabled() &amp;&amp; frame-&gt;selection()-&gt;granularity() == WordGranularity, frame, IncludeImageAltTextForClipboard);
</del><ins>+    m_pasteboard-&gt;writeSelection(range, frame-&gt;editor().smartInsertDeleteEnabled() &amp;&amp; frame-&gt;selection()-&gt;granularity() == WordGranularity, frame, IncludeImageAltTextForClipboard);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Clipboard::writePlainText(const String&amp; text)
</span></span></pre></div>
<a id="trunkSourceWebCoredomContainerNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ContainerNode.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ContainerNode.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/dom/ContainerNode.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -833,7 +833,7 @@
</span><span class="cx"> #if ENABLE(DELETION_UI)
</span><span class="cx">     HTMLElement* deleteButtonContainerElement = 0;
</span><span class="cx">     if (Frame* frame = document()-&gt;frame())
</span><del>-        deleteButtonContainerElement = frame-&gt;editor()-&gt;deleteButtonController()-&gt;containerElement();
</del><ins>+        deleteButtonContainerElement = frame-&gt;editor().deleteButtonController()-&gt;containerElement();
</ins><span class="cx">     cloneChildNodesAvoidingDeleteButton(this, clone, deleteButtonContainerElement);
</span><span class="cx"> #else
</span><span class="cx">     cloneChildNodesAvoidingDeleteButton(this, clone, 0);
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/dom/Document.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -370,7 +370,7 @@
</span><span class="cx">     if (!frame || !root)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    return frame-&gt;editor()-&gt;shouldBeginEditing(rangeOfContents(root).get());
</del><ins>+    return frame-&gt;editor().shouldBeginEditing(rangeOfContents(root).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool canAccessAncestor(const SecurityOrigin* activeSecurityOrigin, Frame* targetFrame)
</span><span class="lines">@@ -3361,7 +3361,7 @@
</span><span class="cx">             return true;
</span><span class="cx">             
</span><span class="cx">         if (oldFocusedNode-&gt;isRootEditableElement())
</span><del>-            frame()-&gt;editor()-&gt;didEndEditing();
</del><ins>+            frame()-&gt;editor().didEndEditing();
</ins><span class="cx"> 
</span><span class="cx">         if (view()) {
</span><span class="cx">             Widget* oldWidget = widgetForNode(oldFocusedNode.get());
</span><span class="lines">@@ -3410,7 +3410,7 @@
</span><span class="cx">         m_focusedNode-&gt;setFocus(true);
</span><span class="cx"> 
</span><span class="cx">         if (m_focusedNode-&gt;isRootEditableElement())
</span><del>-            frame()-&gt;editor()-&gt;didBeginEditing();
</del><ins>+            frame()-&gt;editor().didBeginEditing();
</ins><span class="cx"> 
</span><span class="cx">         // eww, I suck. set the qt focus correctly
</span><span class="cx">         // ### find a better place in the code for this
</span><span class="lines">@@ -4191,7 +4191,7 @@
</span><span class="cx"> 
</span><span class="cx">     document-&gt;updateStyleIfNeeded();
</span><span class="cx"> 
</span><del>-    return frame-&gt;editor()-&gt;command(commandName,
</del><ins>+    return frame-&gt;editor().command(commandName,
</ins><span class="cx">         userInterface ? CommandFromDOMWithUserInterface : CommandFromDOM);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingAlternativeTextControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/AlternativeTextController.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/AlternativeTextController.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/editing/AlternativeTextController.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -339,7 +339,7 @@
</span><span class="cx">         VisiblePosition start(selection.start(), selection.affinity());
</span><span class="cx">         VisiblePosition p = startOfWord(start, LeftWordIfOnBoundary);
</span><span class="cx">         VisibleSelection adjacentWords = VisibleSelection(p, start);
</span><del>-        m_frame-&gt;editor()-&gt;markAllMisspellingsAndBadGrammarInRanges(TextCheckingTypeSpelling | TextCheckingTypeReplacement | TextCheckingTypeShowCorrectionPanel, adjacentWords.toNormalizedRange().get(), 0);
</del><ins>+        m_frame-&gt;editor().markAllMisspellingsAndBadGrammarInRanges(TextCheckingTypeSpelling | TextCheckingTypeReplacement | TextCheckingTypeShowCorrectionPanel, adjacentWords.toNormalizedRange().get(), 0);
</ins><span class="cx">     }
</span><span class="cx">         break;
</span><span class="cx">     case AlternativeTextTypeReversion: {
</span><span class="lines">@@ -742,9 +742,9 @@
</span><span class="cx"> void AlternativeTextController::applyDictationAlternative(const String&amp; alternativeString)
</span><span class="cx"> {
</span><span class="cx"> #if USE(DICTATION_ALTERNATIVES)
</span><del>-    Editor* editor = m_frame-&gt;editor();
-    RefPtr&lt;Range&gt; selection = editor-&gt;selectedRange();
-    if (!selection || !editor-&gt;shouldInsertText(alternativeString, selection.get(), EditorInsertActionPasted))
</del><ins>+    Editor&amp; editor = m_frame-&gt;editor();
+    RefPtr&lt;Range&gt; selection = editor.selectedRange();
+    if (!selection || !editor.shouldInsertText(alternativeString, selection.get(), EditorInsertActionPasted))
</ins><span class="cx">         return;
</span><span class="cx">     DocumentMarkerController* markers = selection-&gt;startContainer()-&gt;document()-&gt;markers();
</span><span class="cx">     Vector&lt;DocumentMarker*&gt; dictationAlternativesMarkers = markers-&gt;markersInRange(selection.get(), DocumentMarker::DictationAlternatives);
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingCompositeEditCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/CompositeEditCommand.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/CompositeEditCommand.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/editing/CompositeEditCommand.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -115,7 +115,7 @@
</span><span class="cx">             m_commands[i - 1]-&gt;doUnapply();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    frame-&gt;editor()-&gt;unappliedEditing(this);
</del><ins>+    frame-&gt;editor().unappliedEditing(this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void EditCommandComposition::reapply()
</span><span class="lines">@@ -138,7 +138,7 @@
</span><span class="cx">             m_commands[i]-&gt;doReapply();
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    frame-&gt;editor()-&gt;reappliedEditing(this);
</del><ins>+    frame-&gt;editor().reappliedEditing(this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void EditCommandComposition::append(SimpleEditCommand* command)
</span><span class="lines">@@ -219,7 +219,7 @@
</span><span class="cx">     // Only need to call appliedEditing for top-level commands,
</span><span class="cx">     // and TypingCommands do it on their own (see TypingCommand::typingAddedToOpenCommand).
</span><span class="cx">     if (!callsAppliedEditingInDoApply())
</span><del>-        frame-&gt;editor()-&gt;appliedEditing(this);
</del><ins>+        frame-&gt;editor().appliedEditing(this);
</ins><span class="cx">     setShouldRetainAutocorrectionIndicator(false);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1222,7 +1222,7 @@
</span><span class="cx">     // FIXME (5098931): We should add a new insert action &quot;WebViewInsertActionMoved&quot; and call shouldInsertFragment here.
</span><span class="cx">     
</span><span class="cx">     setEndingSelection(VisibleSelection(start, end, DOWNSTREAM));
</span><del>-    document()-&gt;frame()-&gt;editor()-&gt;clearMisspellingsAndBadGrammar(endingSelection());
</del><ins>+    document()-&gt;frame()-&gt;editor().clearMisspellingsAndBadGrammar(endingSelection());
</ins><span class="cx">     deleteSelection(false, false, false, false);
</span><span class="cx"> 
</span><span class="cx">     ASSERT(destination.deepEquivalent().anchorNode()-&gt;inDocument());
</span><span class="lines">@@ -1255,7 +1255,7 @@
</span><span class="cx">         options |= ReplaceSelectionCommand::MatchStyle;
</span><span class="cx">     applyCommandToComposite(ReplaceSelectionCommand::create(document(), fragment, options));
</span><span class="cx"> 
</span><del>-    document()-&gt;frame()-&gt;editor()-&gt;markMisspellingsAndBadGrammar(endingSelection());
</del><ins>+    document()-&gt;frame()-&gt;editor().markMisspellingsAndBadGrammar(endingSelection());
</ins><span class="cx"> 
</span><span class="cx">     // If the selection is in an empty paragraph, restore styles from the old empty paragraph to the new empty paragraph.
</span><span class="cx">     bool selectionIsEmptyParagraph = endingSelection().isCaret() &amp;&amp; isStartOfParagraph(endingSelection().visibleStart()) &amp;&amp; isEndOfParagraph(endingSelection().visibleStart());
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingDeleteButtoncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/DeleteButton.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/DeleteButton.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/editing/DeleteButton.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -53,7 +53,7 @@
</span><span class="cx"> void DeleteButton::defaultEventHandler(Event* event)
</span><span class="cx"> {
</span><span class="cx">     if (event-&gt;type() == eventNames().clickEvent) {
</span><del>-        document()-&gt;frame()-&gt;editor()-&gt;deleteButtonController()-&gt;deleteTarget();
</del><ins>+        document()-&gt;frame()-&gt;editor().deleteButtonController()-&gt;deleteTarget();
</ins><span class="cx">         event-&gt;setDefaultHandled();
</span><span class="cx">         return;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingDeleteButtonControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/DeleteButtonController.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/DeleteButtonController.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/editing/DeleteButtonController.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -283,7 +283,7 @@
</span><span class="cx">     if (!enabled() || !element || !element-&gt;inDocument() || !isDeletableElement(element))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    EditorClient* client = m_frame-&gt;editor()-&gt;client();
</del><ins>+    EditorClient* client = m_frame-&gt;editor().client();
</ins><span class="cx">     if (!client || !client-&gt;shouldShowDeleteInterface(element))
</span><span class="cx">         return;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingDeleteButtonControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/DeleteButtonController.h (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/DeleteButtonController.h        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/editing/DeleteButtonController.h        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -83,13 +83,13 @@
</span><span class="cx">         : m_frame(frame)
</span><span class="cx">     {
</span><span class="cx">         if (frame)
</span><del>-            frame-&gt;editor()-&gt;deleteButtonController()-&gt;disable();
</del><ins>+            frame-&gt;editor().deleteButtonController()-&gt;disable();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     ~DeleteButtonControllerDisableScope()
</span><span class="cx">     {
</span><span class="cx">         if (m_frame)
</span><del>-            m_frame-&gt;editor()-&gt;deleteButtonController()-&gt;enable();
</del><ins>+            m_frame-&gt;editor().deleteButtonController()-&gt;enable();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> private:
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingDeleteSelectionCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/DeleteSelectionCommand.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/DeleteSelectionCommand.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/editing/DeleteSelectionCommand.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -648,7 +648,7 @@
</span><span class="cx">     
</span><span class="cx">     RefPtr&lt;Range&gt; range = Range::create(document(), startOfParagraphToMove.deepEquivalent().parentAnchoredEquivalent(), endOfParagraphToMove.deepEquivalent().parentAnchoredEquivalent());
</span><span class="cx">     RefPtr&lt;Range&gt; rangeToBeReplaced = Range::create(document(), mergeDestination.deepEquivalent().parentAnchoredEquivalent(), mergeDestination.deepEquivalent().parentAnchoredEquivalent());
</span><del>-    if (!document()-&gt;frame()-&gt;editor()-&gt;client()-&gt;shouldMoveRangeAfterDelete(range.get(), rangeToBeReplaced.get()))
</del><ins>+    if (!document()-&gt;frame()-&gt;editor().client()-&gt;shouldMoveRangeAfterDelete(range.get(), rangeToBeReplaced.get()))
</ins><span class="cx">         return;
</span><span class="cx">     
</span><span class="cx">     // moveParagraphs will insert placeholders if it removes blocks that would require their use, don't let block
</span><span class="lines">@@ -794,7 +794,7 @@
</span><span class="cx">     if (!m_replace) {
</span><span class="cx">         Element* textControl = enclosingTextFormControl(m_selectionToDelete.start());
</span><span class="cx">         if (textControl &amp;&amp; textControl-&gt;focused())
</span><del>-            document()-&gt;frame()-&gt;editor()-&gt;textWillBeDeletedInTextField(textControl);
</del><ins>+            document()-&gt;frame()-&gt;editor().textWillBeDeletedInTextField(textControl);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // save this to later make the selection with
</span><span class="lines">@@ -854,7 +854,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (!originalString.isEmpty()) {
</span><span class="cx">         if (Frame* frame = document()-&gt;frame())
</span><del>-            frame-&gt;editor()-&gt;deletedAutocorrectionAtPosition(m_endingPosition, originalString);
</del><ins>+            frame-&gt;editor().deletedAutocorrectionAtPosition(m_endingPosition, originalString);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     setEndingSelection(VisibleSelection(m_endingPosition, affinity, endingSelection().isDirectional()));
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingEditCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/EditCommand.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/EditCommand.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/editing/EditCommand.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_document);
</span><span class="cx">     ASSERT(m_document-&gt;frame());
</span><del>-    setStartingSelection(m_document-&gt;frame()-&gt;editor()-&gt;avoidIntersectionWithDeleteButtonController(m_document-&gt;frame()-&gt;selection()-&gt;selection()));
</del><ins>+    setStartingSelection(m_document-&gt;frame()-&gt;editor().avoidIntersectionWithDeleteButtonController(m_document-&gt;frame()-&gt;selection()-&gt;selection()));
</ins><span class="cx">     setEndingSelection(m_startingSelection);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingEditingStylecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/EditingStyle.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/EditingStyle.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/editing/EditingStyle.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -1344,7 +1344,7 @@
</span><span class="cx">     RefPtr&lt;MutableStylePropertySet&gt; mutableStyle = getPropertiesNotIn(style-&gt;style(), computedStyle.get());
</span><span class="cx"> 
</span><span class="cx">     reconcileTextDecorationProperties(mutableStyle.get());
</span><del>-    if (!document-&gt;frame()-&gt;editor()-&gt;shouldStyleWithCSS())
</del><ins>+    if (!document-&gt;frame()-&gt;editor().shouldStyleWithCSS())
</ins><span class="cx">         extractTextStyles(document, mutableStyle.get(), computedStyle-&gt;useFixedFontDefaultSize());
</span><span class="cx"> 
</span><span class="cx">     // Changing the whitespace style in a tab span would collapse the tab into a space.
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingEditorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/Editor.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/Editor.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/editing/Editor.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -2012,9 +2012,9 @@
</span><span class="cx">             frame()-&gt;selection()-&gt;setSelection(newSelection);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        if (!frame()-&gt;editor()-&gt;shouldInsertText(autocorrectedString, misspellingRange.get(), EditorInsertActionTyped))
</del><ins>+        if (!frame()-&gt;editor().shouldInsertText(autocorrectedString, misspellingRange.get(), EditorInsertActionTyped))
</ins><span class="cx">             return;
</span><del>-        frame()-&gt;editor()-&gt;replaceSelectionWithText(autocorrectedString, false, false);
</del><ins>+        frame()-&gt;editor().replaceSelectionWithText(autocorrectedString, false, false);
</ins><span class="cx"> 
</span><span class="cx">         // Reset the charet one character further.
</span><span class="cx">         frame()-&gt;selection()-&gt;moveTo(frame()-&gt;selection()-&gt;end());
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingEditorCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/EditorCommand.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/EditorCommand.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/editing/EditorCommand.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -105,11 +105,11 @@
</span><span class="cx">     // FIXME: We don't call shouldApplyStyle when the source is DOM; is there a good reason for that?
</span><span class="cx">     switch (source) {
</span><span class="cx">     case CommandFromMenuOrKeyBinding:
</span><del>-        frame-&gt;editor()-&gt;applyStyleToSelection(style, action);
</del><ins>+        frame-&gt;editor().applyStyleToSelection(style, action);
</ins><span class="cx">         return true;
</span><span class="cx">     case CommandFromDOM:
</span><span class="cx">     case CommandFromDOMWithUserInterface:
</span><del>-        frame-&gt;editor()-&gt;applyStyle(style);
</del><ins>+        frame-&gt;editor().applyStyle(style);
</ins><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><span class="lines">@@ -164,10 +164,10 @@
</span><span class="cx">     // other: present throughout the selection
</span><span class="cx"> 
</span><span class="cx">     bool styleIsPresent;
</span><del>-    if (frame-&gt;editor()-&gt;behavior().shouldToggleStyleBasedOnStartOfSelection())
-        styleIsPresent = frame-&gt;editor()-&gt;selectionStartHasStyle(propertyID, onValue);
</del><ins>+    if (frame-&gt;editor().behavior().shouldToggleStyleBasedOnStartOfSelection())
+        styleIsPresent = frame-&gt;editor().selectionStartHasStyle(propertyID, onValue);
</ins><span class="cx">     else
</span><del>-        styleIsPresent = frame-&gt;editor()-&gt;selectionHasStyle(propertyID, onValue) == TrueTriState;
</del><ins>+        styleIsPresent = frame-&gt;editor().selectionHasStyle(propertyID, onValue) == TrueTriState;
</ins><span class="cx"> 
</span><span class="cx">     RefPtr&lt;EditingStyle&gt; style = EditingStyle::create(propertyID, styleIsPresent ? offValue : onValue);
</span><span class="cx">     return applyCommandToFrame(frame, source, action, style-&gt;style());
</span><span class="lines">@@ -180,11 +180,11 @@
</span><span class="cx">     // FIXME: We don't call shouldApplyStyle when the source is DOM; is there a good reason for that?
</span><span class="cx">     switch (source) {
</span><span class="cx">     case CommandFromMenuOrKeyBinding:
</span><del>-        frame-&gt;editor()-&gt;applyParagraphStyleToSelection(style.get(), action);
</del><ins>+        frame-&gt;editor().applyParagraphStyleToSelection(style.get(), action);
</ins><span class="cx">         return true;
</span><span class="cx">     case CommandFromDOM:
</span><span class="cx">     case CommandFromDOMWithUserInterface:
</span><del>-        frame-&gt;editor()-&gt;applyParagraphStyle(style.get());
</del><ins>+        frame-&gt;editor().applyParagraphStyle(style.get());
</ins><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><span class="lines">@@ -218,7 +218,7 @@
</span><span class="cx">         return false;
</span><span class="cx">     RefPtr&lt;Range&gt; oldRange = frame-&gt;selection()-&gt;selection().toNormalizedRange();
</span><span class="cx">     EAffinity affinity = frame-&gt;selection()-&gt;affinity();
</span><del>-    if (!frame-&gt;editor()-&gt;client()-&gt;shouldChangeSelectedRange(oldRange.get(), newRange.get(), affinity, false))
</del><ins>+    if (!frame-&gt;editor().client()-&gt;shouldChangeSelectedRange(oldRange.get(), newRange.get(), affinity, false))
</ins><span class="cx">         return false;
</span><span class="cx">     frame-&gt;selection()-&gt;setSelectedRange(newRange.get(), affinity, true);
</span><span class="cx">     return true;
</span><span class="lines">@@ -226,16 +226,16 @@
</span><span class="cx"> 
</span><span class="cx"> static TriState stateStyle(Frame* frame, CSSPropertyID propertyID, const char* desiredValue)
</span><span class="cx"> {
</span><del>-    if (frame-&gt;editor()-&gt;behavior().shouldToggleStyleBasedOnStartOfSelection())
-        return frame-&gt;editor()-&gt;selectionStartHasStyle(propertyID, desiredValue) ? TrueTriState : FalseTriState;
-    return frame-&gt;editor()-&gt;selectionHasStyle(propertyID, desiredValue);
</del><ins>+    if (frame-&gt;editor().behavior().shouldToggleStyleBasedOnStartOfSelection())
+        return frame-&gt;editor().selectionStartHasStyle(propertyID, desiredValue) ? TrueTriState : FalseTriState;
+    return frame-&gt;editor().selectionHasStyle(propertyID, desiredValue);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static String valueStyle(Frame* frame, CSSPropertyID propertyID)
</span><span class="cx"> {
</span><span class="cx">     // FIXME: Rather than retrieving the style at the start of the current selection,
</span><span class="cx">     // we should retrieve the style present throughout the selection for non-Mac platforms.
</span><del>-    return frame-&gt;editor()-&gt;selectionStartCSSPropertyValue(propertyID);
</del><ins>+    return frame-&gt;editor().selectionStartCSSPropertyValue(propertyID);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static TriState stateTextWritingDirection(Frame* frame, WritingDirection direction)
</span><span class="lines">@@ -281,7 +281,7 @@
</span><span class="cx"> 
</span><span class="cx"> static bool executeCopy(Frame* frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="cx"> {
</span><del>-    frame-&gt;editor()-&gt;copy();
</del><ins>+    frame-&gt;editor().copy();
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -298,18 +298,18 @@
</span><span class="cx"> {
</span><span class="cx">     if (source == CommandFromMenuOrKeyBinding) {
</span><span class="cx">         UserTypingGestureIndicator typingGestureIndicator(frame);
</span><del>-        frame-&gt;editor()-&gt;cut();
</del><ins>+        frame-&gt;editor().cut();
</ins><span class="cx">     } else
</span><del>-        frame-&gt;editor()-&gt;cut();
</del><ins>+        frame-&gt;editor().cut();
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeDefaultParagraphSeparator(Frame* frame, Event*, EditorCommandSource, const String&amp; value)
</span><span class="cx"> {
</span><span class="cx">     if (equalIgnoringCase(value, &quot;div&quot;))
</span><del>-        frame-&gt;editor()-&gt;setDefaultParagraphSeparator(EditorParagraphSeparatorIsDiv);
</del><ins>+        frame-&gt;editor().setDefaultParagraphSeparator(EditorParagraphSeparatorIsDiv);
</ins><span class="cx">     else if (equalIgnoringCase(value, &quot;p&quot;))
</span><del>-        frame-&gt;editor()-&gt;setDefaultParagraphSeparator(EditorParagraphSeparatorIsP);
</del><ins>+        frame-&gt;editor().setDefaultParagraphSeparator(EditorParagraphSeparatorIsP);
</ins><span class="cx"> 
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="lines">@@ -320,7 +320,7 @@
</span><span class="cx">     case CommandFromMenuOrKeyBinding: {
</span><span class="cx">         // Doesn't modify the text if the current selection isn't a range.
</span><span class="cx">         UserTypingGestureIndicator typingGestureIndicator(frame);
</span><del>-        frame-&gt;editor()-&gt;performDelete();
</del><ins>+        frame-&gt;editor().performDelete();
</ins><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="cx">     case CommandFromDOM:
</span><span class="lines">@@ -336,32 +336,32 @@
</span><span class="cx"> 
</span><span class="cx"> static bool executeDeleteBackward(Frame* frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="cx"> {
</span><del>-    frame-&gt;editor()-&gt;deleteWithDirection(DirectionBackward, CharacterGranularity, false, true);
</del><ins>+    frame-&gt;editor().deleteWithDirection(DirectionBackward, CharacterGranularity, false, true);
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeDeleteBackwardByDecomposingPreviousCharacter(Frame* frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="cx"> {
</span><span class="cx">     LOG_ERROR(&quot;DeleteBackwardByDecomposingPreviousCharacter is not implemented, doing DeleteBackward instead&quot;);
</span><del>-    frame-&gt;editor()-&gt;deleteWithDirection(DirectionBackward, CharacterGranularity, false, true);
</del><ins>+    frame-&gt;editor().deleteWithDirection(DirectionBackward, CharacterGranularity, false, true);
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeDeleteForward(Frame* frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="cx"> {
</span><del>-    frame-&gt;editor()-&gt;deleteWithDirection(DirectionForward, CharacterGranularity, false, true);
</del><ins>+    frame-&gt;editor().deleteWithDirection(DirectionForward, CharacterGranularity, false, true);
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeDeleteToBeginningOfLine(Frame* frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="cx"> {
</span><del>-    frame-&gt;editor()-&gt;deleteWithDirection(DirectionBackward, LineBoundary, true, false);
</del><ins>+    frame-&gt;editor().deleteWithDirection(DirectionBackward, LineBoundary, true, false);
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeDeleteToBeginningOfParagraph(Frame* frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="cx"> {
</span><del>-    frame-&gt;editor()-&gt;deleteWithDirection(DirectionBackward, ParagraphBoundary, true, false);
</del><ins>+    frame-&gt;editor().deleteWithDirection(DirectionBackward, ParagraphBoundary, true, false);
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -369,7 +369,7 @@
</span><span class="cx"> {
</span><span class="cx">     // Despite its name, this command should delete the newline at the end of
</span><span class="cx">     // a paragraph if you are at the end of a paragraph (like DeleteToEndOfParagraph).
</span><del>-    frame-&gt;editor()-&gt;deleteWithDirection(DirectionForward, LineBoundary, true, false);
</del><ins>+    frame-&gt;editor().deleteWithDirection(DirectionForward, LineBoundary, true, false);
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -377,40 +377,40 @@
</span><span class="cx"> {
</span><span class="cx">     // Despite its name, this command should delete the newline at the end of
</span><span class="cx">     // a paragraph if you are at the end of a paragraph.
</span><del>-    frame-&gt;editor()-&gt;deleteWithDirection(DirectionForward, ParagraphBoundary, true, false);
</del><ins>+    frame-&gt;editor().deleteWithDirection(DirectionForward, ParagraphBoundary, true, false);
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeDeleteToMark(Frame* frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;Range&gt; mark = frame-&gt;editor()-&gt;mark().toNormalizedRange();
</del><ins>+    RefPtr&lt;Range&gt; mark = frame-&gt;editor().mark().toNormalizedRange();
</ins><span class="cx">     if (mark) {
</span><span class="cx">         FrameSelection* selection = frame-&gt;selection();
</span><del>-        bool selected = selection-&gt;setSelectedRange(unionDOMRanges(mark.get(), frame-&gt;editor()-&gt;selectedRange().get()).get(), DOWNSTREAM, true);
</del><ins>+        bool selected = selection-&gt;setSelectedRange(unionDOMRanges(mark.get(), frame-&gt;editor().selectedRange().get()).get(), DOWNSTREAM, true);
</ins><span class="cx">         ASSERT(selected);
</span><span class="cx">         if (!selected)
</span><span class="cx">             return false;
</span><span class="cx">     }
</span><del>-    frame-&gt;editor()-&gt;performDelete();
-    frame-&gt;editor()-&gt;setMark(frame-&gt;selection()-&gt;selection());
</del><ins>+    frame-&gt;editor().performDelete();
+    frame-&gt;editor().setMark(frame-&gt;selection()-&gt;selection());
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeDeleteWordBackward(Frame* frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="cx"> {
</span><del>-    frame-&gt;editor()-&gt;deleteWithDirection(DirectionBackward, WordGranularity, true, false);
</del><ins>+    frame-&gt;editor().deleteWithDirection(DirectionBackward, WordGranularity, true, false);
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeDeleteWordForward(Frame* frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="cx"> {
</span><del>-    frame-&gt;editor()-&gt;deleteWithDirection(DirectionForward, WordGranularity, true, false);
</del><ins>+    frame-&gt;editor().deleteWithDirection(DirectionForward, WordGranularity, true, false);
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeFindString(Frame* frame, Event*, EditorCommandSource, const String&amp; value)
</span><span class="cx"> {
</span><del>-    return frame-&gt;editor()-&gt;findString(value, true, false, true, false);
</del><ins>+    return frame-&gt;editor().findString(value, true, false, true, false);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeFontName(Frame* frame, Event*, EditorCommandSource source, const String&amp; value)
</span><span class="lines">@@ -456,7 +456,7 @@
</span><span class="cx"> {
</span><span class="cx">     switch (source) {
</span><span class="cx">     case CommandFromMenuOrKeyBinding:
</span><del>-        frame-&gt;editor()-&gt;deleteWithDirection(DirectionForward, CharacterGranularity, false, true);
</del><ins>+        frame-&gt;editor().deleteWithDirection(DirectionForward, CharacterGranularity, false, true);
</ins><span class="cx">         return true;
</span><span class="cx">     case CommandFromDOM:
</span><span class="cx">     case CommandFromDOMWithUserInterface:
</span><span class="lines">@@ -472,7 +472,7 @@
</span><span class="cx"> 
</span><span class="cx"> static bool executeIgnoreSpelling(Frame* frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="cx"> {
</span><del>-    frame-&gt;editor()-&gt;ignoreSpelling();
</del><ins>+    frame-&gt;editor().ignoreSpelling();
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -528,7 +528,7 @@
</span><span class="cx"> static bool executeInsertNewline(Frame* frame, Event* event, EditorCommandSource, const String&amp;)
</span><span class="cx"> {
</span><span class="cx">     Frame* targetFrame = WebCore::targetFrame(frame, event);
</span><del>-    return targetFrame-&gt;eventHandler()-&gt;handleTextInputEvent(&quot;\n&quot;, event, targetFrame-&gt;editor()-&gt;canEditRichly() ? TextEventInputKeyboard : TextEventInputLineBreak);
</del><ins>+    return targetFrame-&gt;eventHandler()-&gt;handleTextInputEvent(&quot;\n&quot;, event, targetFrame-&gt;editor().canEditRichly() ? TextEventInputKeyboard : TextEventInputLineBreak);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeInsertNewlineInQuotedContent(Frame* frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="lines">@@ -591,7 +591,7 @@
</span><span class="cx">     RefPtr&lt;MutableStylePropertySet&gt; style = MutableStylePropertySet::create();
</span><span class="cx">     style-&gt;setProperty(CSSPropertyUnicodeBidi, CSSValueEmbed);
</span><span class="cx">     style-&gt;setProperty(CSSPropertyDirection, CSSValueLtr);
</span><del>-    frame-&gt;editor()-&gt;applyStyle(style.get(), EditActionSetWritingDirection);
</del><ins>+    frame-&gt;editor().applyStyle(style.get(), EditActionSetWritingDirection);
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -599,7 +599,7 @@
</span><span class="cx"> {
</span><span class="cx">     RefPtr&lt;MutableStylePropertySet&gt; style = MutableStylePropertySet::create();
</span><span class="cx">     style-&gt;setProperty(CSSPropertyUnicodeBidi, CSSValueNormal);
</span><del>-    frame-&gt;editor()-&gt;applyStyle(style.get(), EditActionSetWritingDirection);
</del><ins>+    frame-&gt;editor().applyStyle(style.get(), EditActionSetWritingDirection);
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -608,7 +608,7 @@
</span><span class="cx">     RefPtr&lt;MutableStylePropertySet&gt; style = MutableStylePropertySet::create();
</span><span class="cx">     style-&gt;setProperty(CSSPropertyUnicodeBidi, CSSValueEmbed);
</span><span class="cx">     style-&gt;setProperty(CSSPropertyDirection, CSSValueRtl);
</span><del>-    frame-&gt;editor()-&gt;applyStyle(style.get(), EditActionSetWritingDirection);
</del><ins>+    frame-&gt;editor().applyStyle(style.get(), EditActionSetWritingDirection);
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -904,7 +904,7 @@
</span><span class="cx"> 
</span><span class="cx"> static bool executeToggleOverwrite(Frame* frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="cx"> {
</span><del>-    frame-&gt;editor()-&gt;toggleOverwriteModeEnabled();
</del><ins>+    frame-&gt;editor().toggleOverwriteModeEnabled();
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -912,22 +912,22 @@
</span><span class="cx"> {
</span><span class="cx">     if (source == CommandFromMenuOrKeyBinding) {
</span><span class="cx">         UserTypingGestureIndicator typingGestureIndicator(frame);
</span><del>-        frame-&gt;editor()-&gt;paste();
</del><ins>+        frame-&gt;editor().paste();
</ins><span class="cx">     } else
</span><del>-        frame-&gt;editor()-&gt;paste();
</del><ins>+        frame-&gt;editor().paste();
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executePasteGlobalSelection(Frame* frame, Event*, EditorCommandSource source, const String&amp;)
</span><span class="cx"> {
</span><del>-    if (!frame-&gt;editor()-&gt;client()-&gt;supportsGlobalSelection())
</del><ins>+    if (!frame-&gt;editor().client()-&gt;supportsGlobalSelection())
</ins><span class="cx">         return false;
</span><span class="cx">     ASSERT_UNUSED(source, source == CommandFromMenuOrKeyBinding);
</span><span class="cx">     UserTypingGestureIndicator typingGestureIndicator(frame);
</span><span class="cx"> 
</span><span class="cx">     bool oldSelectionMode = Pasteboard::generalPasteboard()-&gt;isSelectionMode();
</span><span class="cx">     Pasteboard::generalPasteboard()-&gt;setSelectionMode(true);
</span><del>-    frame-&gt;editor()-&gt;paste();
</del><ins>+    frame-&gt;editor().paste();
</ins><span class="cx">     Pasteboard::generalPasteboard()-&gt;setSelectionMode(oldSelectionMode);
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="lines">@@ -936,9 +936,9 @@
</span><span class="cx"> {
</span><span class="cx">     if (source == CommandFromMenuOrKeyBinding) {
</span><span class="cx">         UserTypingGestureIndicator typingGestureIndicator(frame);
</span><del>-        frame-&gt;editor()-&gt;pasteAsPlainText();
</del><ins>+        frame-&gt;editor().pasteAsPlainText();
</ins><span class="cx">     } else
</span><del>-        frame-&gt;editor()-&gt;pasteAsPlainText();
</del><ins>+        frame-&gt;editor().pasteAsPlainText();
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -946,9 +946,9 @@
</span><span class="cx"> {
</span><span class="cx">     if (source == CommandFromMenuOrKeyBinding) {
</span><span class="cx">         UserTypingGestureIndicator typingGestureIndicator(frame);
</span><del>-        frame-&gt;editor()-&gt;pasteAsPlainText();
</del><ins>+        frame-&gt;editor().pasteAsPlainText();
</ins><span class="cx">     } else
</span><del>-        frame-&gt;editor()-&gt;pasteAsPlainText();
</del><ins>+        frame-&gt;editor().pasteAsPlainText();
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -963,13 +963,13 @@
</span><span class="cx"> 
</span><span class="cx"> static bool executeRedo(Frame* frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="cx"> {
</span><del>-    frame-&gt;editor()-&gt;redo();
</del><ins>+    frame-&gt;editor().redo();
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeRemoveFormat(Frame* frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="cx"> {
</span><del>-    frame-&gt;editor()-&gt;removeFormattingAndStyle();
</del><ins>+    frame-&gt;editor().removeFormattingAndStyle();
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1026,8 +1026,8 @@
</span><span class="cx"> 
</span><span class="cx"> static bool executeSelectToMark(Frame* frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;Range&gt; mark = frame-&gt;editor()-&gt;mark().toNormalizedRange();
-    RefPtr&lt;Range&gt; selection = frame-&gt;editor()-&gt;selectedRange();
</del><ins>+    RefPtr&lt;Range&gt; mark = frame-&gt;editor().mark().toNormalizedRange();
+    RefPtr&lt;Range&gt; selection = frame-&gt;editor().selectedRange();
</ins><span class="cx">     if (!mark || !selection) {
</span><span class="cx">         systemBeep();
</span><span class="cx">         return false;
</span><span class="lines">@@ -1043,7 +1043,7 @@
</span><span class="cx"> 
</span><span class="cx"> static bool executeSetMark(Frame* frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="cx"> {
</span><del>-    frame-&gt;editor()-&gt;setMark(frame-&gt;selection()-&gt;selection());
</del><ins>+    frame-&gt;editor().setMark(frame-&gt;selection()-&gt;selection());
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1055,13 +1055,13 @@
</span><span class="cx"> 
</span><span class="cx"> static bool executeStyleWithCSS(Frame* frame, Event*, EditorCommandSource, const String&amp; value)
</span><span class="cx"> {
</span><del>-    frame-&gt;editor()-&gt;setShouldStyleWithCSS(!equalIgnoringCase(value, &quot;false&quot;));
</del><ins>+    frame-&gt;editor().setShouldStyleWithCSS(!equalIgnoringCase(value, &quot;false&quot;));
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeUseCSS(Frame* frame, Event*, EditorCommandSource, const String&amp; value)
</span><span class="cx"> {
</span><del>-    frame-&gt;editor()-&gt;setShouldStyleWithCSS(equalIgnoringCase(value, &quot;false&quot;));
</del><ins>+    frame-&gt;editor().setShouldStyleWithCSS(equalIgnoringCase(value, &quot;false&quot;));
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1077,21 +1077,21 @@
</span><span class="cx"> 
</span><span class="cx"> static bool executeSwapWithMark(Frame* frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="cx"> {
</span><del>-    const VisibleSelection&amp; mark = frame-&gt;editor()-&gt;mark();
</del><ins>+    const VisibleSelection&amp; mark = frame-&gt;editor().mark();
</ins><span class="cx">     const VisibleSelection&amp; selection = frame-&gt;selection()-&gt;selection();
</span><span class="cx">     if (mark.isNone() || selection.isNone()) {
</span><span class="cx">         systemBeep();
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><span class="cx">     frame-&gt;selection()-&gt;setSelection(mark);
</span><del>-    frame-&gt;editor()-&gt;setMark(selection);
</del><ins>+    frame-&gt;editor().setMark(selection);
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC)
</span><span class="cx"> static bool executeTakeFindStringFromSelection(Frame* frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="cx"> {
</span><del>-    frame-&gt;editor()-&gt;takeFindStringFromSelection();
</del><ins>+    frame-&gt;editor().takeFindStringFromSelection();
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="lines">@@ -1108,7 +1108,7 @@
</span><span class="cx"> 
</span><span class="cx"> static bool executeTranspose(Frame* frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="cx"> {
</span><del>-    frame-&gt;editor()-&gt;transpose();
</del><ins>+    frame-&gt;editor().transpose();
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1120,7 +1120,7 @@
</span><span class="cx"> 
</span><span class="cx"> static bool executeUndo(Frame* frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="cx"> {
</span><del>-    frame-&gt;editor()-&gt;undo();
</del><ins>+    frame-&gt;editor().undo();
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1143,15 +1143,15 @@
</span><span class="cx"> 
</span><span class="cx"> static bool executeYank(Frame* frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="cx"> {
</span><del>-    frame-&gt;editor()-&gt;insertTextWithoutSendingTextEvent(frame-&gt;editor()-&gt;killRing()-&gt;yank(), false, 0);
-    frame-&gt;editor()-&gt;killRing()-&gt;setToYankedState();
</del><ins>+    frame-&gt;editor().insertTextWithoutSendingTextEvent(frame-&gt;editor().killRing()-&gt;yank(), false, 0);
+    frame-&gt;editor().killRing()-&gt;setToYankedState();
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeYankAndSelect(Frame* frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="cx"> {
</span><del>-    frame-&gt;editor()-&gt;insertTextWithoutSendingTextEvent(frame-&gt;editor()-&gt;killRing()-&gt;yank(), true, 0);
-    frame-&gt;editor()-&gt;killRing()-&gt;setToYankedState();
</del><ins>+    frame-&gt;editor().insertTextWithoutSendingTextEvent(frame-&gt;editor().killRing()-&gt;yank(), true, 0);
+    frame-&gt;editor().killRing()-&gt;setToYankedState();
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1175,7 +1175,7 @@
</span><span class="cx">     Settings* settings = frame-&gt;settings();
</span><span class="cx">     bool defaultValue = settings &amp;&amp; settings-&gt;javaScriptCanAccessClipboard();
</span><span class="cx"> 
</span><del>-    EditorClient* client = frame-&gt;editor()-&gt;client();
</del><ins>+    EditorClient* client = frame-&gt;editor().client();
</ins><span class="cx">     return client ? client-&gt;canCopyCut(frame, defaultValue) : defaultValue;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1187,7 +1187,7 @@
</span><span class="cx">     Settings* settings = frame-&gt;settings();
</span><span class="cx">     bool defaultValue = settings &amp;&amp; settings-&gt;javaScriptCanAccessClipboard() &amp;&amp; settings-&gt;DOMPasteAllowed();
</span><span class="cx"> 
</span><del>-    EditorClient* client = frame-&gt;editor()-&gt;client();
</del><ins>+    EditorClient* client = frame-&gt;editor().client();
</ins><span class="cx">     return client ? client-&gt;canPaste(frame, defaultValue) : defaultValue;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1201,7 +1201,7 @@
</span><span class="cx"> static bool enabledVisibleSelection(Frame* frame, Event* event, EditorCommandSource)
</span><span class="cx"> {
</span><span class="cx">     // The term &quot;visible&quot; here includes a caret in editable text or a range in any text.
</span><del>-    const VisibleSelection&amp; selection = frame-&gt;editor()-&gt;selectionForCommand(event);
</del><ins>+    const VisibleSelection&amp; selection = frame-&gt;editor().selectionForCommand(event);
</ins><span class="cx">     return (selection.isCaret() &amp;&amp; selection.isContentEditable()) || selection.isRange();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1220,37 +1220,37 @@
</span><span class="cx"> 
</span><span class="cx"> static bool enabledVisibleSelectionAndMark(Frame* frame, Event* event, EditorCommandSource)
</span><span class="cx"> {
</span><del>-    const VisibleSelection&amp; selection = frame-&gt;editor()-&gt;selectionForCommand(event);
</del><ins>+    const VisibleSelection&amp; selection = frame-&gt;editor().selectionForCommand(event);
</ins><span class="cx">     return ((selection.isCaret() &amp;&amp; selection.isContentEditable()) || selection.isRange())
</span><del>-        &amp;&amp; frame-&gt;editor()-&gt;mark().isCaretOrRange();
</del><ins>+        &amp;&amp; frame-&gt;editor().mark().isCaretOrRange();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool enableCaretInEditableText(Frame* frame, Event* event, EditorCommandSource)
</span><span class="cx"> {
</span><del>-    const VisibleSelection&amp; selection = frame-&gt;editor()-&gt;selectionForCommand(event);
</del><ins>+    const VisibleSelection&amp; selection = frame-&gt;editor().selectionForCommand(event);
</ins><span class="cx">     return selection.isCaret() &amp;&amp; selection.isContentEditable();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool enabledCopy(Frame* frame, Event*, EditorCommandSource)
</span><span class="cx"> {
</span><del>-    return frame-&gt;editor()-&gt;canDHTMLCopy() || frame-&gt;editor()-&gt;canCopy();
</del><ins>+    return frame-&gt;editor().canDHTMLCopy() || frame-&gt;editor().canCopy();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool enabledCut(Frame* frame, Event*, EditorCommandSource)
</span><span class="cx"> {
</span><del>-    return frame-&gt;editor()-&gt;canDHTMLCut() || frame-&gt;editor()-&gt;canCut();
</del><ins>+    return frame-&gt;editor().canDHTMLCut() || frame-&gt;editor().canCut();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool enabledInEditableText(Frame* frame, Event* event, EditorCommandSource)
</span><span class="cx"> {
</span><del>-    return frame-&gt;editor()-&gt;selectionForCommand(event).rootEditableElement();
</del><ins>+    return frame-&gt;editor().selectionForCommand(event).rootEditableElement();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool enabledDelete(Frame* frame, Event* event, EditorCommandSource source)
</span><span class="cx"> {
</span><span class="cx">     switch (source) {
</span><span class="cx">     case CommandFromMenuOrKeyBinding:    
</span><del>-        return frame-&gt;editor()-&gt;canDelete();
</del><ins>+        return frame-&gt;editor().canDelete();
</ins><span class="cx">     case CommandFromDOM:
</span><span class="cx">     case CommandFromDOMWithUserInterface:
</span><span class="cx">         // &quot;Delete&quot; from DOM is like delete/backspace keypress, affects selected range if non-empty,
</span><span class="lines">@@ -1274,7 +1274,7 @@
</span><span class="cx"> 
</span><span class="cx"> static bool enabledPaste(Frame* frame, Event*, EditorCommandSource)
</span><span class="cx"> {
</span><del>-    return frame-&gt;editor()-&gt;canPaste();
</del><ins>+    return frame-&gt;editor().canPaste();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool enabledRangeInEditableText(Frame* frame, Event*, EditorCommandSource)
</span><span class="lines">@@ -1289,19 +1289,19 @@
</span><span class="cx"> 
</span><span class="cx"> static bool enabledRedo(Frame* frame, Event*, EditorCommandSource)
</span><span class="cx"> {
</span><del>-    return frame-&gt;editor()-&gt;canRedo();
</del><ins>+    return frame-&gt;editor().canRedo();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC)
</span><span class="cx"> static bool enabledTakeFindStringFromSelection(Frame* frame, Event*, EditorCommandSource)
</span><span class="cx"> {
</span><del>-    return frame-&gt;editor()-&gt;canCopyExcludingStandaloneImages();
</del><ins>+    return frame-&gt;editor().canCopyExcludingStandaloneImages();
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> static bool enabledUndo(Frame* frame, Event*, EditorCommandSource)
</span><span class="cx"> {
</span><del>-    return frame-&gt;editor()-&gt;canUndo();
</del><ins>+    return frame-&gt;editor().canUndo();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // State functions
</span><span class="lines">@@ -1323,7 +1323,7 @@
</span><span class="cx"> 
</span><span class="cx"> static TriState stateOrderedList(Frame* frame, Event*)
</span><span class="cx"> {
</span><del>-    return frame-&gt;editor()-&gt;selectionOrderedListState();
</del><ins>+    return frame-&gt;editor().selectionOrderedListState();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static TriState stateStrikethrough(Frame* frame, Event*)
</span><span class="lines">@@ -1333,7 +1333,7 @@
</span><span class="cx"> 
</span><span class="cx"> static TriState stateStyleWithCSS(Frame* frame, Event*)
</span><span class="cx"> {
</span><del>-    return frame-&gt;editor()-&gt;shouldStyleWithCSS() ? TrueTriState : FalseTriState;
</del><ins>+    return frame-&gt;editor().shouldStyleWithCSS() ? TrueTriState : FalseTriState;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static TriState stateSubscript(Frame* frame, Event*)
</span><span class="lines">@@ -1368,7 +1368,7 @@
</span><span class="cx"> 
</span><span class="cx"> static TriState stateUnorderedList(Frame* frame, Event*)
</span><span class="cx"> {
</span><del>-    return frame-&gt;editor()-&gt;selectionUnorderedListState();
</del><ins>+    return frame-&gt;editor().selectionUnorderedListState();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static TriState stateJustifyCenter(Frame* frame, Event*)
</span><span class="lines">@@ -1405,7 +1405,7 @@
</span><span class="cx"> 
</span><span class="cx"> static String valueDefaultParagraphSeparator(Frame* frame, Event*)
</span><span class="cx"> {
</span><del>-    switch (frame-&gt;editor()-&gt;defaultParagraphSeparator()) {
</del><ins>+    switch (frame-&gt;editor().defaultParagraphSeparator()) {
</ins><span class="cx">     case EditorParagraphSeparatorIsDiv:
</span><span class="cx">         return divTag.localName();
</span><span class="cx">     case EditorParagraphSeparatorIsP:
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingFrameSelectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/FrameSelection.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/FrameSelection.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/editing/FrameSelection.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -102,7 +102,7 @@
</span><span class="cx"> 
</span><span class="cx"> static inline bool shouldAlwaysUseDirectionalSelection(Frame* frame)
</span><span class="cx"> {
</span><del>-    return !frame || frame-&gt;editor()-&gt;behavior().shouldConsiderSelectionAsDirectional();
</del><ins>+    return !frame || frame-&gt;editor().behavior().shouldConsiderSelectionAsDirectional();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> FrameSelection::FrameSelection(Frame* frame)
</span><span class="lines">@@ -327,11 +327,11 @@
</span><span class="cx">     m_xPosForVerticalArrowNavigation = NoXPosForVerticalArrowNavigation();
</span><span class="cx">     selectFrameElementInParentIfFullySelected();
</span><span class="cx">     notifyRendererOfSelectionChange(userTriggered);
</span><del>-    m_frame-&gt;editor()-&gt;respondToChangedSelection(oldSelection, options);
</del><ins>+    m_frame-&gt;editor().respondToChangedSelection(oldSelection, options);
</ins><span class="cx">     if (userTriggered == UserTriggered) {
</span><span class="cx">         ScrollAlignment alignment;
</span><span class="cx"> 
</span><del>-        if (m_frame-&gt;editor()-&gt;behavior().shouldCenterAlignWhenSelectionIsRevealed())
</del><ins>+        if (m_frame-&gt;editor().behavior().shouldCenterAlignWhenSelectionIsRevealed())
</ins><span class="cx">             alignment = (align == AlignCursorOnScrollAlways) ? ScrollAlignment::alignCenterAlways : ScrollAlignment::alignCenterIfNeeded;
</span><span class="cx">         else
</span><span class="cx">             alignment = (align == AlignCursorOnScrollAlways) ? ScrollAlignment::alignTopAlways : ScrollAlignment::alignToEdgeIfNeeded;
</span><span class="lines">@@ -586,7 +586,7 @@
</span><span class="cx"> {
</span><span class="cx">     VisiblePosition positionAfterCurrentWord = nextWordPosition(originalPosition);
</span><span class="cx"> 
</span><del>-    if (m_frame &amp;&amp; m_frame-&gt;editor()-&gt;behavior().shouldSkipSpaceWhenMovingRight()) {
</del><ins>+    if (m_frame &amp;&amp; m_frame-&gt;editor().behavior().shouldSkipSpaceWhenMovingRight()) {
</ins><span class="cx">         // In order to skip spaces when moving right, we advance one
</span><span class="cx">         // word further and then move one word back. Given the
</span><span class="cx">         // semantics of previousWordPosition() this will put us at the
</span><span class="lines">@@ -713,7 +713,7 @@
</span><span class="cx"> #if USE(ICU_UNICODE)
</span><span class="cx">         // Visual word movement relies on isWordTextBreak which is not implemented in WinCE and QT.
</span><span class="cx">         // https://bugs.webkit.org/show_bug.cgi?id=81136.
</span><del>-        bool skipsSpaceWhenMovingRight = m_frame &amp;&amp; m_frame-&gt;editor()-&gt;behavior().shouldSkipSpaceWhenMovingRight();
</del><ins>+        bool skipsSpaceWhenMovingRight = m_frame &amp;&amp; m_frame-&gt;editor().behavior().shouldSkipSpaceWhenMovingRight();
</ins><span class="cx">         pos = rightWordPosition(VisiblePosition(m_selection.extent(), m_selection.affinity()), skipsSpaceWhenMovingRight);
</span><span class="cx">         break;
</span><span class="cx"> #endif
</span><span class="lines">@@ -887,7 +887,7 @@
</span><span class="cx">         break;
</span><span class="cx">     case WordGranularity: {
</span><span class="cx"> #if USE(ICU_UNICODE)
</span><del>-        bool skipsSpaceWhenMovingRight = m_frame &amp;&amp; m_frame-&gt;editor()-&gt;behavior().shouldSkipSpaceWhenMovingRight();
</del><ins>+        bool skipsSpaceWhenMovingRight = m_frame &amp;&amp; m_frame-&gt;editor().behavior().shouldSkipSpaceWhenMovingRight();
</ins><span class="cx">         pos = leftWordPosition(VisiblePosition(m_selection.extent(), m_selection.affinity()), skipsSpaceWhenMovingRight);
</span><span class="cx">         break;
</span><span class="cx"> #endif
</span><span class="lines">@@ -1024,7 +1024,7 @@
</span><span class="cx"> 
</span><span class="cx">         if (!m_selection.isCaret()
</span><span class="cx">             &amp;&amp; (granularity == WordGranularity || granularity == ParagraphGranularity || granularity == LineGranularity)
</span><del>-            &amp;&amp; m_frame &amp;&amp; !m_frame-&gt;editor()-&gt;behavior().shouldExtendSelectionByWordOrLineAcrossCaret()) {
</del><ins>+            &amp;&amp; m_frame &amp;&amp; !m_frame-&gt;editor().behavior().shouldExtendSelectionByWordOrLineAcrossCaret()) {
</ins><span class="cx">             // Don't let the selection go across the base position directly. Needed to match mac
</span><span class="cx">             // behavior when, for instance, word-selecting backwards starting with the caret in
</span><span class="cx">             // the middle of a word and then word-selecting forward, leaving the caret in the
</span><span class="lines">@@ -1037,7 +1037,7 @@
</span><span class="cx"> 
</span><span class="cx">         // Standard Mac behavior when extending to a boundary is grow the selection rather than leaving the
</span><span class="cx">         // base in place and moving the extent. Matches NSTextView.
</span><del>-        if (!m_frame || !m_frame-&gt;editor()-&gt;behavior().shouldAlwaysGrowSelectionWhenExtendingToBoundary() || m_selection.isCaret() || !isBoundary(granularity))
</del><ins>+        if (!m_frame || !m_frame-&gt;editor().behavior().shouldAlwaysGrowSelectionWhenExtendingToBoundary() || m_selection.isCaret() || !isBoundary(granularity))
</ins><span class="cx">             setExtent(position, userTriggered);
</span><span class="cx">         else {
</span><span class="cx">             TextDirection textDirection = directionOfEnclosingBlock();
</span><span class="lines">@@ -1749,7 +1749,7 @@
</span><span class="cx"> 
</span><span class="cx"> inline static bool shouldStopBlinkingDueToTypingCommand(Frame* frame)
</span><span class="cx"> {
</span><del>-    return frame-&gt;editor()-&gt;lastEditCommand() &amp;&amp; frame-&gt;editor()-&gt;lastEditCommand()-&gt;shouldStopCaretBlinking();
</del><ins>+    return frame-&gt;editor().lastEditCommand() &amp;&amp; frame-&gt;editor().lastEditCommand()-&gt;shouldStopCaretBlinking();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void FrameSelection::updateAppearance()
</span><span class="lines">@@ -1928,7 +1928,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool FrameSelection::shouldDeleteSelection(const VisibleSelection&amp; selection) const
</span><span class="cx"> {
</span><del>-    return m_frame-&gt;editor()-&gt;client()-&gt;shouldDeleteRange(selection.toNormalizedRange().get());
</del><ins>+    return m_frame-&gt;editor().client()-&gt;shouldDeleteRange(selection.toNormalizedRange().get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> FloatRect FrameSelection::bounds(bool clipToVisibleContent) const
</span><span class="lines">@@ -2047,7 +2047,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool FrameSelection::shouldChangeSelection(const VisibleSelection&amp; newSelection) const
</span><span class="cx"> {
</span><del>-    return m_frame-&gt;editor()-&gt;shouldChangeSelection(selection(), newSelection, newSelection.affinity(), false);
</del><ins>+    return m_frame-&gt;editor().shouldChangeSelection(selection(), newSelection, newSelection.affinity(), false);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool FrameSelection::dispatchSelectStart()
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingInsertTextCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/InsertTextCommand.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/InsertTextCommand.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/editing/InsertTextCommand.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -147,7 +147,7 @@
</span><span class="cx">         // anything other than NoSelection. The rest of this function requires a real endingSelection, so bail out.
</span><span class="cx">         if (endingSelection().isNone())
</span><span class="cx">             return;
</span><del>-    } else if (document()-&gt;frame()-&gt;editor()-&gt;isOverwriteModeEnabled()) {
</del><ins>+    } else if (document()-&gt;frame()-&gt;editor().isOverwriteModeEnabled()) {
</ins><span class="cx">         if (performOverwrite(m_text, m_selectInsertedText))
</span><span class="cx">             return;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingSpellCheckercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/SpellChecker.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/SpellChecker.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/editing/SpellChecker.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -212,7 +212,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    m_frame-&gt;editor()-&gt;markAndReplaceFor(m_processingRequest, results);
</del><ins>+    m_frame-&gt;editor().markAndReplaceFor(m_processingRequest, results);
</ins><span class="cx"> 
</span><span class="cx">     if (m_lastProcessedSequence &lt; sequence)
</span><span class="cx">         m_lastProcessedSequence = sequence;
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingSpellingCorrectionCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/SpellingCorrectionCommand.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/SpellingCorrectionCommand.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/editing/SpellingCorrectionCommand.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -63,7 +63,7 @@
</span><span class="cx">     virtual void doUnapply() OVERRIDE
</span><span class="cx">     {
</span><span class="cx">         if (!m_hasBeenUndone) {
</span><del>-            document()-&gt;frame()-&gt;editor()-&gt;unappliedSpellCorrection(startingSelection(), m_corrected, m_correction);
</del><ins>+            document()-&gt;frame()-&gt;editor().unappliedSpellCorrection(startingSelection(), m_corrected, m_correction);
</ins><span class="cx">             m_hasBeenUndone = true;
</span><span class="cx">         }
</span><span class="cx">         
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingTypingCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/TypingCommand.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/TypingCommand.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/editing/TypingCommand.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -161,7 +161,7 @@
</span><span class="cx">     ASSERT(frame);
</span><span class="cx"> 
</span><span class="cx">     if (!text.isEmpty())
</span><del>-        document-&gt;frame()-&gt;editor()-&gt;updateMarkersForWordsAffectedByEditing(isSpaceOrNewline(text.characters()[0]));
</del><ins>+        document-&gt;frame()-&gt;editor().updateMarkersForWordsAffectedByEditing(isSpaceOrNewline(text.characters()[0]));
</ins><span class="cx">     
</span><span class="cx">     insertText(document, text, frame-&gt;selection()-&gt;selection(), options, composition);
</span><span class="cx"> }
</span><span class="lines">@@ -237,7 +237,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(frame);
</span><span class="cx"> 
</span><del>-    RefPtr&lt;CompositeEditCommand&gt; lastEditCommand = frame-&gt;editor()-&gt;lastEditCommand();
</del><ins>+    RefPtr&lt;CompositeEditCommand&gt; lastEditCommand = frame-&gt;editor().lastEditCommand();
</ins><span class="cx">     if (!lastEditCommand || !lastEditCommand-&gt;isTypingCommand() || !static_cast&lt;TypingCommand*&gt;(lastEditCommand.get())-&gt;isOpenForMoreTyping())
</span><span class="cx">         return 0;
</span><span class="cx"> 
</span><span class="lines">@@ -298,14 +298,14 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC)
</span><del>-    if (!frame-&gt;editor()-&gt;isContinuousSpellCheckingEnabled()
-     &amp;&amp; !frame-&gt;editor()-&gt;isAutomaticQuoteSubstitutionEnabled()
-     &amp;&amp; !frame-&gt;editor()-&gt;isAutomaticLinkDetectionEnabled()
-     &amp;&amp; !frame-&gt;editor()-&gt;isAutomaticDashSubstitutionEnabled()
-     &amp;&amp; !frame-&gt;editor()-&gt;isAutomaticTextReplacementEnabled())
-        return;
</del><ins>+    if (!frame-&gt;editor().isContinuousSpellCheckingEnabled()
+        &amp;&amp; !frame-&gt;editor().isAutomaticQuoteSubstitutionEnabled()
+        &amp;&amp; !frame-&gt;editor().isAutomaticLinkDetectionEnabled()
+        &amp;&amp; !frame-&gt;editor().isAutomaticDashSubstitutionEnabled()
+        &amp;&amp; !frame-&gt;editor().isAutomaticTextReplacementEnabled())
+            return;
</ins><span class="cx"> #else
</span><del>-    if (!frame-&gt;editor()-&gt;isContinuousSpellCheckingEnabled())
</del><ins>+    if (!frame-&gt;editor().isContinuousSpellCheckingEnabled())
</ins><span class="cx">         return;
</span><span class="cx"> #endif
</span><span class="cx">     // Take a look at the selection that results after typing and determine whether we need to spellcheck. 
</span><span class="lines">@@ -322,9 +322,9 @@
</span><span class="cx">             String strippedPreviousWord;
</span><span class="cx">             if (range &amp;&amp; (commandType == TypingCommand::InsertText || commandType == TypingCommand::InsertLineBreak || commandType == TypingCommand::InsertParagraphSeparator || commandType == TypingCommand::InsertParagraphSeparatorInQuotedContent))
</span><span class="cx">                 strippedPreviousWord = plainText(range.get()).stripWhiteSpace();
</span><del>-            frame-&gt;editor()-&gt;markMisspellingsAfterTypingToWord(p1, endingSelection(), !strippedPreviousWord.isEmpty());
</del><ins>+            frame-&gt;editor().markMisspellingsAfterTypingToWord(p1, endingSelection(), !strippedPreviousWord.isEmpty());
</ins><span class="cx">         } else if (commandType == TypingCommand::InsertText)
</span><del>-            frame-&gt;editor()-&gt;startAlternativeTextUITimer();
</del><ins>+            frame-&gt;editor().startAlternativeTextUITimer();
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -337,14 +337,14 @@
</span><span class="cx">     updatePreservesTypingStyle(commandTypeForAddedTyping);
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC)
</span><del>-    frame-&gt;editor()-&gt;appliedEditing(this);
</del><ins>+    frame-&gt;editor().appliedEditing(this);
</ins><span class="cx">     // Since the spellchecking code may also perform corrections and other replacements, it should happen after the typing changes.
</span><span class="cx">     if (!m_shouldPreventSpellChecking)
</span><span class="cx">         markMisspellingsAfterTyping(commandTypeForAddedTyping);
</span><span class="cx"> #else
</span><span class="cx">     // The old spellchecking code requires that checking be done first, to prevent issues like that in 6864072, where &lt;doesn't&gt; is marked as misspelled.
</span><span class="cx">     markMisspellingsAfterTyping(commandTypeForAddedTyping);
</span><del>-    frame-&gt;editor()-&gt;appliedEditing(this);
</del><ins>+    frame-&gt;editor().appliedEditing(this);
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -427,7 +427,7 @@
</span><span class="cx">     if (!frame)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    frame-&gt;editor()-&gt;updateMarkersForWordsAffectedByEditing(false);
</del><ins>+    frame-&gt;editor().updateMarkersForWordsAffectedByEditing(false);
</ins><span class="cx"> 
</span><span class="cx">     VisibleSelection selectionToDelete;
</span><span class="cx">     VisibleSelection selectionAfterUndo;
</span><span class="lines">@@ -514,7 +514,7 @@
</span><span class="cx">         return;
</span><span class="cx">     
</span><span class="cx">     if (killRing)
</span><del>-        frame-&gt;editor()-&gt;addToKillRing(selectionToDelete.toNormalizedRange().get(), false);
</del><ins>+        frame-&gt;editor().addToKillRing(selectionToDelete.toNormalizedRange().get(), false);
</ins><span class="cx">     // Make undo select everything that has been deleted, unless an undo will undo more than just this deletion.
</span><span class="cx">     // FIXME: This behaves like TextEdit except for the case where you open with text insertion and then delete
</span><span class="cx">     // more text than you insert.  In that case all of the text that was around originally should be selected.
</span><span class="lines">@@ -531,7 +531,7 @@
</span><span class="cx">     if (!frame)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    frame-&gt;editor()-&gt;updateMarkersForWordsAffectedByEditing(false);
</del><ins>+    frame-&gt;editor().updateMarkersForWordsAffectedByEditing(false);
</ins><span class="cx"> 
</span><span class="cx">     VisibleSelection selectionToDelete;
</span><span class="cx">     VisibleSelection selectionAfterUndo;
</span><span class="lines">@@ -607,7 +607,7 @@
</span><span class="cx">         return;
</span><span class="cx">         
</span><span class="cx">     if (killRing)
</span><del>-        frame-&gt;editor()-&gt;addToKillRing(selectionToDelete.toNormalizedRange().get(), false);
</del><ins>+        frame-&gt;editor().addToKillRing(selectionToDelete.toNormalizedRange().get(), false);
</ins><span class="cx">     // make undo select what was deleted
</span><span class="cx">     setStartingSelection(selectionAfterUndo);
</span><span class="cx">     CompositeEditCommand::deleteSelection(selectionToDelete, m_smartDelete);
</span></span></pre></div>
<a id="trunkSourceWebCoreeditinghtmleditingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/htmlediting.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/htmlediting.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/editing/htmlediting.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -855,7 +855,7 @@
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;HTMLElement&gt; createDefaultParagraphElement(Document* document)
</span><span class="cx"> {
</span><del>-    switch (document-&gt;frame()-&gt;editor()-&gt;defaultParagraphSeparator()) {
</del><ins>+    switch (document-&gt;frame()-&gt;editor().defaultParagraphSeparator()) {
</ins><span class="cx">     case EditorParagraphSeparatorIsDiv:
</span><span class="cx">         return HTMLDivElement::create(document);
</span><span class="cx">     case EditorParagraphSeparatorIsP:
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingmacEditorMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/mac/EditorMac.mm (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/mac/EditorMac.mm        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/editing/mac/EditorMac.mm        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -82,7 +82,7 @@
</span><span class="cx">     RefPtr&lt;Range&gt; range = selectedRange();
</span><span class="cx">     bool choosePlainText;
</span><span class="cx">     
</span><del>-    m_frame-&gt;editor()-&gt;client()-&gt;setInsertionPasteboard(NSGeneralPboard);
</del><ins>+    m_frame-&gt;editor().client()-&gt;setInsertionPasteboard(NSGeneralPboard);
</ins><span class="cx"> #if PLATFORM(IOS) || __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1070
</span><span class="cx">     RefPtr&lt;DocumentFragment&gt; fragment = pasteboard-&gt;documentFragment(m_frame, range, allowPlainText, choosePlainText);
</span><span class="cx">     if (fragment &amp;&amp; shouldInsertFragment(fragment, range, EditorInsertActionPasted))
</span><span class="lines">@@ -102,7 +102,7 @@
</span><span class="cx">             pasteAsFragment(fragment, canSmartReplaceWithPasteboard(pasteboard), false);
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><del>-    m_frame-&gt;editor()-&gt;client()-&gt;setInsertionPasteboard(String());
</del><ins>+    m_frame-&gt;editor().client()-&gt;setInsertionPasteboard(String());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool Editor::insertParagraphSeparatorInQuotedContent()
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingmarkupcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/markup.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/markup.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/editing/markup.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -655,7 +655,7 @@
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;Range&gt; updatedRangeRef;
</span><span class="cx">     if (frame) {
</span><del>-        updatedRangeRef = frame-&gt;editor()-&gt;avoidIntersectionWithDeleteButtonController(range);
</del><ins>+        updatedRangeRef = frame-&gt;editor().avoidIntersectionWithDeleteButtonController(range);
</ins><span class="cx">         updatedRange = updatedRangeRef.get();
</span><span class="cx">         if (!updatedRange)
</span><span class="cx">             return emptyString();
</span><span class="lines">@@ -769,7 +769,7 @@
</span><span class="cx">     HTMLElement* deleteButtonContainerElement = 0;
</span><span class="cx"> #if ENABLE(DELETION_UI)
</span><span class="cx">     if (Frame* frame = node-&gt;document()-&gt;frame()) {
</span><del>-        deleteButtonContainerElement = frame-&gt;editor()-&gt;deleteButtonController()-&gt;containerElement();
</del><ins>+        deleteButtonContainerElement = frame-&gt;editor().deleteButtonController()-&gt;containerElement();
</ins><span class="cx">         if (node-&gt;isDescendantOf(deleteButtonContainerElement))
</span><span class="cx">             return &quot;&quot;;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLInputElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLInputElement.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLInputElement.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/html/HTMLInputElement.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -430,7 +430,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (Frame* frame = document()-&gt;frame())
</span><del>-        frame-&gt;editor()-&gt;textFieldDidEndEditing(this);
</del><ins>+        frame-&gt;editor().textFieldDidEndEditing(this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool HTMLInputElement::shouldUseInputMethod()
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTextAreaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTextAreaElement.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTextAreaElement.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/html/HTMLTextAreaElement.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -283,7 +283,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (Frame* frame = document()-&gt;frame())
</span><del>-        frame-&gt;editor()-&gt;textDidChangeInTextArea(this);
</del><ins>+        frame-&gt;editor().textDidChangeInTextArea(this);
</ins><span class="cx">     // When typing in a textarea, childrenChanged is not called, so we need to force the directionality check.
</span><span class="cx">     calculateAndAdjustDirectionality();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlTextFieldInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/TextFieldInputType.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/TextFieldInputType.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/html/TextFieldInputType.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -146,7 +146,7 @@
</span><span class="cx">     if (!element()-&gt;focused())
</span><span class="cx">         return;
</span><span class="cx">     Frame* frame = element()-&gt;document()-&gt;frame();
</span><del>-    if (!frame || !frame-&gt;editor()-&gt;doTextFieldCommandFromEvent(element(), event))
</del><ins>+    if (!frame || !frame-&gt;editor().doTextFieldCommandFromEvent(element(), event))
</ins><span class="cx">         return;
</span><span class="cx">     event-&gt;setDefaultHandled();
</span><span class="cx"> }
</span><span class="lines">@@ -473,8 +473,8 @@
</span><span class="cx">         return;
</span><span class="cx">     if (Frame* frame = element()-&gt;document()-&gt;frame()) {
</span><span class="cx">         if (state == ValueChangeStateNone)
</span><del>-            frame-&gt;editor()-&gt;textFieldDidBeginEditing(element());
-        frame-&gt;editor()-&gt;textDidChangeInTextField(element());
</del><ins>+            frame-&gt;editor().textFieldDidBeginEditing(element());
+        frame-&gt;editor().textDidChangeInTextField(element());
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderFrameLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/FrameLoader.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/FrameLoader.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/loader/FrameLoader.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -482,7 +482,7 @@
</span><span class="cx">     Document* currentDocument = m_frame-&gt;document();
</span><span class="cx">     stopLoading(currentDocument &amp;&amp; !currentDocument-&gt;inPageCache() ? UnloadEventPolicyUnloadAndPageHide : UnloadEventPolicyUnloadOnly);
</span><span class="cx">     
</span><del>-    m_frame-&gt;editor()-&gt;clearUndoRedoOperations();
</del><ins>+    m_frame-&gt;editor().clearUndoRedoOperations();
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -495,7 +495,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     m_frame-&gt;navigationScheduler()-&gt;cancel();
</span><del>-    m_frame-&gt;editor()-&gt;clearLastEditCommand();
</del><ins>+    m_frame-&gt;editor().clearLastEditCommand();
</ins><span class="cx"> 
</span><span class="cx">     m_isComplete = false;
</span><span class="cx">     m_didCallImplicitClose = false;
</span><span class="lines">@@ -544,7 +544,7 @@
</span><span class="cx"> 
</span><span class="cx"> void FrameLoader::clear(Document* newDocument, bool clearWindowProperties, bool clearScriptObjects, bool clearFrameView)
</span><span class="cx"> {
</span><del>-    m_frame-&gt;editor()-&gt;clear();
</del><ins>+    m_frame-&gt;editor().clear();
</ins><span class="cx"> 
</span><span class="cx">     if (!m_needsClear)
</span><span class="cx">         return;
</span></span></pre></div>
<a id="trunkSourceWebCorepageContextMenuControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ContextMenuController.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ContextMenuController.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/page/ContextMenuController.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -197,7 +197,7 @@
</span><span class="cx"> static void insertUnicodeCharacter(UChar character, Frame* frame)
</span><span class="cx"> {
</span><span class="cx">     String text(&amp;character, 1);
</span><del>-    if (!frame-&gt;editor()-&gt;shouldInsertText(text, frame-&gt;selection()-&gt;toNormalizedRange().get(), EditorInsertActionTyped))
</del><ins>+    if (!frame-&gt;editor().shouldInsertText(text, frame-&gt;selection()-&gt;toNormalizedRange().get(), EditorInsertActionTyped))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     TypingCommand::insertText(frame-&gt;document(), text, 0, TypingCommand::TextCompositionNone);
</span><span class="lines">@@ -232,7 +232,7 @@
</span><span class="cx">         m_client-&gt;downloadURL(m_hitTestResult.absoluteLinkURL());
</span><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagCopyLinkToClipboard:
</span><del>-        frame-&gt;editor()-&gt;copyURL(m_hitTestResult.absoluteLinkURL(), m_hitTestResult.textContent());
</del><ins>+        frame-&gt;editor().copyURL(m_hitTestResult.absoluteLinkURL(), m_hitTestResult.textContent());
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagOpenImageInNewWindow:
</span><span class="cx">         openNewWindow(m_hitTestResult.absoluteImageURL(), frame);
</span><span class="lines">@@ -244,18 +244,18 @@
</span><span class="cx">     case ContextMenuItemTagCopyImageToClipboard:
</span><span class="cx">         // FIXME: The Pasteboard class is not written yet
</span><span class="cx">         // For now, call into the client. This is temporary!
</span><del>-        frame-&gt;editor()-&gt;copyImage(m_hitTestResult);
</del><ins>+        frame-&gt;editor().copyImage(m_hitTestResult);
</ins><span class="cx">         break;
</span><span class="cx"> #if PLATFORM(QT) || PLATFORM(GTK) || PLATFORM(EFL)
</span><span class="cx">     case ContextMenuItemTagCopyImageUrlToClipboard:
</span><del>-        frame-&gt;editor()-&gt;copyURL(m_hitTestResult.absoluteImageURL(), m_hitTestResult.textContent());
</del><ins>+        frame-&gt;editor().copyURL(m_hitTestResult.absoluteImageURL(), m_hitTestResult.textContent());
</ins><span class="cx">         break;
</span><span class="cx"> #endif
</span><span class="cx">     case ContextMenuItemTagOpenMediaInNewWindow:
</span><span class="cx">         openNewWindow(m_hitTestResult.absoluteMediaURL(), frame);
</span><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagCopyMediaLinkToClipboard:
</span><del>-        frame-&gt;editor()-&gt;copyURL(m_hitTestResult.absoluteMediaURL(), m_hitTestResult.textContent());
</del><ins>+        frame-&gt;editor().copyURL(m_hitTestResult.absoluteMediaURL(), m_hitTestResult.textContent());
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagToggleMediaControls:
</span><span class="cx">         m_hitTestResult.toggleMediaControlsDisplay();
</span><span class="lines">@@ -281,7 +281,7 @@
</span><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     case ContextMenuItemTagCopy:
</span><del>-        frame-&gt;editor()-&gt;copy();
</del><ins>+        frame-&gt;editor().copy();
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagGoBack:
</span><span class="cx">         if (Page* page = frame-&gt;page())
</span><span class="lines">@@ -298,14 +298,14 @@
</span><span class="cx">         frame-&gt;loader()-&gt;reload();
</span><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagCut:
</span><del>-        frame-&gt;editor()-&gt;command(&quot;Cut&quot;).execute();
</del><ins>+        frame-&gt;editor().command(&quot;Cut&quot;).execute();
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagPaste:
</span><del>-        frame-&gt;editor()-&gt;command(&quot;Paste&quot;).execute();
</del><ins>+        frame-&gt;editor().command(&quot;Paste&quot;).execute();
</ins><span class="cx">         break;
</span><span class="cx"> #if PLATFORM(GTK)
</span><span class="cx">     case ContextMenuItemTagDelete:
</span><del>-        frame-&gt;editor()-&gt;performDelete();
</del><ins>+        frame-&gt;editor().performDelete();
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagUnicodeInsertLRMMark:
</span><span class="cx">         insertUnicodeCharacter(leftToRightMark, frame);
</span><span class="lines">@@ -340,22 +340,22 @@
</span><span class="cx"> #endif
</span><span class="cx"> #if PLATFORM(GTK) || PLATFORM(QT) || PLATFORM(EFL)
</span><span class="cx">     case ContextMenuItemTagSelectAll:
</span><del>-        frame-&gt;editor()-&gt;command(&quot;SelectAll&quot;).execute();
</del><ins>+        frame-&gt;editor().command(&quot;SelectAll&quot;).execute();
</ins><span class="cx">         break;
</span><span class="cx"> #endif
</span><span class="cx">     case ContextMenuItemTagSpellingGuess: {
</span><span class="cx">         FrameSelection* frameSelection = frame-&gt;selection();
</span><del>-        if (frame-&gt;editor()-&gt;shouldInsertText(item-&gt;title(), frameSelection-&gt;toNormalizedRange().get(), EditorInsertActionPasted)) {
</del><ins>+        if (frame-&gt;editor().shouldInsertText(item-&gt;title(), frameSelection-&gt;toNormalizedRange().get(), EditorInsertActionPasted)) {
</ins><span class="cx">             Document* document = frame-&gt;document();
</span><span class="cx">             ReplaceSelectionCommand::CommandOptions replaceOptions = ReplaceSelectionCommand::MatchStyle | ReplaceSelectionCommand::PreventNesting;
</span><span class="cx"> 
</span><del>-            if (frame-&gt;editor()-&gt;behavior().shouldAllowSpellingSuggestionsWithoutSelection()) {
</del><ins>+            if (frame-&gt;editor().behavior().shouldAllowSpellingSuggestionsWithoutSelection()) {
</ins><span class="cx">                 ASSERT(frameSelection-&gt;isCaretOrRange());
</span><span class="cx">                 VisibleSelection wordSelection(frameSelection-&gt;base());
</span><span class="cx">                 wordSelection.expandUsingGranularity(WordGranularity);
</span><span class="cx">                 frameSelection-&gt;setSelection(wordSelection);
</span><span class="cx">             } else {
</span><del>-                ASSERT(frame-&gt;editor()-&gt;selectedText().length());
</del><ins>+                ASSERT(frame-&gt;editor().selectedText().length());
</ins><span class="cx">                 replaceOptions |= ReplaceSelectionCommand::SelectReplacement;
</span><span class="cx">             }
</span><span class="cx"> 
</span><span class="lines">@@ -366,10 +366,10 @@
</span><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     case ContextMenuItemTagIgnoreSpelling:
</span><del>-        frame-&gt;editor()-&gt;ignoreSpelling();
</del><ins>+        frame-&gt;editor().ignoreSpelling();
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagLearnSpelling:
</span><del>-        frame-&gt;editor()-&gt;learnSpelling();
</del><ins>+        frame-&gt;editor().learnSpelling();
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagSearchWeb:
</span><span class="cx">         m_client-&gt;searchWithGoogle(frame);
</span><span class="lines">@@ -388,13 +388,13 @@
</span><span class="cx">         frame-&gt;loader()-&gt;loadFrameRequest(FrameLoadRequest(frame-&gt;document()-&gt;securityOrigin(), ResourceRequest(m_hitTestResult.absoluteLinkURL(), frame-&gt;loader()-&gt;outgoingReferrer())), false, false, 0, 0, MaybeSendReferrer);
</span><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagBold:
</span><del>-        frame-&gt;editor()-&gt;command(&quot;ToggleBold&quot;).execute();
</del><ins>+        frame-&gt;editor().command(&quot;ToggleBold&quot;).execute();
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagItalic:
</span><del>-        frame-&gt;editor()-&gt;command(&quot;ToggleItalic&quot;).execute();
</del><ins>+        frame-&gt;editor().command(&quot;ToggleItalic&quot;).execute();
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagUnderline:
</span><del>-        frame-&gt;editor()-&gt;toggleUnderline();
</del><ins>+        frame-&gt;editor().toggleUnderline();
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagOutline:
</span><span class="cx">         // We actually never enable this because CSS does not have a way to specify an outline font,
</span><span class="lines">@@ -414,22 +414,22 @@
</span><span class="cx">         m_client-&gt;stopSpeaking();
</span><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagDefaultDirection:
</span><del>-        frame-&gt;editor()-&gt;setBaseWritingDirection(NaturalWritingDirection);
</del><ins>+        frame-&gt;editor().setBaseWritingDirection(NaturalWritingDirection);
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagLeftToRight:
</span><del>-        frame-&gt;editor()-&gt;setBaseWritingDirection(LeftToRightWritingDirection);
</del><ins>+        frame-&gt;editor().setBaseWritingDirection(LeftToRightWritingDirection);
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagRightToLeft:
</span><del>-        frame-&gt;editor()-&gt;setBaseWritingDirection(RightToLeftWritingDirection);
</del><ins>+        frame-&gt;editor().setBaseWritingDirection(RightToLeftWritingDirection);
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagTextDirectionDefault:
</span><del>-        frame-&gt;editor()-&gt;command(&quot;MakeTextWritingDirectionNatural&quot;).execute();
</del><ins>+        frame-&gt;editor().command(&quot;MakeTextWritingDirectionNatural&quot;).execute();
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagTextDirectionLeftToRight:
</span><del>-        frame-&gt;editor()-&gt;command(&quot;MakeTextWritingDirectionLeftToRight&quot;).execute();
</del><ins>+        frame-&gt;editor().command(&quot;MakeTextWritingDirectionLeftToRight&quot;).execute();
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagTextDirectionRightToLeft:
</span><del>-        frame-&gt;editor()-&gt;command(&quot;MakeTextWritingDirectionRightToLeft&quot;).execute();
</del><ins>+        frame-&gt;editor().command(&quot;MakeTextWritingDirectionRightToLeft&quot;).execute();
</ins><span class="cx">         break;
</span><span class="cx"> #if PLATFORM(MAC)
</span><span class="cx">     case ContextMenuItemTagSearchInSpotlight:
</span><span class="lines">@@ -437,65 +437,65 @@
</span><span class="cx">         break;
</span><span class="cx"> #endif
</span><span class="cx">     case ContextMenuItemTagShowSpellingPanel:
</span><del>-        frame-&gt;editor()-&gt;showSpellingGuessPanel();
</del><ins>+        frame-&gt;editor().showSpellingGuessPanel();
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagCheckSpelling:
</span><del>-        frame-&gt;editor()-&gt;advanceToNextMisspelling();
</del><ins>+        frame-&gt;editor().advanceToNextMisspelling();
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagCheckSpellingWhileTyping:
</span><del>-        frame-&gt;editor()-&gt;toggleContinuousSpellChecking();
</del><ins>+        frame-&gt;editor().toggleContinuousSpellChecking();
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagCheckGrammarWithSpelling:
</span><del>-        frame-&gt;editor()-&gt;toggleGrammarChecking();
</del><ins>+        frame-&gt;editor().toggleGrammarChecking();
</ins><span class="cx">         break;
</span><span class="cx"> #if PLATFORM(MAC)
</span><span class="cx">     case ContextMenuItemTagShowFonts:
</span><del>-        frame-&gt;editor()-&gt;showFontPanel();
</del><ins>+        frame-&gt;editor().showFontPanel();
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagStyles:
</span><del>-        frame-&gt;editor()-&gt;showStylesPanel();
</del><ins>+        frame-&gt;editor().showStylesPanel();
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagShowColors:
</span><del>-        frame-&gt;editor()-&gt;showColorPanel();
</del><ins>+        frame-&gt;editor().showColorPanel();
</ins><span class="cx">         break;
</span><span class="cx"> #endif
</span><span class="cx"> #if USE(APPKIT)
</span><span class="cx">     case ContextMenuItemTagMakeUpperCase:
</span><del>-        frame-&gt;editor()-&gt;uppercaseWord();
</del><ins>+        frame-&gt;editor().uppercaseWord();
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagMakeLowerCase:
</span><del>-        frame-&gt;editor()-&gt;lowercaseWord();
</del><ins>+        frame-&gt;editor().lowercaseWord();
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagCapitalize:
</span><del>-        frame-&gt;editor()-&gt;capitalizeWord();
</del><ins>+        frame-&gt;editor().capitalizeWord();
</ins><span class="cx">         break;
</span><span class="cx"> #endif
</span><span class="cx"> #if PLATFORM(MAC)
</span><span class="cx">     case ContextMenuItemTagChangeBack:
</span><del>-        frame-&gt;editor()-&gt;changeBackToReplacedString(m_hitTestResult.replacedString());
</del><ins>+        frame-&gt;editor().changeBackToReplacedString(m_hitTestResult.replacedString());
</ins><span class="cx">         break;
</span><span class="cx"> #endif
</span><span class="cx"> #if USE(AUTOMATIC_TEXT_REPLACEMENT)
</span><span class="cx">     case ContextMenuItemTagShowSubstitutions:
</span><del>-        frame-&gt;editor()-&gt;showSubstitutionsPanel();
</del><ins>+        frame-&gt;editor().showSubstitutionsPanel();
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagSmartCopyPaste:
</span><del>-        frame-&gt;editor()-&gt;toggleSmartInsertDelete();
</del><ins>+        frame-&gt;editor().toggleSmartInsertDelete();
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagSmartQuotes:
</span><del>-        frame-&gt;editor()-&gt;toggleAutomaticQuoteSubstitution();
</del><ins>+        frame-&gt;editor().toggleAutomaticQuoteSubstitution();
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagSmartDashes:
</span><del>-        frame-&gt;editor()-&gt;toggleAutomaticDashSubstitution();
</del><ins>+        frame-&gt;editor().toggleAutomaticDashSubstitution();
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagSmartLinks:
</span><del>-        frame-&gt;editor()-&gt;toggleAutomaticLinkDetection();
</del><ins>+        frame-&gt;editor().toggleAutomaticLinkDetection();
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagTextReplacement:
</span><del>-        frame-&gt;editor()-&gt;toggleAutomaticTextReplacement();
</del><ins>+        frame-&gt;editor().toggleAutomaticTextReplacement();
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagCorrectSpellingAutomatically:
</span><del>-        frame-&gt;editor()-&gt;toggleAutomaticSpellingCorrection();
</del><ins>+        frame-&gt;editor().toggleAutomaticSpellingCorrection();
</ins><span class="cx">         break;
</span><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><span class="lines">@@ -505,7 +505,7 @@
</span><span class="cx">         break;
</span><span class="cx"> #endif
</span><span class="cx">     case ContextMenuItemTagDictationAlternative:
</span><del>-        frame-&gt;editor()-&gt;applyDictationAlternativelternative(item-&gt;title());
</del><ins>+        frame-&gt;editor().applyDictationAlternativelternative(item-&gt;title());
</ins><span class="cx">         break;
</span><span class="cx">     default:
</span><span class="cx">         break;
</span><span class="lines">@@ -856,7 +856,7 @@
</span><span class="cx">             if (m_hitTestResult.isSelected()) {
</span><span class="cx">                 if (selectionContainsPossibleWord(frame)) {
</span><span class="cx"> #if PLATFORM(MAC)
</span><del>-                    String selectedString = frame-&gt;displayStringModifiedByEncoding(frame-&gt;editor()-&gt;selectedText());
</del><ins>+                    String selectedString = frame-&gt;displayStringModifiedByEncoding(frame-&gt;editor().selectedText());
</ins><span class="cx">                     ContextMenuItem LookUpInDictionaryItem(ActionType, ContextMenuItemTagLookUpInDictionary, contextMenuItemTagLookUpInDictionary(selectedString));
</span><span class="cx"> 
</span><span class="cx"> #if INCLUDE_SPOTLIGHT_CONTEXT_MENU_ITEM
</span><span class="lines">@@ -923,13 +923,13 @@
</span><span class="cx">         bool inPasswordField = selection-&gt;isInPasswordField();
</span><span class="cx">         if (!inPasswordField) {
</span><span class="cx">             bool haveContextMenuItemsForMisspellingOrGrammer = false;
</span><del>-            bool spellCheckingEnabled = frame-&gt;editor()-&gt;isSpellCheckingEnabledFor(node);
</del><ins>+            bool spellCheckingEnabled = frame-&gt;editor().isSpellCheckingEnabledFor(node);
</ins><span class="cx">             if (spellCheckingEnabled) {
</span><span class="cx">                 // Consider adding spelling-related or grammar-related context menu items (never both, since a single selected range
</span><span class="cx">                 // is never considered a misspelling and bad grammar at the same time)
</span><span class="cx">                 bool misspelling;
</span><span class="cx">                 bool badGrammar;
</span><del>-                Vector&lt;String&gt; guesses = frame-&gt;editor()-&gt;guessesForMisspelledOrUngrammatical(misspelling, badGrammar);
</del><ins>+                Vector&lt;String&gt; guesses = frame-&gt;editor().guessesForMisspelledOrUngrammatical(misspelling, badGrammar);
</ins><span class="cx">                 if (misspelling || badGrammar) {
</span><span class="cx">                     size_t size = guesses.size();
</span><span class="cx">                     if (!size) {
</span><span class="lines">@@ -997,7 +997,7 @@
</span><span class="cx"> 
</span><span class="cx">         if (m_hitTestResult.isSelected() &amp;&amp; !inPasswordField &amp;&amp; selectionContainsPossibleWord(frame)) {
</span><span class="cx"> #if PLATFORM(MAC)
</span><del>-            String selectedString = frame-&gt;displayStringModifiedByEncoding(frame-&gt;editor()-&gt;selectedText());
</del><ins>+            String selectedString = frame-&gt;displayStringModifiedByEncoding(frame-&gt;editor().selectedText());
</ins><span class="cx">             ContextMenuItem LookUpInDictionaryItem(ActionType, ContextMenuItemTagLookUpInDictionary, contextMenuItemTagLookUpInDictionary(selectedString));
</span><span class="cx"> 
</span><span class="cx"> #if INCLUDE_SPOTLIGHT_CONTEXT_MENU_ITEM
</span><span class="lines">@@ -1048,7 +1048,7 @@
</span><span class="cx">             appendItem(transformationsMenuItem, m_contextMenu.get());
</span><span class="cx"> #endif
</span><span class="cx"> #if PLATFORM(GTK)
</span><del>-            bool shouldShowFontMenu = frame-&gt;editor()-&gt;canEditRichly();
</del><ins>+            bool shouldShowFontMenu = frame-&gt;editor().canEditRichly();
</ins><span class="cx"> #else
</span><span class="cx">             bool shouldShowFontMenu = true;
</span><span class="cx"> #endif
</span><span class="lines">@@ -1064,7 +1064,7 @@
</span><span class="cx">             appendItem(SpeechMenuItem, m_contextMenu.get());
</span><span class="cx"> #endif
</span><span class="cx"> #if PLATFORM(GTK)
</span><del>-            EditorClient* client = frame-&gt;editor()-&gt;client();
</del><ins>+            EditorClient* client = frame-&gt;editor().client();
</ins><span class="cx">             if (client &amp;&amp; client-&gt;shouldShowUnicodeMenu()) {
</span><span class="cx">                 ContextMenuItem UnicodeMenuItem(SubmenuType, ContextMenuItemTagUnicode, contextMenuItemTagUnicode());
</span><span class="cx">                 createAndAppendUnicodeSubMenu(UnicodeMenuItem);
</span><span class="lines">@@ -1079,7 +1079,7 @@
</span><span class="cx">             if (Page* page = frame-&gt;page()) {
</span><span class="cx">                 if (Settings* settings = page-&gt;settings()) {
</span><span class="cx">                     bool includeTextDirectionSubmenu = settings-&gt;textDirectionSubmenuInclusionBehavior() == TextDirectionSubmenuAlwaysIncluded
</span><del>-                        || (settings-&gt;textDirectionSubmenuInclusionBehavior() == TextDirectionSubmenuAutomaticallyIncluded &amp;&amp; frame-&gt;editor()-&gt;hasBidiSelection());
</del><ins>+                        || (settings-&gt;textDirectionSubmenuInclusionBehavior() == TextDirectionSubmenuAutomaticallyIncluded &amp;&amp; frame-&gt;editor().hasBidiSelection());
</ins><span class="cx">                     if (includeTextDirectionSubmenu) {
</span><span class="cx">                         ContextMenuItem TextDirectionMenuItem(SubmenuType, ContextMenuItemTagTextDirectionMenu, 
</span><span class="cx">                             contextMenuItemTagTextDirectionMenu());
</span><span class="lines">@@ -1140,7 +1140,7 @@
</span><span class="cx"> 
</span><span class="cx">     switch (item.action()) {
</span><span class="cx">         case ContextMenuItemTagCheckSpelling:
</span><del>-            shouldEnable = frame-&gt;editor()-&gt;canEdit();
</del><ins>+            shouldEnable = frame-&gt;editor().canEdit();
</ins><span class="cx">             break;
</span><span class="cx">         case ContextMenuItemTagDefaultDirection:
</span><span class="cx">             shouldCheck = false;
</span><span class="lines">@@ -1149,44 +1149,44 @@
</span><span class="cx">         case ContextMenuItemTagLeftToRight:
</span><span class="cx">         case ContextMenuItemTagRightToLeft: {
</span><span class="cx">             String direction = item.action() == ContextMenuItemTagLeftToRight ? &quot;ltr&quot; : &quot;rtl&quot;;
</span><del>-            shouldCheck = frame-&gt;editor()-&gt;selectionHasStyle(CSSPropertyDirection, direction) != FalseTriState;
</del><ins>+            shouldCheck = frame-&gt;editor().selectionHasStyle(CSSPropertyDirection, direction) != FalseTriState;
</ins><span class="cx">             shouldEnable = true;
</span><span class="cx">             break;
</span><span class="cx">         }
</span><span class="cx">         case ContextMenuItemTagTextDirectionDefault: {
</span><del>-            Editor::Command command = frame-&gt;editor()-&gt;command(&quot;MakeTextWritingDirectionNatural&quot;);
</del><ins>+            Editor::Command command = frame-&gt;editor().command(&quot;MakeTextWritingDirectionNatural&quot;);
</ins><span class="cx">             shouldCheck = command.state() == TrueTriState;
</span><span class="cx">             shouldEnable = command.isEnabled();
</span><span class="cx">             break;
</span><span class="cx">         }
</span><span class="cx">         case ContextMenuItemTagTextDirectionLeftToRight: {
</span><del>-            Editor::Command command = frame-&gt;editor()-&gt;command(&quot;MakeTextWritingDirectionLeftToRight&quot;);
</del><ins>+            Editor::Command command = frame-&gt;editor().command(&quot;MakeTextWritingDirectionLeftToRight&quot;);
</ins><span class="cx">             shouldCheck = command.state() == TrueTriState;
</span><span class="cx">             shouldEnable = command.isEnabled();
</span><span class="cx">             break;
</span><span class="cx">         }
</span><span class="cx">         case ContextMenuItemTagTextDirectionRightToLeft: {
</span><del>-            Editor::Command command = frame-&gt;editor()-&gt;command(&quot;MakeTextWritingDirectionRightToLeft&quot;);
</del><ins>+            Editor::Command command = frame-&gt;editor().command(&quot;MakeTextWritingDirectionRightToLeft&quot;);
</ins><span class="cx">             shouldCheck = command.state() == TrueTriState;
</span><span class="cx">             shouldEnable = command.isEnabled();
</span><span class="cx">             break;
</span><span class="cx">         }
</span><span class="cx">         case ContextMenuItemTagCopy:
</span><del>-            shouldEnable = frame-&gt;editor()-&gt;canDHTMLCopy() || frame-&gt;editor()-&gt;canCopy();
</del><ins>+            shouldEnable = frame-&gt;editor().canDHTMLCopy() || frame-&gt;editor().canCopy();
</ins><span class="cx">             break;
</span><span class="cx">         case ContextMenuItemTagCut:
</span><del>-            shouldEnable = frame-&gt;editor()-&gt;canDHTMLCut() || frame-&gt;editor()-&gt;canCut();
</del><ins>+            shouldEnable = frame-&gt;editor().canDHTMLCut() || frame-&gt;editor().canCut();
</ins><span class="cx">             break;
</span><span class="cx">         case ContextMenuItemTagIgnoreSpelling:
</span><span class="cx">         case ContextMenuItemTagLearnSpelling:
</span><span class="cx">             shouldEnable = frame-&gt;selection()-&gt;isRange();
</span><span class="cx">             break;
</span><span class="cx">         case ContextMenuItemTagPaste:
</span><del>-            shouldEnable = frame-&gt;editor()-&gt;canDHTMLPaste() || frame-&gt;editor()-&gt;canPaste();
</del><ins>+            shouldEnable = frame-&gt;editor().canDHTMLPaste() || frame-&gt;editor().canPaste();
</ins><span class="cx">             break;
</span><span class="cx"> #if PLATFORM(GTK)
</span><span class="cx">         case ContextMenuItemTagDelete:
</span><del>-            shouldEnable = frame-&gt;editor()-&gt;canDelete();
</del><ins>+            shouldEnable = frame-&gt;editor().canDelete();
</ins><span class="cx">             break;
</span><span class="cx">         case ContextMenuItemTagInputMethods:
</span><span class="cx">         case ContextMenuItemTagUnicode:
</span><span class="lines">@@ -1209,78 +1209,78 @@
</span><span class="cx">             break;
</span><span class="cx"> #endif
</span><span class="cx">         case ContextMenuItemTagUnderline: {
</span><del>-            shouldCheck = frame-&gt;editor()-&gt;selectionHasStyle(CSSPropertyWebkitTextDecorationsInEffect, &quot;underline&quot;) != FalseTriState;
-            shouldEnable = frame-&gt;editor()-&gt;canEditRichly();
</del><ins>+            shouldCheck = frame-&gt;editor().selectionHasStyle(CSSPropertyWebkitTextDecorationsInEffect, &quot;underline&quot;) != FalseTriState;
+            shouldEnable = frame-&gt;editor().canEditRichly();
</ins><span class="cx">             break;
</span><span class="cx">         }
</span><span class="cx">         case ContextMenuItemTagLookUpInDictionary:
</span><span class="cx">             shouldEnable = frame-&gt;selection()-&gt;isRange();
</span><span class="cx">             break;
</span><span class="cx">         case ContextMenuItemTagCheckGrammarWithSpelling:
</span><del>-            if (frame-&gt;editor()-&gt;isGrammarCheckingEnabled())
</del><ins>+            if (frame-&gt;editor().isGrammarCheckingEnabled())
</ins><span class="cx">                 shouldCheck = true;
</span><span class="cx">             shouldEnable = true;
</span><span class="cx">             break;
</span><span class="cx">         case ContextMenuItemTagItalic: {
</span><del>-            shouldCheck = frame-&gt;editor()-&gt;selectionHasStyle(CSSPropertyFontStyle, &quot;italic&quot;) != FalseTriState;
-            shouldEnable = frame-&gt;editor()-&gt;canEditRichly();
</del><ins>+            shouldCheck = frame-&gt;editor().selectionHasStyle(CSSPropertyFontStyle, &quot;italic&quot;) != FalseTriState;
+            shouldEnable = frame-&gt;editor().canEditRichly();
</ins><span class="cx">             break;
</span><span class="cx">         }
</span><span class="cx">         case ContextMenuItemTagBold: {
</span><del>-            shouldCheck = frame-&gt;editor()-&gt;selectionHasStyle(CSSPropertyFontWeight, &quot;bold&quot;) != FalseTriState;
-            shouldEnable = frame-&gt;editor()-&gt;canEditRichly();
</del><ins>+            shouldCheck = frame-&gt;editor().selectionHasStyle(CSSPropertyFontWeight, &quot;bold&quot;) != FalseTriState;
+            shouldEnable = frame-&gt;editor().canEditRichly();
</ins><span class="cx">             break;
</span><span class="cx">         }
</span><span class="cx">         case ContextMenuItemTagOutline:
</span><span class="cx">             shouldEnable = false;
</span><span class="cx">             break;
</span><span class="cx">         case ContextMenuItemTagShowSpellingPanel:
</span><del>-            if (frame-&gt;editor()-&gt;spellingPanelIsShowing())
</del><ins>+            if (frame-&gt;editor().spellingPanelIsShowing())
</ins><span class="cx">                 item.setTitle(contextMenuItemTagShowSpellingPanel(false));
</span><span class="cx">             else
</span><span class="cx">                 item.setTitle(contextMenuItemTagShowSpellingPanel(true));
</span><del>-            shouldEnable = frame-&gt;editor()-&gt;canEdit();
</del><ins>+            shouldEnable = frame-&gt;editor().canEdit();
</ins><span class="cx">             break;
</span><span class="cx">         case ContextMenuItemTagNoGuessesFound:
</span><span class="cx">             shouldEnable = false;
</span><span class="cx">             break;
</span><span class="cx">         case ContextMenuItemTagCheckSpellingWhileTyping:
</span><del>-            shouldCheck = frame-&gt;editor()-&gt;isContinuousSpellCheckingEnabled();
</del><ins>+            shouldCheck = frame-&gt;editor().isContinuousSpellCheckingEnabled();
</ins><span class="cx">             break;
</span><span class="cx"> #if PLATFORM(MAC)
</span><span class="cx">         case ContextMenuItemTagSubstitutionsMenu:
</span><span class="cx">         case ContextMenuItemTagTransformationsMenu:
</span><span class="cx">             break;
</span><span class="cx">         case ContextMenuItemTagShowSubstitutions:
</span><del>-            if (frame-&gt;editor()-&gt;substitutionsPanelIsShowing())
</del><ins>+            if (frame-&gt;editor().substitutionsPanelIsShowing())
</ins><span class="cx">                 item.setTitle(contextMenuItemTagShowSubstitutions(false));
</span><span class="cx">             else
</span><span class="cx">                 item.setTitle(contextMenuItemTagShowSubstitutions(true));
</span><del>-            shouldEnable = frame-&gt;editor()-&gt;canEdit();
</del><ins>+            shouldEnable = frame-&gt;editor().canEdit();
</ins><span class="cx">             break;
</span><span class="cx">         case ContextMenuItemTagMakeUpperCase:
</span><span class="cx">         case ContextMenuItemTagMakeLowerCase:
</span><span class="cx">         case ContextMenuItemTagCapitalize:
</span><span class="cx">         case ContextMenuItemTagChangeBack:
</span><del>-            shouldEnable = frame-&gt;editor()-&gt;canEdit();
</del><ins>+            shouldEnable = frame-&gt;editor().canEdit();
</ins><span class="cx">             break;
</span><span class="cx">         case ContextMenuItemTagCorrectSpellingAutomatically:
</span><del>-            shouldCheck = frame-&gt;editor()-&gt;isAutomaticSpellingCorrectionEnabled();
</del><ins>+            shouldCheck = frame-&gt;editor().isAutomaticSpellingCorrectionEnabled();
</ins><span class="cx">             break;
</span><span class="cx">         case ContextMenuItemTagSmartCopyPaste:
</span><del>-            shouldCheck = frame-&gt;editor()-&gt;smartInsertDeleteEnabled();
</del><ins>+            shouldCheck = frame-&gt;editor().smartInsertDeleteEnabled();
</ins><span class="cx">             break;
</span><span class="cx">         case ContextMenuItemTagSmartQuotes:
</span><del>-            shouldCheck = frame-&gt;editor()-&gt;isAutomaticQuoteSubstitutionEnabled();
</del><ins>+            shouldCheck = frame-&gt;editor().isAutomaticQuoteSubstitutionEnabled();
</ins><span class="cx">             break;
</span><span class="cx">         case ContextMenuItemTagSmartDashes:
</span><del>-            shouldCheck = frame-&gt;editor()-&gt;isAutomaticDashSubstitutionEnabled();
</del><ins>+            shouldCheck = frame-&gt;editor().isAutomaticDashSubstitutionEnabled();
</ins><span class="cx">             break;
</span><span class="cx">         case ContextMenuItemTagSmartLinks:
</span><del>-            shouldCheck = frame-&gt;editor()-&gt;isAutomaticLinkDetectionEnabled();
</del><ins>+            shouldCheck = frame-&gt;editor().isAutomaticLinkDetectionEnabled();
</ins><span class="cx">             break;
</span><span class="cx">         case ContextMenuItemTagTextReplacement:
</span><del>-            shouldCheck = frame-&gt;editor()-&gt;isAutomaticTextReplacementEnabled();
</del><ins>+            shouldCheck = frame-&gt;editor().isAutomaticTextReplacementEnabled();
</ins><span class="cx">             break;
</span><span class="cx">         case ContextMenuItemTagStopSpeaking:
</span><span class="cx">             shouldEnable = client() &amp;&amp; client()-&gt;isSpeaking();
</span><span class="lines">@@ -1303,7 +1303,7 @@
</span><span class="cx">             shouldEnable = !frame-&gt;loader()-&gt;documentLoader()-&gt;isLoadingInAPISense();
</span><span class="cx">             break;
</span><span class="cx">         case ContextMenuItemTagFontMenu:
</span><del>-            shouldEnable = frame-&gt;editor()-&gt;canEditRichly();
</del><ins>+            shouldEnable = frame-&gt;editor().canEditRichly();
</ins><span class="cx">             break;
</span><span class="cx"> #else
</span><span class="cx">         case ContextMenuItemTagGoBack:
</span></span></pre></div>
<a id="trunkSourceWebCorepageDOMWindowcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DOMWindow.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DOMWindow.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/page/DOMWindow.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -1113,7 +1113,7 @@
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     // FIXME (13016): Support wholeWord, searchInFrames and showDialog
</span><del>-    return m_frame-&gt;editor()-&gt;findString(string, !backwards, caseSensitive, wrap, false);
</del><ins>+    return m_frame-&gt;editor().findString(string, !backwards, caseSensitive, wrap, false);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool DOMWindow::offscreenBuffering() const
</span></span></pre></div>
<a id="trunkSourceWebCorepageDragControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DragController.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DragController.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/page/DragController.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -441,7 +441,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_page-&gt;dragCaretController()-&gt;hasCaret());
</span><span class="cx">     String text = m_page-&gt;dragCaretController()-&gt;isContentRichlyEditable() ? &quot;&quot; : dragData-&gt;asPlainText(innerFrame);
</span><del>-    Node* target = innerFrame-&gt;editor()-&gt;findEventTargetFrom(m_page-&gt;dragCaretController()-&gt;caretPosition());
</del><ins>+    Node* target = innerFrame-&gt;editor().findEventTargetFrom(m_page-&gt;dragCaretController()-&gt;caretPosition());
</ins><span class="cx">     return target-&gt;dispatchEvent(TextEvent::createForDrop(innerFrame-&gt;document()-&gt;domWindow(), text), IGNORE_EXCEPTION);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -475,10 +475,10 @@
</span><span class="cx">         RefPtr&lt;Range&gt; innerRange = innerFrame-&gt;selection()-&gt;toNormalizedRange();
</span><span class="cx">         RefPtr&lt;MutableStylePropertySet&gt; style = MutableStylePropertySet::create();
</span><span class="cx">         style-&gt;setProperty(CSSPropertyColor, color.serialized(), false);
</span><del>-        if (!innerFrame-&gt;editor()-&gt;shouldApplyStyle(style.get(), innerRange.get()))
</del><ins>+        if (!innerFrame-&gt;editor().shouldApplyStyle(style.get(), innerRange.get()))
</ins><span class="cx">             return false;
</span><span class="cx">         m_client-&gt;willPerformDragDestinationAction(DragDestinationActionEdit, dragData);
</span><del>-        innerFrame-&gt;editor()-&gt;applyStyle(style.get(), EditActionSetColor);
</del><ins>+        innerFrame-&gt;editor().applyStyle(style.get(), EditActionSetColor);
</ins><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -511,7 +511,7 @@
</span><span class="cx">     if (dragIsMove(innerFrame-&gt;selection(), dragData) || dragCaret.isContentRichlyEditable()) {
</span><span class="cx">         bool chosePlainText = false;
</span><span class="cx">         RefPtr&lt;DocumentFragment&gt; fragment = documentFragmentFromDragData(dragData, innerFrame.get(), range, true, chosePlainText);
</span><del>-        if (!fragment || !innerFrame-&gt;editor()-&gt;shouldInsertFragment(fragment, range, EditorInsertActionDropped)) {
</del><ins>+        if (!fragment || !innerFrame-&gt;editor().shouldInsertFragment(fragment, range, EditorInsertActionDropped)) {
</ins><span class="cx">             return false;
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -519,7 +519,7 @@
</span><span class="cx">         if (dragIsMove(innerFrame-&gt;selection(), dragData)) {
</span><span class="cx">             // NSTextView behavior is to always smart delete on moving a selection,
</span><span class="cx">             // but only to smart insert if the selection granularity is word granularity.
</span><del>-            bool smartDelete = innerFrame-&gt;editor()-&gt;smartInsertDeleteEnabled();
</del><ins>+            bool smartDelete = innerFrame-&gt;editor().smartInsertDeleteEnabled();
</ins><span class="cx">             bool smartInsert = smartDelete &amp;&amp; innerFrame-&gt;selection()-&gt;granularity() == WordGranularity &amp;&amp; dragData-&gt;canSmartReplace();
</span><span class="cx">             applyCommand(MoveSelectionCommand::create(fragment, dragCaret.base(), smartInsert, smartDelete));
</span><span class="cx">         } else {
</span><span class="lines">@@ -534,7 +534,7 @@
</span><span class="cx">         }
</span><span class="cx">     } else {
</span><span class="cx">         String text = dragData-&gt;asPlainText(innerFrame.get());
</span><del>-        if (text.isEmpty() || !innerFrame-&gt;editor()-&gt;shouldInsertText(text, range.get(), EditorInsertActionDropped)) {
</del><ins>+        if (text.isEmpty() || !innerFrame-&gt;editor().shouldInsertText(text, range.get(), EditorInsertActionDropped)) {
</ins><span class="cx">             return false;
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -789,7 +789,7 @@
</span><span class="cx">     if (state.m_dragType == DragSourceActionSelection) {
</span><span class="cx">         if (!clipboard-&gt;hasData()) {
</span><span class="cx">             if (enclosingTextFormControl(src-&gt;selection()-&gt;start()))
</span><del>-                clipboard-&gt;writePlainText(src-&gt;editor()-&gt;selectedTextForClipboard());
</del><ins>+                clipboard-&gt;writePlainText(src-&gt;editor().selectedTextForClipboard());
</ins><span class="cx">             else {
</span><span class="cx">                 RefPtr&lt;Range&gt; selectionRange = src-&gt;selection()-&gt;toNormalizedRange();
</span><span class="cx">                 ASSERT(selectionRange);
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventHandlercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventHandler.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/EventHandler.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/page/EventHandler.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -503,7 +503,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (m_mouseDownMayStartSelect) {
</span><span class="cx">         selectClosestWordFromHitTestResult(result.hitTestResult(),
</span><del>-            (result.event().clickCount() == 2 &amp;&amp; m_frame-&gt;editor()-&gt;isSelectTrailingWhitespaceEnabled()) ? ShouldAppendTrailingWhitespace : DontAppendTrailingWhitespace);
</del><ins>+            (result.event().clickCount() == 2 &amp;&amp; m_frame-&gt;editor().isSelectTrailingWhitespaceEnabled()) ? ShouldAppendTrailingWhitespace : DontAppendTrailingWhitespace);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -605,7 +605,7 @@
</span><span class="cx">                 pos = selectionInUserSelectAll.end();
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        if (!m_frame-&gt;editor()-&gt;behavior().shouldConsiderSelectionAsDirectional() &amp;&amp; pos.isNotNull()) {
</del><ins>+        if (!m_frame-&gt;editor().behavior().shouldConsiderSelectionAsDirectional() &amp;&amp; pos.isNotNull()) {
</ins><span class="cx">             // See &lt;rdar://problem/3668157&gt; REGRESSION (Mail): shift-click deselects when selection
</span><span class="cx">             // was created right-to-left
</span><span class="cx">             Position start = newSelection.start();
</span><span class="lines">@@ -1974,8 +1974,8 @@
</span><span class="cx">         return false;
</span><span class="cx">     Frame* focusFrame = m_frame-&gt;page()-&gt;focusController()-&gt;focusedOrMainFrame();
</span><span class="cx">     // Do not paste here if the focus was moved somewhere else.
</span><del>-    if (m_frame == focusFrame &amp;&amp; m_frame-&gt;editor()-&gt;client()-&gt;supportsGlobalSelection())
-        return m_frame-&gt;editor()-&gt;command(ASCIILiteral(&quot;PasteGlobalSelection&quot;)).execute();
</del><ins>+    if (m_frame == focusFrame &amp;&amp; m_frame-&gt;editor().client()-&gt;supportsGlobalSelection())
+        return m_frame-&gt;editor().command(ASCIILiteral(&quot;PasteGlobalSelection&quot;)).execute();
</ins><span class="cx"> 
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="lines">@@ -2902,7 +2902,7 @@
</span><span class="cx">     HitTestRequest request(HitTestRequest::Active | HitTestRequest::DisallowShadowContent);
</span><span class="cx">     MouseEventWithHitTestResults mev = doc-&gt;prepareMouseEvent(request, viewportPos, event);
</span><span class="cx"> 
</span><del>-    if (m_frame-&gt;editor()-&gt;behavior().shouldSelectOnContextualMenuClick()
</del><ins>+    if (m_frame-&gt;editor().behavior().shouldSelectOnContextualMenuClick()
</ins><span class="cx">         &amp;&amp; !m_frame-&gt;selection()-&gt;contains(viewportPos)
</span><span class="cx">         &amp;&amp; !mev.scrollbar()
</span><span class="cx">         // FIXME: In the editable case, word selection sometimes selects content that isn't underneath the mouse.
</span><span class="lines">@@ -2946,7 +2946,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (start.deprecatedNode() &amp;&amp; (selection-&gt;rootEditableElement() || selection-&gt;isRange())) {
</span><span class="cx">         RefPtr&lt;Range&gt; selectionRange = selection-&gt;toNormalizedRange();
</span><del>-        IntRect firstRect = m_frame-&gt;editor()-&gt;firstRectForRange(selectionRange.get());
</del><ins>+        IntRect firstRect = m_frame-&gt;editor().firstRectForRange(selectionRange.get());
</ins><span class="cx"> 
</span><span class="cx">         int x = rightAligned ? firstRect.maxX() : firstRect.x();
</span><span class="cx">         // In a multiline edit, firstRect.maxY() would endup on the next line, so -1.
</span><span class="lines">@@ -3245,7 +3245,7 @@
</span><span class="cx">     // in order to match IE:
</span><span class="cx">     // 1. preventing default handling of keydown and keypress events has no effect on IM input;
</span><span class="cx">     // 2. if an input method handles the event, its keyCode is set to 229 in keydown event.
</span><del>-    m_frame-&gt;editor()-&gt;handleInputMethodKeydown(keydown.get());
</del><ins>+    m_frame-&gt;editor().handleInputMethodKeydown(keydown.get());
</ins><span class="cx">     
</span><span class="cx">     bool handledByInputMethod = keydown-&gt;defaultHandled();
</span><span class="cx">     
</span><span class="lines">@@ -3352,7 +3352,7 @@
</span><span class="cx"> void EventHandler::defaultKeyboardEventHandler(KeyboardEvent* event)
</span><span class="cx"> {
</span><span class="cx">     if (event-&gt;type() == eventNames().keydownEvent) {
</span><del>-        m_frame-&gt;editor()-&gt;handleKeyboardEvent(event);
</del><ins>+        m_frame-&gt;editor().handleKeyboardEvent(event);
</ins><span class="cx">         if (event-&gt;defaultHandled())
</span><span class="cx">             return;
</span><span class="cx">         if (event-&gt;keyIdentifier() == &quot;U+0009&quot;)
</span><span class="lines">@@ -3370,7 +3370,7 @@
</span><span class="cx">             handleKeyboardSelectionMovement(m_frame-&gt;selection(), event);
</span><span class="cx">     }
</span><span class="cx">     if (event-&gt;type() == eventNames().keypressEvent) {
</span><del>-        m_frame-&gt;editor()-&gt;handleKeyboardEvent(event);
</del><ins>+        m_frame-&gt;editor().handleKeyboardEvent(event);
</ins><span class="cx">         if (event-&gt;defaultHandled())
</span><span class="cx">             return;
</span><span class="cx">         if (event-&gt;charCode() == ' ')
</span><span class="lines">@@ -3671,7 +3671,7 @@
</span><span class="cx"> 
</span><span class="cx"> void EventHandler::defaultTextInputEventHandler(TextEvent* event)
</span><span class="cx"> {
</span><del>-    if (m_frame-&gt;editor()-&gt;handleTextEvent(event))
</del><ins>+    if (m_frame-&gt;editor().handleTextEvent(event))
</ins><span class="cx">         event-&gt;setDefaultHandled();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -3704,7 +3704,7 @@
</span><span class="cx">     if (event-&gt;ctrlKey() || event-&gt;metaKey() || event-&gt;altKey() || event-&gt;altGraphKey())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (!m_frame-&gt;editor()-&gt;behavior().shouldNavigateBackOnBackspace())
</del><ins>+    if (!m_frame-&gt;editor().behavior().shouldNavigateBackOnBackspace())
</ins><span class="cx">         return;
</span><span class="cx">     
</span><span class="cx">     Page* page = m_frame-&gt;page();
</span></span></pre></div>
<a id="trunkSourceWebCorepageFocusControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/FocusController.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/FocusController.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/page/FocusController.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -537,7 +537,7 @@
</span><span class="cx">     if (!frame || !root)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    return frame-&gt;editor()-&gt;shouldEndEditing(rangeOfContents(root).get());
</del><ins>+    return frame-&gt;editor().shouldEndEditing(rangeOfContents(root).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static void clearSelectionIfNeeded(Frame* oldFocusedFrame, Frame* newFocusedFrame, Node* newFocusedNode)
</span></span></pre></div>
<a id="trunkSourceWebCorepageFramecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Frame.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Frame.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/page/Frame.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -744,14 +744,14 @@
</span><span class="cx">     VisiblePosition previous = position.previous();
</span><span class="cx">     if (previous.isNotNull()) {
</span><span class="cx">         RefPtr&lt;Range&gt; previousCharacterRange = makeRange(previous, position);
</span><del>-        LayoutRect rect = editor()-&gt;firstRectForRange(previousCharacterRange.get());
</del><ins>+        LayoutRect rect = editor().firstRectForRange(previousCharacterRange.get());
</ins><span class="cx">         if (rect.contains(framePoint))
</span><span class="cx">             return previousCharacterRange.release();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     VisiblePosition next = position.next();
</span><span class="cx">     if (RefPtr&lt;Range&gt; nextCharacterRange = makeRange(position, next)) {
</span><del>-        LayoutRect rect = editor()-&gt;firstRectForRange(nextCharacterRange.get());
</del><ins>+        LayoutRect rect = editor().firstRectForRange(nextCharacterRange.get());
</ins><span class="cx">         if (rect.contains(framePoint))
</span><span class="cx">             return nextCharacterRange.release();
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorepageFrameh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Frame.h (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Frame.h        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/page/Frame.h        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -113,7 +113,7 @@
</span><span class="cx">         Document* document() const;
</span><span class="cx">         FrameView* view() const;
</span><span class="cx"> 
</span><del>-        Editor* editor() const;
</del><ins>+        Editor&amp; editor() const;
</ins><span class="cx">         EventHandler* eventHandler() const;
</span><span class="cx">         FrameLoader* loader() const;
</span><span class="cx">         NavigationScheduler* navigationScheduler() const;
</span><span class="lines">@@ -218,7 +218,7 @@
</span><span class="cx">         RefPtr&lt;Document&gt; m_doc;
</span><span class="cx"> 
</span><span class="cx">         OwnPtr&lt;ScriptController&gt; m_script;
</span><del>-        OwnPtr&lt;Editor&gt; m_editor;
</del><ins>+        const OwnPtr&lt;Editor&gt; m_editor;
</ins><span class="cx">         OwnPtr&lt;FrameSelection&gt; m_selection;
</span><span class="cx">         OwnPtr&lt;EventHandler&gt; m_eventHandler;
</span><span class="cx">         OwnPtr&lt;AnimationController&gt; m_animationController;
</span><span class="lines">@@ -289,9 +289,9 @@
</span><span class="cx">         return m_selection.get();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    inline Editor* Frame::editor() const
</del><ins>+    inline Editor&amp; Frame::editor() const
</ins><span class="cx">     {
</span><del>-        return m_editor.get();
</del><ins>+        return *m_editor;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     inline AnimationController* Frame::animation() const
</span></span></pre></div>
<a id="trunkSourceWebCorepagePagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Page.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Page.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/page/Page.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -565,7 +565,7 @@
</span><span class="cx">     Frame* frame = focusController()-&gt;focusedOrMainFrame();
</span><span class="cx">     Frame* startFrame = frame;
</span><span class="cx">     do {
</span><del>-        if (frame-&gt;editor()-&gt;findString(target, (options &amp; ~WrapAround) | StartInSelection)) {
</del><ins>+        if (frame-&gt;editor().findString(target, (options &amp; ~WrapAround) | StartInSelection)) {
</ins><span class="cx">             if (frame != startFrame)
</span><span class="cx">                 startFrame-&gt;selection()-&gt;clear();
</span><span class="cx">             focusController()-&gt;setFocusedFrame(frame);
</span><span class="lines">@@ -577,7 +577,7 @@
</span><span class="cx">     // Search contents of startFrame, on the other side of the selection that we did earlier.
</span><span class="cx">     // We cheat a bit and just research with wrap on
</span><span class="cx">     if (shouldWrap &amp;&amp; !startFrame-&gt;selection()-&gt;isNone()) {
</span><del>-        bool found = startFrame-&gt;editor()-&gt;findString(target, options | WrapAround | StartInSelection);
</del><ins>+        bool found = startFrame-&gt;editor().findString(target, options | WrapAround | StartInSelection);
</ins><span class="cx">         focusController()-&gt;setFocusedFrame(frame);
</span><span class="cx">         return found;
</span><span class="cx">     }
</span><span class="lines">@@ -594,7 +594,7 @@
</span><span class="cx">     Frame* frame = mainFrame();
</span><span class="cx">     Frame* frameWithSelection = 0;
</span><span class="cx">     do {
</span><del>-        frame-&gt;editor()-&gt;countMatchesForText(target, 0, options, limit ? (limit - matchRanges-&gt;size()) : 0, true, matchRanges);
</del><ins>+        frame-&gt;editor().countMatchesForText(target, 0, options, limit ? (limit - matchRanges-&gt;size()) : 0, true, matchRanges);
</ins><span class="cx">         if (frame-&gt;selection()-&gt;isRange())
</span><span class="cx">             frameWithSelection = frame;
</span><span class="cx">         frame = incrementFrame(frame, true, false);
</span><span class="lines">@@ -627,7 +627,7 @@
</span><span class="cx">     Frame* frame = referenceRange ? referenceRange-&gt;ownerDocument()-&gt;frame() : mainFrame();
</span><span class="cx">     Frame* startFrame = frame;
</span><span class="cx">     do {
</span><del>-        if (RefPtr&lt;Range&gt; resultRange = frame-&gt;editor()-&gt;rangeOfString(target, frame == startFrame ? referenceRange : 0, options &amp; ~WrapAround))
</del><ins>+        if (RefPtr&lt;Range&gt; resultRange = frame-&gt;editor().rangeOfString(target, frame == startFrame ? referenceRange : 0, options &amp; ~WrapAround))
</ins><span class="cx">             return resultRange.release();
</span><span class="cx"> 
</span><span class="cx">         frame = incrementFrame(frame, !(options &amp; Backwards), shouldWrap);
</span><span class="lines">@@ -636,7 +636,7 @@
</span><span class="cx">     // Search contents of startFrame, on the other side of the reference range that we did earlier.
</span><span class="cx">     // We cheat a bit and just search again with wrap on.
</span><span class="cx">     if (shouldWrap &amp;&amp; referenceRange) {
</span><del>-        if (RefPtr&lt;Range&gt; resultRange = startFrame-&gt;editor()-&gt;rangeOfString(target, referenceRange, options | WrapAround | StartInSelection))
</del><ins>+        if (RefPtr&lt;Range&gt; resultRange = startFrame-&gt;editor().rangeOfString(target, referenceRange, options | WrapAround | StartInSelection))
</ins><span class="cx">             return resultRange.release();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -657,8 +657,8 @@
</span><span class="cx"> 
</span><span class="cx">     Frame* frame = mainFrame();
</span><span class="cx">     do {
</span><del>-        frame-&gt;editor()-&gt;setMarkedTextMatchesAreHighlighted(shouldHighlight);
-        matches += frame-&gt;editor()-&gt;countMatchesForText(target, 0, options, limit ? (limit - matches) : 0, true, 0);
</del><ins>+        frame-&gt;editor().setMarkedTextMatchesAreHighlighted(shouldHighlight);
+        matches += frame-&gt;editor().countMatchesForText(target, 0, options, limit ? (limit - matches) : 0, true, 0);
</ins><span class="cx">         frame = incrementFrame(frame, true, false);
</span><span class="cx">     } while (frame);
</span><span class="cx"> 
</span><span class="lines">@@ -788,7 +788,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     for (Frame* frame = mainFrame(); frame; frame = frame-&gt;tree()-&gt;traverseNext())
</span><del>-        frame-&gt;editor()-&gt;deviceScaleFactorChanged();
</del><ins>+        frame-&gt;editor().deviceScaleFactorChanged();
</ins><span class="cx"> 
</span><span class="cx">     pageCache()-&gt;markPagesForFullStyleRecalc(this);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorepageTouchAdjustmentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/TouchAdjustment.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/TouchAdjustment.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/page/TouchAdjustment.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -116,7 +116,7 @@
</span><span class="cx">         return true;
</span><span class="cx">     if (node-&gt;renderer()-&gt;canBeSelectionLeaf()) {
</span><span class="cx">         // If the context menu gesture will trigger a selection all selectable nodes are valid targets.
</span><del>-        if (node-&gt;renderer()-&gt;frame()-&gt;editor()-&gt;behavior().shouldSelectOnContextualMenuClick())
</del><ins>+        if (node-&gt;renderer()-&gt;frame()-&gt;editor().behavior().shouldSelectOnContextualMenuClick())
</ins><span class="cx">             return true;
</span><span class="cx">         // Only the selected part of the renderer is a valid target, but this will be corrected in
</span><span class="cx">         // appendContextSubtargetsForNode.
</span><span class="lines">@@ -157,7 +157,7 @@
</span><span class="cx">     Text* textNode = static_cast&lt;WebCore::Text*&gt;(node);
</span><span class="cx">     RenderText* textRenderer = static_cast&lt;RenderText*&gt;(textNode-&gt;renderer());
</span><span class="cx"> 
</span><del>-    if (textRenderer-&gt;frame()-&gt;editor()-&gt;behavior().shouldSelectOnContextualMenuClick()) {
</del><ins>+    if (textRenderer-&gt;frame()-&gt;editor().behavior().shouldSelectOnContextualMenuClick()) {
</ins><span class="cx">         // Make subtargets out of every word.
</span><span class="cx">         String textValue = textNode-&gt;data();
</span><span class="cx">         TextBreakIterator* wordIterator = wordBreakIterator(textValue.characters(), textValue.length());
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgtkClipboardGtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/gtk/ClipboardGtk.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/gtk/ClipboardGtk.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/platform/gtk/ClipboardGtk.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -311,7 +311,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(range);
</span><span class="cx"> 
</span><del>-    m_dataObject-&gt;setText(frame-&gt;editor()-&gt;selectedTextForClipboard());
</del><ins>+    m_dataObject-&gt;setText(frame-&gt;editor().selectedTextForClipboard());
</ins><span class="cx">     m_dataObject-&gt;setMarkup(createMarkup(range, 0, AnnotateForInterchange, false, ResolveNonLocalURLs));
</span><span class="cx"> 
</span><span class="cx">     if (m_clipboard)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgtkPasteboardGtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/gtk/PasteboardGtk.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/gtk/PasteboardGtk.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/platform/gtk/PasteboardGtk.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -65,7 +65,7 @@
</span><span class="cx">     DataObjectGtk* dataObject = DataObjectGtk::forClipboard(clipboard);
</span><span class="cx">     dataObject-&gt;clearAll();
</span><span class="cx"> 
</span><del>-    dataObject-&gt;setText(shouldSerializeSelectedTextForClipboard == IncludeImageAltTextForClipboard ? frame-&gt;editor()-&gt;selectedTextForClipboard() : frame-&gt;editor()-&gt;selectedText());
</del><ins>+    dataObject-&gt;setText(shouldSerializeSelectedTextForClipboard == IncludeImageAltTextForClipboard ? frame-&gt;editor().selectedTextForClipboard() : frame-&gt;editor().selectedText());
</ins><span class="cx">     dataObject-&gt;setMarkup(createMarkup(selectedRange, 0, AnnotateForInterchange, false, ResolveNonLocalURLs));
</span><span class="cx">     helper-&gt;writeClipboardContents(clipboard, canSmartCopyOrDelete ? PasteboardHelper::IncludeSmartPaste : PasteboardHelper::DoNotIncludeSmartPaste);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacDragDataMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/DragDataMac.mm (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/DragDataMac.mm        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/platform/mac/DragDataMac.mm        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -162,7 +162,7 @@
</span><span class="cx">         NSString *scheme = [URLFromPasteboard scheme];
</span><span class="cx">         // Cannot drop other schemes unless &lt;rdar://problem/10562662&gt; and &lt;rdar://problem/11187315&gt; are fixed.
</span><span class="cx">         if ([scheme isEqualToString:@&quot;http&quot;] || [scheme isEqualToString:@&quot;https&quot;])
</span><del>-            return [frame-&gt;editor()-&gt;client()-&gt;canonicalizeURL(URLFromPasteboard) absoluteString];
</del><ins>+            return [frame-&gt;editor().client()-&gt;canonicalizeURL(URLFromPasteboard) absoluteString];
</ins><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     if (types.contains(String(NSStringPboardType))) {
</span><span class="lines">@@ -172,7 +172,7 @@
</span><span class="cx">         // The result of this function is used to initiate navigation, so we shouldn't allow arbitrary file URLs.
</span><span class="cx">         // FIXME: Should we allow only http family schemes, or anything non-local?
</span><span class="cx">         if ([scheme isEqualToString:@&quot;http&quot;] || [scheme isEqualToString:@&quot;https&quot;])
</span><del>-            return [frame-&gt;editor()-&gt;client()-&gt;canonicalizeURL(URLFromPasteboard) absoluteString];
</del><ins>+            return [frame-&gt;editor().client()-&gt;canonicalizeURL(URLFromPasteboard) absoluteString];
</ins><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     if (types.contains(String(NSFilenamesPboardType))) {
</span><span class="lines">@@ -182,7 +182,7 @@
</span><span class="cx">             BOOL isDirectory;
</span><span class="cx">             if ([[NSFileManager defaultManager] fileExistsAtPath:files[0] isDirectory:&amp;isDirectory] &amp;&amp; isDirectory)
</span><span class="cx">                 return String();
</span><del>-            return [frame-&gt;editor()-&gt;client()-&gt;canonicalizeURL([NSURL fileURLWithPath:files[0]]) absoluteString];
</del><ins>+            return [frame-&gt;editor().client()-&gt;canonicalizeURL([NSURL fileURLWithPath:files[0]]) absoluteString];
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacPasteboardMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/PasteboardMac.mm (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/PasteboardMac.mm        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/platform/mac/PasteboardMac.mm        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -139,7 +139,7 @@
</span><span class="cx"> 
</span><span class="cx"> String Pasteboard::getStringSelection(Frame* frame, ShouldSerializeSelectedTextForClipboard shouldSerializeSelectedTextForClipboard)
</span><span class="cx"> {
</span><del>-    String text = shouldSerializeSelectedTextForClipboard == IncludeImageAltTextForClipboard ? frame-&gt;editor()-&gt;selectedTextForClipboard() : frame-&gt;editor()-&gt;selectedText();
</del><ins>+    String text = shouldSerializeSelectedTextForClipboard == IncludeImageAltTextForClipboard ? frame-&gt;editor().selectedTextForClipboard() : frame-&gt;editor().selectedText();
</ins><span class="cx">     text.replace(noBreakSpace, ' ');
</span><span class="cx">     return text;
</span><span class="cx"> }
</span><span class="lines">@@ -152,7 +152,7 @@
</span><span class="cx">         return SharedBuffer::wrapNSData((NSData *)data.get());
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    RefPtr&lt;Range&gt; range = frame-&gt;editor()-&gt;selectedRange();
</del><ins>+    RefPtr&lt;Range&gt; range = frame-&gt;editor().selectedRange();
</ins><span class="cx">     Node* commonAncestor = range-&gt;commonAncestorContainer(IGNORE_EXCEPTION);
</span><span class="cx">     ASSERT(commonAncestor);
</span><span class="cx">     Node* enclosingAnchor = enclosingNodeWithTag(firstPositionInNode(commonAncestor), HTMLNames::aTag);
</span><span class="lines">@@ -180,7 +180,7 @@
</span><span class="cx"> void Pasteboard::writeSelectionForTypes(const Vector&lt;String&gt;&amp; pasteboardTypes, bool canSmartCopyOrDelete, Frame* frame, ShouldSerializeSelectedTextForClipboard shouldSerializeSelectedTextForClipboard)
</span><span class="cx"> {
</span><span class="cx">     NSAttributedString* attributedString = nil;
</span><del>-    RetainPtr&lt;WebHTMLConverter&gt; converter = adoptNS([[WebHTMLConverter alloc] initWithDOMRange:kit(frame-&gt;editor()-&gt;selectedRange().get())]);
</del><ins>+    RetainPtr&lt;WebHTMLConverter&gt; converter = adoptNS([[WebHTMLConverter alloc] initWithDOMRange:kit(frame-&gt;editor().selectedRange().get())]);
</ins><span class="cx">     if (converter)
</span><span class="cx">         attributedString = [converter.get() attributedString];
</span><span class="cx">     
</span><span class="lines">@@ -188,11 +188,11 @@
</span><span class="cx"> 
</span><span class="cx">     Vector&lt;String&gt; clientTypes;
</span><span class="cx">     Vector&lt;RefPtr&lt;SharedBuffer&gt; &gt; clientData;
</span><del>-    frame-&gt;editor()-&gt;client()-&gt;getClientPasteboardDataForRange(frame-&gt;editor()-&gt;selectedRange().get(), clientTypes, clientData);
</del><ins>+    frame-&gt;editor().client()-&gt;getClientPasteboardDataForRange(frame-&gt;editor().selectedRange().get(), clientTypes, clientData);
</ins><span class="cx">     types.appendVector(clientTypes);
</span><span class="cx"> 
</span><span class="cx">     platformStrategies()-&gt;pasteboardStrategy()-&gt;setTypes(types, m_pasteboardName);
</span><del>-    frame-&gt;editor()-&gt;client()-&gt;didSetSelectionTypesForPasteboard();
</del><ins>+    frame-&gt;editor().client()-&gt;didSetSelectionTypesForPasteboard();
</ins><span class="cx"> 
</span><span class="cx">     for (size_t i = 0; i &lt; clientTypes.size(); ++i)
</span><span class="cx">         platformStrategies()-&gt;pasteboardStrategy()-&gt;setBufferForType(clientData[i], clientTypes[i], m_pasteboardName);
</span><span class="lines">@@ -241,7 +241,7 @@
</span><span class="cx">     ASSERT(!url.isEmpty());
</span><span class="cx">     
</span><span class="cx">     NSURL *cocoaURL = url;
</span><del>-    NSString *userVisibleString = frame-&gt;editor()-&gt;client()-&gt;userVisibleString(cocoaURL);
</del><ins>+    NSString *userVisibleString = frame-&gt;editor().client()-&gt;userVisibleString(cocoaURL);
</ins><span class="cx">     
</span><span class="cx">     NSString *title = (NSString*)titleStr;
</span><span class="cx">     if ([title length] == 0) {
</span><span class="lines">@@ -380,7 +380,7 @@
</span><span class="cx">         // FIXME: using the editorClient to call into webkit, for now, since 
</span><span class="cx">         // calling _web_userVisibleString from WebCore involves migrating a sizable web of 
</span><span class="cx">         // helper code that should either be done in a separate patch or figured out in another way.
</span><del>-        string = frame-&gt;editor()-&gt;client()-&gt;userVisibleString([NSURL URLWithString:string]);
</del><ins>+        string = frame-&gt;editor().client()-&gt;userVisibleString([NSURL URLWithString:string]);
</ins><span class="cx">         if ([string length] &gt; 0)
</span><span class="cx">             return [string precomposedStringWithCanonicalMapping];
</span><span class="cx">     }
</span><span class="lines">@@ -435,7 +435,7 @@
</span><span class="cx">         frame-&gt;page()-&gt;setDefersLoading(true);
</span><span class="cx"> 
</span><span class="cx">     Vector&lt;RefPtr&lt;ArchiveResource&gt; &gt; resources;
</span><del>-    RefPtr&lt;DocumentFragment&gt; fragment = frame-&gt;editor()-&gt;client()-&gt;documentFragmentFromAttributedString(string, resources);
</del><ins>+    RefPtr&lt;DocumentFragment&gt; fragment = frame-&gt;editor().client()-&gt;documentFragmentFromAttributedString(string, resources);
</ins><span class="cx"> 
</span><span class="cx">     size_t size = resources.size();
</span><span class="cx">     if (size) {
</span><span class="lines">@@ -513,7 +513,7 @@
</span><span class="cx">         for (size_t i = 0; i &lt; paths.size(); i++) {
</span><span class="cx">             // Non-image file types; _web_userVisibleString is appropriate here because this will
</span><span class="cx">             // be pasted as visible text.
</span><del>-            NSString *url = frame-&gt;editor()-&gt;client()-&gt;userVisibleString([NSURL fileURLWithPath:paths[i]]);
</del><ins>+            NSString *url = frame-&gt;editor().client()-&gt;userVisibleString([NSURL fileURLWithPath:paths[i]]);
</ins><span class="cx">             RefPtr&lt;Node&gt; textNode = frame-&gt;document()-&gt;createTextNode(url);
</span><span class="cx">             refNodesVector.append(textNode.get());
</span><span class="cx">             nodesVector.append(textNode.get());
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformqtClipboardQtcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/qt/ClipboardQt.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/qt/ClipboardQt.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/platform/qt/ClipboardQt.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -313,7 +313,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (!m_writableData)
</span><span class="cx">         m_writableData = new QMimeData;
</span><del>-    QString text = frame-&gt;editor()-&gt;selectedTextForClipboard();
</del><ins>+    QString text = frame-&gt;editor().selectedTextForClipboard();
</ins><span class="cx">     text.replace(QChar(0xa0), QLatin1Char(' '));
</span><span class="cx">     m_writableData-&gt;setText(text);
</span><span class="cx">     m_writableData-&gt;setHtml(createMarkup(range, 0, AnnotateForInterchange, false, ResolveNonLocalURLs));
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformqtPasteboardQtcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/qt/PasteboardQt.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/qt/PasteboardQt.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/platform/qt/PasteboardQt.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx"> void Pasteboard::writeSelection(Range* selectedRange, bool canSmartCopyOrDelete, Frame* frame, ShouldSerializeSelectedTextForClipboard shouldSerializeSelectedTextForClipboard)
</span><span class="cx"> {
</span><span class="cx">     QMimeData* md = new QMimeData;
</span><del>-    QString text = shouldSerializeSelectedTextForClipboard == IncludeImageAltTextForClipboard ? frame-&gt;editor()-&gt;selectedTextForClipboard() : frame-&gt;editor()-&gt;selectedText();
</del><ins>+    QString text = shouldSerializeSelectedTextForClipboard == IncludeImageAltTextForClipboard ? frame-&gt;editor().selectedTextForClipboard() : frame-&gt;editor().selectedText();
</ins><span class="cx">     text.replace(QChar(0xa0), QLatin1Char(' '));
</span><span class="cx">     md-&gt;setText(text);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformwinClipboardWincpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/win/ClipboardWin.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/win/ClipboardWin.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/platform/win/ClipboardWin.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -751,7 +751,7 @@
</span><span class="cx">     if (medium.hGlobal &amp;&amp; FAILED(m_writableDataObject-&gt;SetData(htmlFormat(), &amp;medium, TRUE)))
</span><span class="cx">         ::GlobalFree(medium.hGlobal);
</span><span class="cx"> 
</span><del>-    String str = frame-&gt;editor()-&gt;selectedTextForClipboard();
</del><ins>+    String str = frame-&gt;editor().selectedTextForClipboard();
</ins><span class="cx">     replaceNewlinesWithWindowsStyleNewlines(str);
</span><span class="cx">     replaceNBSPWithSpace(str);
</span><span class="cx">     medium.hGlobal = createGlobalData(str);
</span><span class="lines">@@ -759,7 +759,7 @@
</span><span class="cx">         ::GlobalFree(medium.hGlobal);
</span><span class="cx"> 
</span><span class="cx">     medium.hGlobal = 0;
</span><del>-    if (frame-&gt;editor()-&gt;canSmartCopyOrDelete())
</del><ins>+    if (frame-&gt;editor().canSmartCopyOrDelete())
</ins><span class="cx">         m_writableDataObject-&gt;SetData(smartPasteFormat(), &amp;medium, TRUE);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformwinPasteboardWincpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/win/PasteboardWin.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/win/PasteboardWin.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/platform/win/PasteboardWin.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -130,7 +130,7 @@
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     // Put plain string on the pasteboard. CF_UNICODETEXT covers CF_TEXT as well
</span><del>-    String str = shouldSerializeSelectedTextForClipboard == IncludeImageAltTextForClipboard ? frame-&gt;editor()-&gt;selectedTextForClipboard() : frame-&gt;editor()-&gt;selectedText();
</del><ins>+    String str = shouldSerializeSelectedTextForClipboard == IncludeImageAltTextForClipboard ? frame-&gt;editor().selectedTextForClipboard() : frame-&gt;editor().selectedText();
</ins><span class="cx">     replaceNewlinesWithWindowsStyleNewlines(str);
</span><span class="cx">     replaceNBSPWithSpace(str);
</span><span class="cx">     if (::OpenClipboard(m_owner)) {
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingHitTestResultcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/HitTestResult.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/HitTestResult.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/rendering/HitTestResult.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -640,7 +640,7 @@
</span><span class="cx">     if (!frame)
</span><span class="cx">         return Vector&lt;String&gt;();
</span><span class="cx"> 
</span><del>-    return frame-&gt;editor()-&gt;dictationAlternativesForMarker(marker);
</del><ins>+    return frame-&gt;editor().dictationAlternativesForMarker(marker);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Node* HitTestResult::targetNode() const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingInlineTextBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/InlineTextBox.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/InlineTextBox.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/rendering/InlineTextBox.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -548,8 +548,8 @@
</span><span class="cx">         context-&gt;concatCTM(rotation(boxRect, Clockwise));
</span><span class="cx"> 
</span><span class="cx">     // Determine whether or not we have composition underlines to draw.
</span><del>-    bool containsComposition = renderer()-&gt;node() &amp;&amp; renderer()-&gt;frame()-&gt;editor()-&gt;compositionNode() == renderer()-&gt;node();
-    bool useCustomUnderlines = containsComposition &amp;&amp; renderer()-&gt;frame()-&gt;editor()-&gt;compositionUsesCustomUnderlines();
</del><ins>+    bool containsComposition = renderer()-&gt;node() &amp;&amp; renderer()-&gt;frame()-&gt;editor().compositionNode() == renderer()-&gt;node();
+    bool useCustomUnderlines = containsComposition &amp;&amp; renderer()-&gt;frame()-&gt;editor().compositionUsesCustomUnderlines();
</ins><span class="cx"> 
</span><span class="cx">     // Determine the text colors and selection colors.
</span><span class="cx">     Color textFillColor;
</span><span class="lines">@@ -657,8 +657,8 @@
</span><span class="cx"> 
</span><span class="cx">         if (containsComposition &amp;&amp; !useCustomUnderlines)
</span><span class="cx">             paintCompositionBackground(context, boxOrigin, styleToUse, font,
</span><del>-                renderer()-&gt;frame()-&gt;editor()-&gt;compositionStart(),
-                renderer()-&gt;frame()-&gt;editor()-&gt;compositionEnd());
</del><ins>+                renderer()-&gt;frame()-&gt;editor().compositionStart(),
+                renderer()-&gt;frame()-&gt;editor().compositionEnd());
</ins><span class="cx"> 
</span><span class="cx">         paintDocumentMarkers(context, boxOrigin, styleToUse, font, true);
</span><span class="cx"> 
</span><span class="lines">@@ -785,7 +785,7 @@
</span><span class="cx">         paintDocumentMarkers(context, boxOrigin, styleToUse, font, false);
</span><span class="cx"> 
</span><span class="cx">         if (useCustomUnderlines) {
</span><del>-            const Vector&lt;CompositionUnderline&gt;&amp; underlines = renderer()-&gt;frame()-&gt;editor()-&gt;customCompositionUnderlines();
</del><ins>+            const Vector&lt;CompositionUnderline&gt;&amp; underlines = renderer()-&gt;frame()-&gt;editor().customCompositionUnderlines();
</ins><span class="cx">             size_t numUnderlines = underlines.size();
</span><span class="cx"> 
</span><span class="cx">             for (size_t index = 0; index &lt; numUnderlines; ++index) {
</span><span class="lines">@@ -1359,7 +1359,7 @@
</span><span class="cx">     toRenderedDocumentMarker(marker)-&gt;setRenderedRect(markerRect);
</span><span class="cx">     
</span><span class="cx">     // Optionally highlight the text
</span><del>-    if (renderer()-&gt;frame()-&gt;editor()-&gt;markedTextMatchesAreHighlighted()) {
</del><ins>+    if (renderer()-&gt;frame()-&gt;editor().markedTextMatchesAreHighlighted()) {
</ins><span class="cx">         Color color = marker-&gt;activeMatch() ?
</span><span class="cx">             renderer()-&gt;theme()-&gt;platformActiveTextSearchHighlightColor() :
</span><span class="cx">             renderer()-&gt;theme()-&gt;platformInactiveTextSearchHighlightColor();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlock.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -5286,7 +5286,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    bool moveCaretToBoundary = document()-&gt;frame()-&gt;editor()-&gt;behavior().shouldMoveCaretToHorizontalBoundaryWhenPastTopOrBottom();
</del><ins>+    bool moveCaretToBoundary = document()-&gt;frame()-&gt;editor().behavior().shouldMoveCaretToHorizontalBoundaryWhenPastTopOrBottom();
</ins><span class="cx"> 
</span><span class="cx">     if (!moveCaretToBoundary &amp;&amp; !closestBox &amp;&amp; lastRootBoxWithChildren) {
</span><span class="cx">         // y coordinate is below last root line box, pretend we hit it
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebCore/testing/Internals.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -236,10 +236,10 @@
</span><span class="cx"> 
</span><span class="cx"> static SpellChecker* spellchecker(Document* document)
</span><span class="cx"> {
</span><del>-    if (!document || !document-&gt;frame() || !document-&gt;frame()-&gt;editor())
</del><ins>+    if (!document || !document-&gt;frame())
</ins><span class="cx">         return 0;
</span><span class="cx"> 
</span><del>-    return document-&gt;frame()-&gt;editor()-&gt;spellChecker();
</del><ins>+    return document-&gt;frame()-&gt;editor().spellChecker();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const char* Internals::internalsId = &quot;internals&quot;;
</span><span class="lines">@@ -284,10 +284,10 @@
</span><span class="cx">     page-&gt;group().captionPreferences()-&gt;setCaptionsStyleSheetOverride(emptyString());
</span><span class="cx">     page-&gt;group().captionPreferences()-&gt;setTestingMode(false);
</span><span class="cx"> #endif
</span><del>-    if (!page-&gt;mainFrame()-&gt;editor()-&gt;isContinuousSpellCheckingEnabled())
-        page-&gt;mainFrame()-&gt;editor()-&gt;toggleContinuousSpellChecking();
-    if (page-&gt;mainFrame()-&gt;editor()-&gt;isOverwriteModeEnabled())
-        page-&gt;mainFrame()-&gt;editor()-&gt;toggleOverwriteModeEnabled();
</del><ins>+    if (!page-&gt;mainFrame()-&gt;editor().isContinuousSpellCheckingEnabled())
+        page-&gt;mainFrame()-&gt;editor().toggleContinuousSpellChecking();
+    if (page-&gt;mainFrame()-&gt;editor().isOverwriteModeEnabled())
+        page-&gt;mainFrame()-&gt;editor().toggleOverwriteModeEnabled();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Internals::Internals(Document* document)
</span><span class="lines">@@ -1426,7 +1426,7 @@
</span><span class="cx">     if (!document || !document-&gt;frame())
</span><span class="cx">         return 0;
</span><span class="cx"> 
</span><del>-    return document-&gt;frame()-&gt;editor()-&gt;selectionStartHasMarkerFor(DocumentMarker::Spelling, from, length);
</del><ins>+    return document-&gt;frame()-&gt;editor().selectionStartHasMarkerFor(DocumentMarker::Spelling, from, length);
</ins><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> bool Internals::hasAutocorrectedMarker(Document* document, int from, int length, ExceptionCode&amp;)
</span><span class="lines">@@ -1434,7 +1434,7 @@
</span><span class="cx">     if (!document || !document-&gt;frame())
</span><span class="cx">         return 0;
</span><span class="cx">     
</span><del>-    return document-&gt;frame()-&gt;editor()-&gt;selectionStartHasMarkerFor(DocumentMarker::Autocorrected, from, length);
</del><ins>+    return document-&gt;frame()-&gt;editor().selectionStartHasMarkerFor(DocumentMarker::Autocorrected, from, length);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Internals::setContinuousSpellCheckingEnabled(bool enabled, ExceptionCode&amp;)
</span><span class="lines">@@ -1442,8 +1442,8 @@
</span><span class="cx">     if (!contextDocument() || !contextDocument()-&gt;frame())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (enabled != contextDocument()-&gt;frame()-&gt;editor()-&gt;isContinuousSpellCheckingEnabled())
-        contextDocument()-&gt;frame()-&gt;editor()-&gt;toggleContinuousSpellChecking();
</del><ins>+    if (enabled != contextDocument()-&gt;frame()-&gt;editor().isContinuousSpellCheckingEnabled())
+        contextDocument()-&gt;frame()-&gt;editor().toggleContinuousSpellChecking();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Internals::setAutomaticQuoteSubstitutionEnabled(bool enabled, ExceptionCode&amp;)
</span><span class="lines">@@ -1452,8 +1452,8 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx"> #if USE(AUTOMATIC_TEXT_REPLACEMENT)
</span><del>-    if (enabled != contextDocument()-&gt;frame()-&gt;editor()-&gt;isAutomaticQuoteSubstitutionEnabled())
-        contextDocument()-&gt;frame()-&gt;editor()-&gt;toggleAutomaticQuoteSubstitution();
</del><ins>+    if (enabled != contextDocument()-&gt;frame()-&gt;editor().isAutomaticQuoteSubstitutionEnabled())
+        contextDocument()-&gt;frame()-&gt;editor().toggleAutomaticQuoteSubstitution();
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(enabled);
</span><span class="cx"> #endif
</span><span class="lines">@@ -1465,8 +1465,8 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx"> #if USE(AUTOMATIC_TEXT_REPLACEMENT)
</span><del>-    if (enabled != contextDocument()-&gt;frame()-&gt;editor()-&gt;isAutomaticLinkDetectionEnabled())
-        contextDocument()-&gt;frame()-&gt;editor()-&gt;toggleAutomaticLinkDetection();
</del><ins>+    if (enabled != contextDocument()-&gt;frame()-&gt;editor().isAutomaticLinkDetectionEnabled())
+        contextDocument()-&gt;frame()-&gt;editor().toggleAutomaticLinkDetection();
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(enabled);
</span><span class="cx"> #endif
</span><span class="lines">@@ -1478,8 +1478,8 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx"> #if USE(AUTOMATIC_TEXT_REPLACEMENT)
</span><del>-    if (enabled != contextDocument()-&gt;frame()-&gt;editor()-&gt;isAutomaticDashSubstitutionEnabled())
-        contextDocument()-&gt;frame()-&gt;editor()-&gt;toggleAutomaticDashSubstitution();
</del><ins>+    if (enabled != contextDocument()-&gt;frame()-&gt;editor().isAutomaticDashSubstitutionEnabled())
+        contextDocument()-&gt;frame()-&gt;editor().toggleAutomaticDashSubstitution();
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(enabled);
</span><span class="cx"> #endif
</span><span class="lines">@@ -1491,8 +1491,8 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx"> #if USE(AUTOMATIC_TEXT_REPLACEMENT)
</span><del>-    if (enabled != contextDocument()-&gt;frame()-&gt;editor()-&gt;isAutomaticTextReplacementEnabled())
-        contextDocument()-&gt;frame()-&gt;editor()-&gt;toggleAutomaticTextReplacement();
</del><ins>+    if (enabled != contextDocument()-&gt;frame()-&gt;editor().isAutomaticTextReplacementEnabled())
+        contextDocument()-&gt;frame()-&gt;editor().toggleAutomaticTextReplacement();
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(enabled);
</span><span class="cx"> #endif
</span><span class="lines">@@ -1504,8 +1504,8 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx"> #if USE(AUTOMATIC_TEXT_REPLACEMENT)
</span><del>-    if (enabled != contextDocument()-&gt;frame()-&gt;editor()-&gt;isAutomaticSpellingCorrectionEnabled())
-        contextDocument()-&gt;frame()-&gt;editor()-&gt;toggleAutomaticSpellingCorrection();
</del><ins>+    if (enabled != contextDocument()-&gt;frame()-&gt;editor().isAutomaticSpellingCorrectionEnabled())
+        contextDocument()-&gt;frame()-&gt;editor().toggleAutomaticSpellingCorrection();
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(enabled);
</span><span class="cx"> #endif
</span><span class="lines">@@ -1516,7 +1516,7 @@
</span><span class="cx">     if (!document || !document-&gt;frame())
</span><span class="cx">         return 0;
</span><span class="cx"> 
</span><del>-    return document-&gt;frame()-&gt;editor()-&gt;isOverwriteModeEnabled();
</del><ins>+    return document-&gt;frame()-&gt;editor().isOverwriteModeEnabled();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Internals::toggleOverwriteModeEnabled(Document* document, ExceptionCode&amp;)
</span><span class="lines">@@ -1524,7 +1524,7 @@
</span><span class="cx">     if (!document || !document-&gt;frame())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    document-&gt;frame()-&gt;editor()-&gt;toggleOverwriteModeEnabled();
</del><ins>+    document-&gt;frame()-&gt;editor().toggleOverwriteModeEnabled();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><span class="lines">@@ -1619,7 +1619,7 @@
</span><span class="cx">     if (!document || !document-&gt;frame())
</span><span class="cx">         return 0;
</span><span class="cx"> 
</span><del>-    return document-&gt;frame()-&gt;editor()-&gt;selectionStartHasMarkerFor(DocumentMarker::Grammar, from, length);
</del><ins>+    return document-&gt;frame()-&gt;editor().selectionStartHasMarkerFor(DocumentMarker::Grammar, from, length);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> unsigned Internals::numberOfScrollableAreas(Document* document, ExceptionCode&amp;)
</span></span></pre></div>
<a id="trunkSourceWebKitblackberryChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/blackberry/ChangeLog (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/blackberry/ChangeLog        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/blackberry/ChangeLog        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -1,3 +1,21 @@
</span><ins>+2013-05-13  Anders Carlsson  &lt;andersca@apple.com&gt;
+
+        Frame::editor() should return a reference
+        https://bugs.webkit.org/show_bug.cgi?id=116037
+
+        Reviewed by Darin Adler.
+
+        * WebCoreSupport/EditorClientBlackBerry.cpp:
+        (WebCore::EditorClientBlackBerry::shouldSpellCheckFocusedField):
+        (WebCore::EditorClientBlackBerry::handleKeyboardEvent):
+        * WebKitSupport/DOMSupport.cpp:
+        (BlackBerry::WebKit::DOMSupport::elementHasContinuousSpellCheckingEnabled):
+        * WebKitSupport/InPageSearchManager.cpp:
+        (BlackBerry::WebKit::InPageSearchManager::findAndMarkText):
+        (BlackBerry::WebKit::InPageSearchManager::scopeStringMatches):
+        * WebKitSupport/SelectionHandler.cpp:
+        (BlackBerry::WebKit::SelectionHandler::selectedText):
+
</ins><span class="cx"> 2013-05-14  Carlos Garcia Campos  &lt;cgarcia@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Remove WTF_USE_PLATFORM_STRATEGIES
</span></span></pre></div>
<a id="trunkSourceWebKitblackberryWebCoreSupportEditorClientBlackBerrycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/blackberry/WebCoreSupport/EditorClientBlackBerry.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/blackberry/WebCoreSupport/EditorClientBlackBerry.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/blackberry/WebCoreSupport/EditorClientBlackBerry.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -115,7 +115,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // Check if the node disables spell checking directly.
</span><del>-    return frame-&gt;editor()-&gt;isSpellCheckingEnabledInFocusedNode();
</del><ins>+    return frame-&gt;editor().isSpellCheckingEnabledInFocusedNode();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool EditorClientBlackBerry::isContinuousSpellCheckingEnabled()
</span><span class="lines">@@ -469,19 +469,19 @@
</span><span class="cx">     String commandName = interpretKeyEvent(event);
</span><span class="cx"> 
</span><span class="cx">     // Check to see we are not trying to insert text on key down.
</span><del>-    ASSERT(!(event-&gt;type() == eventNames().keydownEvent &amp;&amp; frame-&gt;editor()-&gt;command(commandName).isTextInsertion()));
</del><ins>+    ASSERT(!(event-&gt;type() == eventNames().keydownEvent &amp;&amp; frame-&gt;editor().command(commandName).isTextInsertion()));
</ins><span class="cx"> 
</span><span class="cx">     if (!commandName.isEmpty()) {
</span><span class="cx">         // Hot key handling. Cancel processing mode.
</span><span class="cx">         if (commandName != &quot;DeleteBackward&quot;)
</span><span class="cx">             m_webPagePrivate-&gt;m_inputHandler-&gt;setProcessingChange(false);
</span><span class="cx"> 
</span><del>-        if (frame-&gt;editor()-&gt;command(commandName).execute())
</del><ins>+        if (frame-&gt;editor().command(commandName).execute())
</ins><span class="cx">             event-&gt;setDefaultHandled();
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (!frame-&gt;editor()-&gt;canEdit())
</del><ins>+    if (!frame-&gt;editor().canEdit())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // Text insertion commands should only be triggered from keypressEvent.
</span><span class="lines">@@ -501,7 +501,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (!platformEvent-&gt;text().isEmpty()) {
</span><del>-        if (frame-&gt;editor()-&gt;insertText(platformEvent-&gt;text(), event))
</del><ins>+        if (frame-&gt;editor().insertText(platformEvent-&gt;text(), event))
</ins><span class="cx">             event-&gt;setDefaultHandled();
</span><span class="cx">     }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKitblackberryWebKitSupportDOMSupportcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/blackberry/WebKitSupport/DOMSupport.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/blackberry/WebKitSupport/DOMSupport.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/blackberry/WebKitSupport/DOMSupport.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -266,7 +266,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool elementHasContinuousSpellCheckingEnabled(const PassRefPtr&lt;WebCore::Element&gt; element)
</span><span class="cx"> {
</span><del>-    return element &amp;&amp; element-&gt;document()-&gt;frame() &amp;&amp; element-&gt;document()-&gt;frame()-&gt;editor()-&gt;isContinuousSpellCheckingEnabled();
</del><ins>+    return element &amp;&amp; element-&gt;document()-&gt;frame() &amp;&amp; element-&gt;document()-&gt;frame()-&gt;editor().isContinuousSpellCheckingEnabled();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // Check if this is an input field that will be focused &amp; require input support.
</span></span></pre></div>
<a id="trunkSourceWebKitblackberryWebKitSupportInPageSearchManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/blackberry/WebKitSupport/InPageSearchManager.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/blackberry/WebKitSupport/InPageSearchManager.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/blackberry/WebKitSupport/InPageSearchManager.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -180,7 +180,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool InPageSearchManager::findAndMarkText(const String&amp; text, Range* range, Frame* frame, const FindOptions&amp; options, bool isNewSearch, bool startFromSelection)
</span><span class="cx"> {
</span><del>-    if (RefPtr&lt;Range&gt; match = frame-&gt;editor()-&gt;findStringAndScrollToVisible(text, range, options)) {
</del><ins>+    if (RefPtr&lt;Range&gt; match = frame-&gt;editor().findStringAndScrollToVisible(text, range, options)) {
</ins><span class="cx">         // Move the highlight to the new match.
</span><span class="cx">         setActiveMatchAndMarker(match);
</span><span class="cx">         if (isNewSearch) {
</span><span class="lines">@@ -190,7 +190,7 @@
</span><span class="cx">                 // because scopeStringMatches does not add any markers, it only counts the number.
</span><span class="cx">                 // No need to unmarkAllTextMatches, it is already done from the caller because of newSearch
</span><span class="cx">                 m_activeMatch-&gt;ownerDocument()-&gt;markers()-&gt;addTextMatchMarker(m_activeMatch.get(), true);
</span><del>-                frame-&gt;editor()-&gt;setMarkedTextMatchesAreHighlighted(true /* highlight */);
</del><ins>+                frame-&gt;editor().setMarkedTextMatchesAreHighlighted(true /* highlight */);
</ins><span class="cx">             }
</span><span class="cx">             return true;
</span><span class="cx">         }
</span><span class="lines">@@ -223,7 +223,7 @@
</span><span class="cx">             // all matches but count them.
</span><span class="cx">             m_webPage-&gt;m_page-&gt;unmarkAllTextMatches();
</span><span class="cx">             m_activeMatch-&gt;ownerDocument()-&gt;markers()-&gt;addTextMatchMarker(m_activeMatch.get(), true);
</span><del>-            frame-&gt;editor()-&gt;setMarkedTextMatchesAreHighlighted(true /* highlight */);
</del><ins>+            frame-&gt;editor().setMarkedTextMatchesAreHighlighted(true /* highlight */);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         return true;
</span><span class="lines">@@ -356,7 +356,7 @@
</span><span class="cx">             m_activeMatchIndex += matchCount;
</span><span class="cx">         } else {
</span><span class="cx">             if (m_highlightAllMatches)
</span><del>-                scopingFrame-&gt;editor()-&gt;setMarkedTextMatchesAreHighlighted(true /* highlight */);
</del><ins>+                scopingFrame-&gt;editor().setMarkedTextMatchesAreHighlighted(true /* highlight */);
</ins><span class="cx">             m_activeMatchCount += matchCount;
</span><span class="cx">             m_webPage-&gt;m_client-&gt;updateFindStringResult(m_activeMatchCount, m_activeMatchIndex);
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebKitblackberryWebKitSupportSelectionHandlercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/blackberry/WebKitSupport/SelectionHandler.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/blackberry/WebKitSupport/SelectionHandler.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/blackberry/WebKitSupport/SelectionHandler.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -105,7 +105,7 @@
</span><span class="cx"> 
</span><span class="cx"> BlackBerry::Platform::String SelectionHandler::selectedText() const
</span><span class="cx"> {
</span><del>-    return m_webPage-&gt;focusedOrMainFrame()-&gt;editor()-&gt;selectedText();
</del><ins>+    return m_webPage-&gt;focusedOrMainFrame()-&gt;editor().selectedText();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> WebCore::IntRect SelectionHandler::clippingRectForVisibleContent() const
</span></span></pre></div>
<a id="trunkSourceWebKiteflChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/efl/ChangeLog (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/efl/ChangeLog        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/efl/ChangeLog        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -1,3 +1,27 @@
</span><ins>+2013-05-13  Anders Carlsson  &lt;andersca@apple.com&gt;
+
+        Frame::editor() should return a reference
+        https://bugs.webkit.org/show_bug.cgi?id=116037
+
+        Reviewed by Darin Adler.
+
+        * WebCoreSupport/DumpRenderTreeSupportEfl.cpp:
+        (DumpRenderTreeSupportEfl::executeCoreCommandByName):
+        (DumpRenderTreeSupportEfl::isCommandEnabled):
+        * WebCoreSupport/EditorClientEfl.cpp:
+        (WebCore::EditorClientEfl::respondToChangedSelection):
+        (WebCore::EditorClientEfl::handleEditingKeyboardEvent):
+        * ewk/ewk_frame.cpp:
+        (ewk_frame_editable_set):
+        (ewk_frame_selection_get):
+        (ewk_frame_text_search):
+        (ewk_frame_text_matches_mark):
+        (ewk_frame_text_matches_highlight_set):
+        (ewk_frame_text_matches_highlight_get):
+        * ewk/ewk_view.cpp:
+        (ewk_view_selection_get):
+        (ewk_view_editor_command_execute):
+
</ins><span class="cx"> 2013-05-12  Timothy Hatcher  &lt;timothy@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Add support for updating the Web Inspector toolbar height.
</span></span></pre></div>
<a id="trunkSourceWebKiteflWebCoreSupportDumpRenderTreeSupportEflcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -291,7 +291,7 @@
</span><span class="cx"> {
</span><span class="cx">     DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page);
</span><span class="cx"> 
</span><del>-    page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor()-&gt;command(name).execute(value);
</del><ins>+    page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor().command(name).execute(value);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool DumpRenderTreeSupportEfl::findString(const Evas_Object* ewkView, const String&amp; text, WebCore::FindOptions options)
</span><span class="lines">@@ -328,7 +328,7 @@
</span><span class="cx"> {
</span><span class="cx">     DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page, false);
</span><span class="cx"> 
</span><del>-    return page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor()-&gt;command(name).isEnabled();
</del><ins>+    return page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor().command(name).isEnabled();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DumpRenderTreeSupportEfl::forceLayout(Evas_Object* ewkFrame)
</span><span class="lines">@@ -550,14 +550,14 @@
</span><span class="cx">     if (!page-&gt;focusController() || !page-&gt;focusController()-&gt;focusedOrMainFrame())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    WebCore::Editor* editor = page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor();
-    if (!editor || (!editor-&gt;canEdit() &amp;&amp; !editor-&gt;hasComposition()))
</del><ins>+    WebCore::Editor&amp; editor = page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor();
+    if (!editor.canEdit() &amp;&amp; !editor.hasComposition())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     const String compositionString = String::fromUTF8(text);
</span><span class="cx">     Vector&lt;WebCore::CompositionUnderline&gt; underlines;
</span><span class="cx">     underlines.append(WebCore::CompositionUnderline(0, compositionString.length(), WebCore::Color(0, 0, 0), false));
</span><del>-    editor-&gt;setComposition(compositionString, underlines, start, start + length);
</del><ins>+    editor.setComposition(compositionString, underlines, start, start + length);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool DumpRenderTreeSupportEfl::hasComposition(const Evas_Object* ewkView)
</span><span class="lines">@@ -567,11 +567,7 @@
</span><span class="cx">     if (!page-&gt;focusController() || !page-&gt;focusController()-&gt;focusedOrMainFrame())
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    const WebCore::Editor* editor = page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor();
-    if (!editor)
-        return false;
-
-    return editor-&gt;hasComposition();
</del><ins>+    return page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor().hasComposition();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool DumpRenderTreeSupportEfl::compositionRange(Evas_Object* ewkView, int* start, int* length)
</span><span class="lines">@@ -583,12 +579,12 @@
</span><span class="cx">     if (!page-&gt;focusController() || !page-&gt;focusController()-&gt;focusedOrMainFrame())
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    WebCore::Editor* editor = page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor();
-    if (!editor || !editor-&gt;hasComposition())
</del><ins>+    WebCore::Editor&amp; editor = page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor();
+    if (!editor.hasComposition())
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    *start = editor-&gt;compositionStart();
-    *length = editor-&gt;compositionEnd() - *start;
</del><ins>+    *start = editor.compositionStart();
+    *length = editor.compositionEnd() - *start;
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -599,40 +595,37 @@
</span><span class="cx">     if (!page-&gt;focusController() || !page-&gt;focusController()-&gt;focusedOrMainFrame())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    WebCore::Editor* editor = page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor();
-    if (!editor)
-        return;
</del><ins>+    WebCore::Editor&amp; editor = page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor();
</ins><span class="cx"> 
</span><del>-    if (!editor-&gt;hasComposition()) {
-        editor-&gt;insertText(String::fromUTF8(text), 0);
</del><ins>+    if (!editor.hasComposition()) {
+        editor.insertText(String::fromUTF8(text), 0);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (text) {
</span><del>-        editor-&gt;confirmComposition(String::fromUTF8(text));
</del><ins>+        editor.confirmComposition(String::fromUTF8(text));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    editor-&gt;confirmComposition();
</del><ins>+    editor.confirmComposition();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> WebCore::IntRect DumpRenderTreeSupportEfl::firstRectForCharacterRange(Evas_Object* ewkView, int location, int length)
</span><span class="cx"> {
</span><span class="cx">     DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page, WebCore::IntRect());
</span><span class="cx"> 
</span><del>-    if (!page-&gt;focusController() || !page-&gt;focusController()-&gt;focusedOrMainFrame() || !page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor())
</del><ins>+    if (!page-&gt;focusController() || !page-&gt;focusController()-&gt;focusedOrMainFrame())
</ins><span class="cx">         return WebCore::IntRect();
</span><span class="cx"> 
</span><span class="cx">     if ((location + length &lt; location) &amp;&amp; (location + length))
</span><span class="cx">         length = 0;
</span><span class="cx"> 
</span><span class="cx">     WebCore::Frame* frame = page-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    WebCore::Editor* editor = frame-&gt;editor();
</del><span class="cx"> 
</span><span class="cx">     RefPtr&lt;WebCore::Range&gt; range = WebCore::TextIterator::rangeFromLocationAndLength(frame-&gt;selection()-&gt;rootEditableElementOrDocumentElement(), location, length);
</span><span class="cx">     if (!range)
</span><span class="cx">         return WebCore::IntRect();
</span><span class="cx"> 
</span><del>-    return editor-&gt;firstRectForRange(range.get());
</del><ins>+    return frame-&gt;editor().firstRectForRange(range.get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool DumpRenderTreeSupportEfl::selectedRange(Evas_Object* ewkView, int* start, int* length)
</span></span></pre></div>
<a id="trunkSourceWebKiteflWebCoreSupportEditorClientEflcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/efl/WebCoreSupport/EditorClientEfl.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/efl/WebCoreSupport/EditorClientEfl.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/efl/WebCoreSupport/EditorClientEfl.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -142,13 +142,13 @@
</span><span class="cx">     if (!coreFrame)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (coreFrame-&gt;editor() &amp;&amp; coreFrame-&gt;editor()-&gt;ignoreCompositionSelectionChange())
</del><ins>+    if (coreFrame-&gt;editor().ignoreCompositionSelectionChange())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     Evas_Object* webFrame = EWKPrivate::kitFrame(coreFrame);
</span><span class="cx">     ewk_frame_editor_client_selection_changed(webFrame);
</span><span class="cx"> 
</span><del>-    coreFrame-&gt;editor()-&gt;cancelCompositionIfSelectionIsInvalid();
</del><ins>+    coreFrame-&gt;editor().cancelCompositionIfSelectionIsInvalid();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void EditorClientEfl::didEndEditing()
</span><span class="lines">@@ -324,7 +324,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Editor::Command command = frame-&gt;editor()-&gt;command(interpretKeyEvent(event));
</del><ins>+    Editor::Command command = frame-&gt;editor().command(interpretKeyEvent(event));
</ins><span class="cx"> 
</span><span class="cx">     if (keyEvent-&gt;type() == PlatformEvent::RawKeyDown) {
</span><span class="cx">         // WebKit doesn't have enough information about mode to decide how commands that just insert text if executed via Editor should be treated,
</span><span class="lines">@@ -337,7 +337,7 @@
</span><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     // Don't allow text insertion for nodes that cannot edit.
</span><del>-    if (!frame-&gt;editor()-&gt;canEdit())
</del><ins>+    if (!frame-&gt;editor().canEdit())
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     // Don't insert null or control characters as they can result in unexpected behaviour
</span><span class="lines">@@ -348,7 +348,7 @@
</span><span class="cx">     if (keyEvent-&gt;ctrlKey() || keyEvent-&gt;altKey())
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    return frame-&gt;editor()-&gt;insertText(event-&gt;keyEvent()-&gt;text(), event);
</del><ins>+    return frame-&gt;editor().insertText(event-&gt;keyEvent()-&gt;text(), event);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void EditorClientEfl::handleKeyboardEvent(KeyboardEvent* event)
</span></span></pre></div>
<a id="trunkSourceWebKiteflewkewk_framecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/efl/ewk/ewk_frame.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/efl/ewk/ewk_frame.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/efl/ewk/ewk_frame.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -480,7 +480,7 @@
</span><span class="cx">         return true;
</span><span class="cx">     smartData-&gt;editable = editable;
</span><span class="cx">     if (editable)
</span><del>-        smartData-&gt;frame-&gt;editor()-&gt;applyEditingStyleToBodyElement();
</del><ins>+        smartData-&gt;frame-&gt;editor().applyEditingStyleToBodyElement();
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -488,7 +488,7 @@
</span><span class="cx"> {
</span><span class="cx">     EWK_FRAME_SD_GET_OR_RETURN(ewkFrame, smartData, 0);
</span><span class="cx">     EINA_SAFETY_ON_NULL_RETURN_VAL(smartData-&gt;frame, 0);
</span><del>-    WTF::CString selectedText = smartData-&gt;frame-&gt;editor()-&gt;selectedText().utf8();
</del><ins>+    WTF::CString selectedText = smartData-&gt;frame-&gt;editor().selectedText().utf8();
</ins><span class="cx">     if (selectedText.isNull())
</span><span class="cx">         return 0;
</span><span class="cx">     return eina_stringshare_add(selectedText.data());
</span><span class="lines">@@ -500,7 +500,7 @@
</span><span class="cx">     EINA_SAFETY_ON_NULL_RETURN_VAL(smartData-&gt;frame, false);
</span><span class="cx">     EINA_SAFETY_ON_NULL_RETURN_VAL(text, false);
</span><span class="cx"> 
</span><del>-    return smartData-&gt;frame-&gt;editor()-&gt;findString(WTF::String::fromUTF8(text), forward, caseSensitive, wrap, true);
</del><ins>+    return smartData-&gt;frame-&gt;editor().findString(WTF::String::fromUTF8(text), forward, caseSensitive, wrap, true);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> unsigned int ewk_frame_text_matches_mark(Evas_Object* ewkFrame, const char* string, Eina_Bool caseSensitive, Eina_Bool highlight, unsigned int limit)
</span><span class="lines">@@ -509,8 +509,8 @@
</span><span class="cx">     EINA_SAFETY_ON_NULL_RETURN_VAL(smartData-&gt;frame, 0);
</span><span class="cx">     EINA_SAFETY_ON_NULL_RETURN_VAL(string, 0);
</span><span class="cx"> 
</span><del>-    smartData-&gt;frame-&gt;editor()-&gt;setMarkedTextMatchesAreHighlighted(highlight);
-    return smartData-&gt;frame-&gt;editor()-&gt;countMatchesForText(WTF::String::fromUTF8(string), 0, caseSensitive, limit, true, 0);
</del><ins>+    smartData-&gt;frame-&gt;editor().setMarkedTextMatchesAreHighlighted(highlight);
+    return smartData-&gt;frame-&gt;editor().countMatchesForText(WTF::String::fromUTF8(string), 0, caseSensitive, limit, true, 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Eina_Bool ewk_frame_text_matches_unmark_all(Evas_Object* ewkFrame)
</span><span class="lines">@@ -526,7 +526,7 @@
</span><span class="cx"> {
</span><span class="cx">     EWK_FRAME_SD_GET_OR_RETURN(ewkFrame, smartData, false);
</span><span class="cx">     EINA_SAFETY_ON_NULL_RETURN_VAL(smartData-&gt;frame, false);
</span><del>-    smartData-&gt;frame-&gt;editor()-&gt;setMarkedTextMatchesAreHighlighted(highlight);
</del><ins>+    smartData-&gt;frame-&gt;editor().setMarkedTextMatchesAreHighlighted(highlight);
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -534,7 +534,7 @@
</span><span class="cx"> {
</span><span class="cx">     EWK_FRAME_SD_GET_OR_RETURN(ewkFrame, smartData, false);
</span><span class="cx">     EINA_SAFETY_ON_NULL_RETURN_VAL(smartData-&gt;frame, false);
</span><del>-    return smartData-&gt;frame-&gt;editor()-&gt;markedTextMatchesAreHighlighted();
</del><ins>+    return smartData-&gt;frame-&gt;editor().markedTextMatchesAreHighlighted();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> /**
</span></span></pre></div>
<a id="trunkSourceWebKiteflewkewk_viewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/efl/ewk/ewk_view.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/efl/ewk/ewk_view.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/efl/ewk/ewk_view.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -1668,7 +1668,7 @@
</span><span class="cx"> {
</span><span class="cx">     EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, 0);
</span><span class="cx">     EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, 0);
</span><del>-    CString selectedString = priv-&gt;page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor()-&gt;selectedText().utf8();
</del><ins>+    CString selectedString = priv-&gt;page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor().selectedText().utf8();
</ins><span class="cx">     if (selectedString.isNull())
</span><span class="cx">         return 0;
</span><span class="cx">     return eina_stringshare_add(selectedString.data());
</span><span class="lines">@@ -1683,7 +1683,7 @@
</span><span class="cx">     if (!commandString)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    return priv-&gt;page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor()-&gt;command(commandString).execute(WTF::String::fromUTF8(value));
</del><ins>+    return priv-&gt;page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor().command(commandString).execute(WTF::String::fromUTF8(value));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Eina_Bool ewk_view_context_menu_forward_event(Evas_Object* ewkView, const Evas_Event_Mouse_Down* downEvent)
</span><span class="lines">@@ -4102,11 +4102,11 @@
</span><span class="cx">     if (!focusedFrame)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    WebCore::Editor* editor = focusedFrame-&gt;editor();
-    if (!editor-&gt;canEdit())
</del><ins>+    WebCore::Editor&amp; editor = focusedFrame-&gt;editor();
+    if (!editor.canEdit())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    editor-&gt;setBaseWritingDirection(static_cast&lt;WritingDirection&gt;(direction));
</del><ins>+    editor.setBaseWritingDirection(static_cast&lt;WritingDirection&gt;(direction));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ewk_view_did_first_visually_nonempty_layout(Evas_Object* ewkView)
</span></span></pre></div>
<a id="trunkSourceWebKitgtkChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/gtk/ChangeLog (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/gtk/ChangeLog        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/gtk/ChangeLog        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -1,3 +1,45 @@
</span><ins>+2013-05-13  Anders Carlsson  &lt;andersca@apple.com&gt;
+
+        Frame::editor() should return a reference
+        https://bugs.webkit.org/show_bug.cgi?id=116037
+
+        Reviewed by Darin Adler.
+
+        * WebCoreSupport/ChromeClientGtk.cpp:
+        (WebKit::ChromeClient::paint):
+        * WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
+        (DumpRenderTreeSupportGtk::executeCoreCommandByName):
+        (DumpRenderTreeSupportGtk::isCommandEnabled):
+        * WebCoreSupport/EditorClientGtk.cpp:
+        (WebKit::EditorClient::respondToChangedSelection):
+        (WebKit::EditorClient::executePendingEditorCommands):
+        (WebKit::EditorClient::handleKeyboardEvent):
+        * WebCoreSupport/WebViewInputMethodFilter.cpp:
+        (WebKit::WebViewInputMethodFilter::canEdit):
+        (WebKit::WebViewInputMethodFilter::confirmCompositionText):
+        (WebKit::WebViewInputMethodFilter::confirmCurrentComposition):
+        (WebKit::WebViewInputMethodFilter::cancelCurrentComposition):
+        (WebKit::WebViewInputMethodFilter::setPreedit):
+        * webkit/webkitwebframe.cpp:
+        (webkit_web_frame_replace_selection):
+        * webkit/webkitwebview.cpp:
+        (getLocationForKeyboardGeneratedContextMenu):
+        (webkit_web_view_focus_in_event):
+        (webkit_web_view_real_select_all):
+        (webkit_web_view_real_cut_clipboard):
+        (webkit_web_view_real_copy_clipboard):
+        (webkit_web_view_real_undo):
+        (webkit_web_view_real_redo):
+        (webkit_web_view_real_paste_clipboard):
+        (webkit_web_view_set_highlight_text_matches):
+        (webkit_web_view_can_cut_clipboard):
+        (webkit_web_view_can_copy_clipboard):
+        (webkit_web_view_can_paste_clipboard):
+        (webkit_web_view_delete_selection):
+        (webkit_web_view_set_editable):
+        (webkit_web_view_can_undo):
+        (webkit_web_view_can_redo):
+
</ins><span class="cx"> 2013-05-14  Zan Dobersek  &lt;zdobersek@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [GTK] Move generated ColorData.cpp, WebKitFontFamilyNames.(cpp|h) build targets into libPlatform
</span></span></pre></div>
<a id="trunkSourceWebKitgtkWebCoreSupportChromeClientGtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -599,7 +599,7 @@
</span><span class="cx">     // synced with cursor movement. For instance, a text field can move without
</span><span class="cx">     // the selection changing.
</span><span class="cx">     Frame* focusedFrame = core(m_webView)-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    if (focusedFrame &amp;&amp; focusedFrame-&gt;editor()-&gt;canEdit())
</del><ins>+    if (focusedFrame &amp;&amp; focusedFrame-&gt;editor().canEdit())
</ins><span class="cx">         m_webView-&gt;priv-&gt;imFilter.setCursorRect(frame-&gt;selection()-&gt;absoluteCaretBounds());
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitgtkWebCoreSupportDumpRenderTreeSupportGtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -276,7 +276,7 @@
</span><span class="cx">     g_return_if_fail(name);
</span><span class="cx">     g_return_if_fail(value);
</span><span class="cx"> 
</span><del>-    core(webView)-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor()-&gt;command(name).execute(value);
</del><ins>+    core(webView)-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor().command(name).execute(value);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool DumpRenderTreeSupportGtk::isCommandEnabled(WebKitWebView* webView, const gchar* name)
</span><span class="lines">@@ -284,7 +284,7 @@
</span><span class="cx">     g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE);
</span><span class="cx">     g_return_val_if_fail(name, FALSE);
</span><span class="cx"> 
</span><del>-    return core(webView)-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor()-&gt;command(name).isEnabled();
</del><ins>+    return core(webView)-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor().command(name).isEnabled();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DumpRenderTreeSupportGtk::setComposition(WebKitWebView* webView, const char* text, int start, int length)
</span><span class="lines">@@ -296,14 +296,14 @@
</span><span class="cx">     if (!frame)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    Editor* editor = frame-&gt;editor();
-    if (!editor || (!editor-&gt;canEdit() &amp;&amp; !editor-&gt;hasComposition()))
</del><ins>+    Editor&amp; editor = frame-&gt;editor();
+    if (!editor.canEdit() &amp;&amp; !editor.hasComposition())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     String compositionString = String::fromUTF8(text);
</span><span class="cx">     Vector&lt;CompositionUnderline&gt; underlines;
</span><span class="cx">     underlines.append(CompositionUnderline(0, compositionString.length(), Color(0, 0, 0), false));
</span><del>-    editor-&gt;setComposition(compositionString, underlines, start, start + length);
</del><ins>+    editor.setComposition(compositionString, underlines, start, start + length);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool DumpRenderTreeSupportGtk::hasComposition(WebKitWebView* webView)
</span><span class="lines">@@ -312,11 +312,8 @@
</span><span class="cx">     Frame* frame = core(webView)-&gt;focusController()-&gt;focusedOrMainFrame();
</span><span class="cx">     if (!frame)
</span><span class="cx">         return false;
</span><del>-    Editor* editor = frame-&gt;editor();
-    if (!editor)
-        return false;
</del><span class="cx"> 
</span><del>-    return editor-&gt;hasComposition();
</del><ins>+    return frame-&gt;editor().hasComposition();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool DumpRenderTreeSupportGtk::compositionRange(WebKitWebView* webView, int* start, int* length)
</span><span class="lines">@@ -329,12 +326,12 @@
</span><span class="cx">     if (!frame)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    Editor* editor = frame-&gt;editor();
-    if (!editor || !editor-&gt;hasComposition())
</del><ins>+    Editor&amp; editor = frame-&gt;editor();
+    if (!editor.hasComposition())
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    *start = editor-&gt;compositionStart();
-    *length = editor-&gt;compositionEnd() - *start;
</del><ins>+    *start = editor.compositionStart();
+    *length = editor.compositionEnd() - *start;
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -346,19 +343,17 @@
</span><span class="cx">     if (!frame)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    Editor* editor = frame-&gt;editor();
-    if (!editor)
-        return;
</del><ins>+    Editor&amp; editor = frame-&gt;editor();
</ins><span class="cx"> 
</span><del>-    if (!editor-&gt;hasComposition()) {
-        editor-&gt;insertText(String::fromUTF8(text), 0);
</del><ins>+    if (!editor.hasComposition()) {
+        editor.insertText(String::fromUTF8(text), 0);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     if (text) {
</span><del>-        editor-&gt;confirmComposition(String::fromUTF8(text));
</del><ins>+        editor.confirmComposition(String::fromUTF8(text));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    editor-&gt;confirmComposition();
</del><ins>+    editor.confirmComposition();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DumpRenderTreeSupportGtk::doCommand(WebKitWebView* webView, const char* command)
</span><span class="lines">@@ -368,9 +363,7 @@
</span><span class="cx">     if (!frame)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    Editor* editor = frame-&gt;editor();
-    if (!editor)
-        return;
</del><ins>+    Editor&amp; editor = frame-&gt;editor();
</ins><span class="cx"> 
</span><span class="cx">     String commandString(command);
</span><span class="cx">     // Remove ending : here.
</span><span class="lines">@@ -383,7 +376,7 @@
</span><span class="cx">     firstChar.makeUpper();
</span><span class="cx">     commandString.insert(firstChar, 0);
</span><span class="cx"> 
</span><del>-    editor-&gt;command(commandString).execute();
</del><ins>+    editor.command(commandString).execute();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool DumpRenderTreeSupportGtk::firstRectForCharacterRange(WebKitWebView* webView, int location, int length, cairo_rectangle_int_t* rect)
</span><span class="lines">@@ -398,15 +391,13 @@
</span><span class="cx">     if (!frame)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    Editor* editor = frame-&gt;editor();
-    if (!editor)
-        return false;
</del><ins>+    Editor&amp; editor = frame-&gt;editor();
</ins><span class="cx"> 
</span><span class="cx">     RefPtr&lt;Range&gt; range = TextIterator::rangeFromLocationAndLength(frame-&gt;selection()-&gt;rootEditableElementOrDocumentElement(), location, length);
</span><span class="cx">     if (!range)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    *rect = editor-&gt;firstRectForRange(range.get());
</del><ins>+    *rect = editor.firstRectForRange(range.get());
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitgtkWebCoreSupportEditorClientGtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -255,7 +255,7 @@
</span><span class="cx">     setSelectionPrimaryClipboardIfNeeded(m_webView);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    if (frame-&gt;editor()-&gt;cancelCompositionIfSelectionIsInvalid())
</del><ins>+    if (frame-&gt;editor().cancelCompositionIfSelectionIsInvalid())
</ins><span class="cx">         m_webView-&gt;priv-&gt;imFilter.resetContext();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -394,7 +394,7 @@
</span><span class="cx"> {
</span><span class="cx">     Vector&lt;Editor::Command&gt; commands;
</span><span class="cx">     for (size_t i = 0; i &lt; m_pendingEditorCommands.size(); i++) {
</span><del>-        Editor::Command command = frame-&gt;editor()-&gt;command(m_pendingEditorCommands.at(i).utf8().data());
</del><ins>+        Editor::Command command = frame-&gt;editor().command(m_pendingEditorCommands.at(i).utf8().data());
</ins><span class="cx">         if (command.isTextInsertion() &amp;&amp; !allowTextInsertion)
</span><span class="cx">             return false;
</span><span class="cx"> 
</span><span class="lines">@@ -455,7 +455,7 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         // Only allow text insertion commands if the current node is editable.
</span><del>-        if (executePendingEditorCommands(frame, frame-&gt;editor()-&gt;canEdit())) {
</del><ins>+        if (executePendingEditorCommands(frame, frame-&gt;editor().canEdit())) {
</ins><span class="cx">             event-&gt;setDefaultHandled();
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="lines">@@ -463,7 +463,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // Don't allow text insertion for nodes that cannot edit.
</span><del>-    if (!frame-&gt;editor()-&gt;canEdit())
</del><ins>+    if (!frame-&gt;editor().canEdit())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // This is just a normal text insertion, so wait to execute the insertion
</span><span class="lines">@@ -480,7 +480,7 @@
</span><span class="cx">     if (platformEvent-&gt;ctrlKey() || platformEvent-&gt;altKey())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (frame-&gt;editor()-&gt;insertText(platformEvent-&gt;text(), event))
</del><ins>+    if (frame-&gt;editor().insertText(platformEvent-&gt;text(), event))
</ins><span class="cx">         event-&gt;setDefaultHandled();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitgtkWebCoreSupportWebViewInputMethodFiltercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/gtk/WebCoreSupport/WebViewInputMethodFilter.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/gtk/WebCoreSupport/WebViewInputMethodFilter.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/gtk/WebCoreSupport/WebViewInputMethodFilter.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx"> bool WebViewInputMethodFilter::canEdit()
</span><span class="cx"> {
</span><span class="cx">     Frame* frame = focusedOrMainFrame();
</span><del>-    return frame &amp;&amp; frame-&gt;editor()-&gt;canEdit();
</del><ins>+    return frame &amp;&amp; frame-&gt;editor().canEdit();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool WebViewInputMethodFilter::sendSimpleKeyEvent(GdkEventKey* event, WTF::String simpleString, EventFakedForComposition)
</span><span class="lines">@@ -76,42 +76,42 @@
</span><span class="cx"> void WebViewInputMethodFilter::confirmCompositionText(String text)
</span><span class="cx"> {
</span><span class="cx">     Frame* frame = focusedOrMainFrame();
</span><del>-    if (!frame || !frame-&gt;editor()-&gt;canEdit())
</del><ins>+    if (!frame || !frame-&gt;editor().canEdit())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (text.isNull()) {
</span><span class="cx">         confirmCurrentComposition();
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    frame-&gt;editor()-&gt;confirmComposition(m_confirmedComposition);
</del><ins>+    frame-&gt;editor().confirmComposition(m_confirmedComposition);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebViewInputMethodFilter::confirmCurrentComposition()
</span><span class="cx"> {
</span><span class="cx">     Frame* frame = focusedOrMainFrame();
</span><del>-    if (!frame || !frame-&gt;editor()-&gt;canEdit())
</del><ins>+    if (!frame || !frame-&gt;editor().canEdit())
</ins><span class="cx">         return;
</span><del>-    frame-&gt;editor()-&gt;confirmComposition();
</del><ins>+    frame-&gt;editor().confirmComposition();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebViewInputMethodFilter::cancelCurrentComposition()
</span><span class="cx"> {
</span><span class="cx">     Frame* frame = focusedOrMainFrame();
</span><del>-    if (!frame || !frame-&gt;editor()-&gt;canEdit())
</del><ins>+    if (!frame || !frame-&gt;editor().canEdit())
</ins><span class="cx">         return;
</span><del>-    frame-&gt;editor()-&gt;cancelComposition();
</del><ins>+    frame-&gt;editor().cancelComposition();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebViewInputMethodFilter::setPreedit(String newPreedit, int cursorOffset)
</span><span class="cx"> {
</span><span class="cx">     Frame* frame = focusedOrMainFrame();
</span><del>-    if (!frame || !frame-&gt;editor()-&gt;canEdit())
</del><ins>+    if (!frame || !frame-&gt;editor().canEdit())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // TODO: We should parse the PangoAttrList that we get from the IM context here.
</span><span class="cx">     Vector&lt;CompositionUnderline&gt; underlines;
</span><span class="cx">     underlines.append(CompositionUnderline(0, newPreedit.length(), Color(1, 1, 1), false));
</span><del>-    frame-&gt;editor()-&gt;setComposition(newPreedit, underlines, m_cursorOffset, m_cursorOffset);
</del><ins>+    frame-&gt;editor().setComposition(newPreedit, underlines, m_cursorOffset, m_cursorOffset);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKitgtkwebkitwebkitwebframecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/gtk/webkit/webkitwebframe.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/gtk/webkit/webkitwebframe.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/gtk/webkit/webkitwebframe.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -1134,7 +1134,7 @@
</span><span class="cx">     Frame* coreFrame = core(frame);
</span><span class="cx">     bool selectReplacement = false;
</span><span class="cx">     bool smartReplace = true;
</span><del>-    coreFrame-&gt;editor()-&gt;replaceSelectionWithText(text, selectReplacement, smartReplace);
</del><ins>+    coreFrame-&gt;editor().replaceSelectionWithText(text, selectReplacement, smartReplace);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> /**
</span></span></pre></div>
<a id="trunkSourceWebKitgtkwebkitwebkitwebviewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/gtk/webkit/webkitwebview.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/gtk/webkit/webkitwebview.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/gtk/webkit/webkitwebview.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -442,7 +442,7 @@
</span><span class="cx">     // selection-&gt;selection().firstRange can return 0 here, but if that was the case
</span><span class="cx">     // selection-&gt;selection().isNonOrphanedCaretOrRange() would have returned false
</span><span class="cx">     // above, so we do not have to check it.
</span><del>-    IntRect firstRect = frame-&gt;editor()-&gt;firstRectForRange(selection-&gt;selection().firstRange().get());
</del><ins>+    IntRect firstRect = frame-&gt;editor().firstRectForRange(selection-&gt;selection().firstRange().get());
</ins><span class="cx">     return IntPoint(firstRect.x(), firstRect.maxY());
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -938,7 +938,7 @@
</span><span class="cx">     else
</span><span class="cx">         focusController-&gt;setFocusedFrame(core(webView)-&gt;mainFrame());
</span><span class="cx"> 
</span><del>-    if (focusController-&gt;focusedFrame()-&gt;editor()-&gt;canEdit())
</del><ins>+    if (focusController-&gt;focusedFrame()-&gt;editor().canEdit())
</ins><span class="cx">         webView-&gt;priv-&gt;imFilter.notifyFocusedIn();
</span><span class="cx">     return GTK_WIDGET_CLASS(webkit_web_view_parent_class)-&gt;focus_in_event(widget, event);
</span><span class="cx"> }
</span><span class="lines">@@ -1181,31 +1181,31 @@
</span><span class="cx"> static void webkit_web_view_real_select_all(WebKitWebView* webView)
</span><span class="cx"> {
</span><span class="cx">     Frame* frame = core(webView)-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    frame-&gt;editor()-&gt;command(&quot;SelectAll&quot;).execute();
</del><ins>+    frame-&gt;editor().command(&quot;SelectAll&quot;).execute();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static void webkit_web_view_real_cut_clipboard(WebKitWebView* webView)
</span><span class="cx"> {
</span><span class="cx">     Frame* frame = core(webView)-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    frame-&gt;editor()-&gt;command(&quot;Cut&quot;).execute();
</del><ins>+    frame-&gt;editor().command(&quot;Cut&quot;).execute();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static void webkit_web_view_real_copy_clipboard(WebKitWebView* webView)
</span><span class="cx"> {
</span><span class="cx">     Frame* frame = core(webView)-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    frame-&gt;editor()-&gt;command(&quot;Copy&quot;).execute();
</del><ins>+    frame-&gt;editor().command(&quot;Copy&quot;).execute();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static void webkit_web_view_real_undo(WebKitWebView* webView)
</span><span class="cx"> {
</span><span class="cx">     Frame* frame = core(webView)-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    frame-&gt;editor()-&gt;command(&quot;Undo&quot;).execute();
</del><ins>+    frame-&gt;editor().command(&quot;Undo&quot;).execute();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static void webkit_web_view_real_redo(WebKitWebView* webView)
</span><span class="cx"> {
</span><span class="cx">     Frame* frame = core(webView)-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    frame-&gt;editor()-&gt;command(&quot;Redo&quot;).execute();
</del><ins>+    frame-&gt;editor().command(&quot;Redo&quot;).execute();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static gboolean webkit_web_view_real_move_cursor (WebKitWebView* webView, GtkMovementStep step, gint count)
</span><span class="lines">@@ -1264,7 +1264,7 @@
</span><span class="cx"> static void webkit_web_view_real_paste_clipboard(WebKitWebView* webView)
</span><span class="cx"> {
</span><span class="cx">     Frame* frame = core(webView)-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    frame-&gt;editor()-&gt;command(&quot;Paste&quot;).execute();
</del><ins>+    frame-&gt;editor().command(&quot;Paste&quot;).execute();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static gboolean webkit_web_view_real_should_allow_editing_action(WebKitWebView*)
</span><span class="lines">@@ -4389,7 +4389,7 @@
</span><span class="cx"> 
</span><span class="cx">     Frame *frame = core(webView)-&gt;mainFrame();
</span><span class="cx">     do {
</span><del>-        frame-&gt;editor()-&gt;setMarkedTextMatchesAreHighlighted(shouldHighlight);
</del><ins>+        frame-&gt;editor().setMarkedTextMatchesAreHighlighted(shouldHighlight);
</ins><span class="cx">         frame = frame-&gt;tree()-&gt;traverseNextWithWrap(false);
</span><span class="cx">     } while (frame);
</span><span class="cx"> }
</span><span class="lines">@@ -4459,7 +4459,7 @@
</span><span class="cx">     g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE);
</span><span class="cx"> 
</span><span class="cx">     Frame* frame = core(webView)-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    return frame-&gt;editor()-&gt;canCut() || frame-&gt;editor()-&gt;canDHTMLCut();
</del><ins>+    return frame-&gt;editor().canCut() || frame-&gt;editor().canDHTMLCut();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> /**
</span><span class="lines">@@ -4475,7 +4475,7 @@
</span><span class="cx">     g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE);
</span><span class="cx"> 
</span><span class="cx">     Frame* frame = core(webView)-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    return frame-&gt;editor()-&gt;canCopy() || frame-&gt;editor()-&gt;canDHTMLCopy();
</del><ins>+    return frame-&gt;editor().canCopy() || frame-&gt;editor().canDHTMLCopy();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> /**
</span><span class="lines">@@ -4491,7 +4491,7 @@
</span><span class="cx">     g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE);
</span><span class="cx"> 
</span><span class="cx">     Frame* frame = core(webView)-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    return frame-&gt;editor()-&gt;canPaste() || frame-&gt;editor()-&gt;canDHTMLPaste();
</del><ins>+    return frame-&gt;editor().canPaste() || frame-&gt;editor().canDHTMLPaste();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> /**
</span><span class="lines">@@ -4547,7 +4547,7 @@
</span><span class="cx">     g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView));
</span><span class="cx"> 
</span><span class="cx">     Frame* frame = core(webView)-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    frame-&gt;editor()-&gt;performDelete();
</del><ins>+    frame-&gt;editor().performDelete();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> /**
</span><span class="lines">@@ -4629,7 +4629,7 @@
</span><span class="cx">     g_return_if_fail(frame);
</span><span class="cx"> 
</span><span class="cx">     if (flag) {
</span><del>-        frame-&gt;editor()-&gt;applyEditingStyleToBodyElement();
</del><ins>+        frame-&gt;editor().applyEditingStyleToBodyElement();
</ins><span class="cx">         // TODO: If the WebKitWebView is made editable and the selection is empty, set it to something.
</span><span class="cx">         //if (!webkit_web_view_get_selected_dom_range(webView))
</span><span class="cx">         //    mainFrame-&gt;setSelectionFromNone();
</span><span class="lines">@@ -5090,7 +5090,7 @@
</span><span class="cx">     g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE);
</span><span class="cx"> 
</span><span class="cx">     Frame* frame = core(webView)-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    return frame-&gt;editor()-&gt;canUndo();
</del><ins>+    return frame-&gt;editor().canUndo();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> /**
</span><span class="lines">@@ -5125,7 +5125,7 @@
</span><span class="cx">     g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE);
</span><span class="cx"> 
</span><span class="cx">     Frame* frame = core(webView)-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    return frame-&gt;editor()-&gt;canRedo();
</del><ins>+    return frame-&gt;editor().canRedo();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> /**
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/mac/ChangeLog        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -1,3 +1,66 @@
</span><ins>+2013-05-13  Anders Carlsson  &lt;andersca@apple.com&gt;
+
+        Frame::editor() should return a reference
+        https://bugs.webkit.org/show_bug.cgi?id=116037
+
+        Reviewed by Darin Adler.
+
+        * WebView/WebFrame.mm:
+        (-[WebFrame _selectedString]):
+        (-[WebFrame _firstRectForDOMRange:]):
+        (-[WebFrame _markDOMRange]):
+        (-[WebFrame _insertParagraphSeparatorInQuotedContent]):
+        (-[WebFrame _setTypingStyle:withUndoAction:]):
+        (-[WebFrame _replaceSelectionWithFragment:selectReplacement:smartReplace:matchStyle:]):
+        * WebView/WebHTMLRepresentation.mm:
+        (-[WebHTMLRepresentation finishedLoadingWithDataSource:]):
+        * WebView/WebHTMLView.mm:
+        (-[WebHTMLView _pasteWithPasteboard:allowPlainText:]):
+        (-[WebHTMLView _shouldDeleteRange:]):
+        (-[WebHTMLView _canEdit]):
+        (-[WebHTMLView _canEditRichly]):
+        (-[WebHTMLView _insertOrderedList]):
+        (-[WebHTMLView _insertUnorderedList]):
+        (-[WebHTMLView _canIncreaseSelectionListLevel]):
+        (-[WebHTMLView _canDecreaseSelectionListLevel]):
+        (-[WebHTMLView _increaseSelectionListLevel]):
+        (-[WebHTMLView _increaseSelectionListLevelOrdered]):
+        (-[WebHTMLView _increaseSelectionListLevelUnordered]):
+        (-[WebHTMLView _decreaseSelectionListLevel]):
+        (-[WebHTMLView Editor::coreCommandBySelector:]):
+        (-[WebHTMLView Editor::coreCommandByName:]):
+        (-[WebHTMLView validateUserInterfaceItemWithoutDelegate:]):
+        (-[WebHTMLView becomeFirstResponder]):
+        (-[WebHTMLView _selectionStartFontAttributesAsRTF]):
+        (-[WebHTMLView _applyStyleToSelection:withUndoAction:]):
+        (-[WebHTMLView _changeCSSColorUsingSelector:inRange:]):
+        (-[WebHTMLView checkSpelling:]):
+        (-[WebHTMLView showGuessPanel:]):
+        (-[WebHTMLView toggleBaseWritingDirection:]):
+        (-[WebHTMLView changeBaseWritingDirection:]):
+        (-[WebHTMLView _changeBaseWritingDirectionTo:]):
+        (-[WebHTMLView _updateFontPanel]):
+        (-[WebHTMLView markedRange]):
+        (-[WebHTMLView hasMarkedText]):
+        (-[WebHTMLView unmarkText]):
+        (-[WebHTMLView setMarkedText:selectedRange:]):
+        (-[WebHTMLView doCommandBySelector:]):
+        (-[WebHTMLView insertText:]):
+        (-[WebHTMLView _updateSelectionForInputManager]):
+        (-[WebHTMLView countMatchesForText:inDOMRange:options:limit:markMatches:]):
+        (-[WebHTMLView setMarkedTextMatchesAreHighlighted:]):
+        (-[WebHTMLView markedTextMatchesAreHighlighted]):
+        (-[WebHTMLView _findString:options:]):
+        * WebView/WebView.mm:
+        (-[WebView _executeCoreCommandByName:value:]):
+        (-[WebView editableDOMRangeForPoint:]):
+        (-[WebView setEditable:]):
+        (-[WebView deleteSelection]):
+        (-[WebView applyStyle:]):
+        (-[WebView typingAttributes]):
+        (-[WebView _simplifyMarkup:endNode:]):
+        (-[WebView handleAcceptedAlternativeText:]):
+
</ins><span class="cx"> 2013-05-15  Darin Adler  &lt;darin@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Mac] Remove the ClipboardMac class and header file
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebFramemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebFrame.mm (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebFrame.mm        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/mac/WebView/WebFrame.mm        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -493,7 +493,7 @@
</span><span class="cx"> 
</span><span class="cx"> - (NSString *)_selectedString
</span><span class="cx"> {
</span><del>-    return _private-&gt;coreFrame-&gt;displayStringModifiedByEncoding(_private-&gt;coreFrame-&gt;editor()-&gt;selectedText());
</del><ins>+    return _private-&gt;coreFrame-&gt;displayStringModifiedByEncoding(_private-&gt;coreFrame-&gt;editor().selectedText());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (NSString *)_stringForRange:(DOMRange *)range
</span><span class="lines">@@ -602,7 +602,7 @@
</span><span class="cx"> 
</span><span class="cx"> - (NSRect)_firstRectForDOMRange:(DOMRange *)range
</span><span class="cx"> {
</span><del>-   return _private-&gt;coreFrame-&gt;editor()-&gt;firstRectForRange(core(range));
</del><ins>+   return _private-&gt;coreFrame-&gt;editor().firstRectForRange(core(range));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)_scrollDOMRangeToVisible:(DOMRange *)range
</span><span class="lines">@@ -676,7 +676,7 @@
</span><span class="cx"> 
</span><span class="cx"> - (DOMRange *)_markDOMRange
</span><span class="cx"> {
</span><del>-    return kit(_private-&gt;coreFrame-&gt;editor()-&gt;mark().toNormalizedRange().get());
</del><ins>+    return kit(_private-&gt;coreFrame-&gt;editor().mark().toNormalizedRange().get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // Given proposedRange, returns an extended range that includes adjacent whitespace that should
</span><span class="lines">@@ -746,7 +746,7 @@
</span><span class="cx">     if (_private-&gt;coreFrame-&gt;selection()-&gt;isNone())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    _private-&gt;coreFrame-&gt;editor()-&gt;insertParagraphSeparatorInQuotedContent();
</del><ins>+    _private-&gt;coreFrame-&gt;editor().insertParagraphSeparatorInQuotedContent();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (VisiblePosition)_visiblePositionForPoint:(NSPoint)point
</span><span class="lines">@@ -775,7 +775,7 @@
</span><span class="cx">     if (!_private-&gt;coreFrame || !style)
</span><span class="cx">         return;
</span><span class="cx">     // FIXME: We shouldn't have to create a copy here.
</span><del>-    _private-&gt;coreFrame-&gt;editor()-&gt;computeAndSetTypingStyle(core(style)-&gt;copyProperties().get(), undoAction);
</del><ins>+    _private-&gt;coreFrame-&gt;editor().computeAndSetTypingStyle(core(style)-&gt;copyProperties().get(), undoAction);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DRAG_SUPPORT)
</span><span class="lines">@@ -928,7 +928,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (_private-&gt;coreFrame-&gt;selection()-&gt;isNone() || !fragment)
</span><span class="cx">         return;
</span><del>-    _private-&gt;coreFrame-&gt;editor()-&gt;replaceSelectionWithFragment(core(fragment), selectReplacement, smartReplace, matchStyle);
</del><ins>+    _private-&gt;coreFrame-&gt;editor().replaceSelectionWithFragment(core(fragment), selectReplacement, smartReplace, matchStyle);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)_replaceSelectionWithText:(NSString *)text selectReplacement:(BOOL)selectReplacement smartReplace:(BOOL)smartReplace
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebHTMLRepresentationmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -220,7 +220,7 @@
</span><span class="cx">         return;
</span><span class="cx">     WebView *webView = [webFrame webView];
</span><span class="cx">     if ([webView mainFrame] == webFrame &amp;&amp; [webView isEditable])
</span><del>-        core(webFrame)-&gt;editor()-&gt;applyEditingStyleToBodyElement();
</del><ins>+        core(webFrame)-&gt;editor().applyEditingStyleToBodyElement();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (BOOL)canProvideDocumentSource
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebHTMLViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebHTMLView.mm (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebHTMLView.mm        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/mac/WebView/WebHTMLView.mm        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -864,7 +864,7 @@
</span><span class="cx"> #if __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1070
</span><span class="cx">     DOMDocumentFragment *fragment = [self _documentFragmentFromPasteboard:pasteboard inContext:range allowPlainText:allowPlainText];
</span><span class="cx">     if (fragment &amp;&amp; [self _shouldInsertFragment:fragment replacingDOMRange:range givenAction:WebViewInsertActionPasted])
</span><del>-        coreFrame-&gt;editor()-&gt;pasteAsFragment(core(fragment), [self _canSmartReplaceWithPasteboard:pasteboard], false);
</del><ins>+        coreFrame-&gt;editor().pasteAsFragment(core(fragment), [self _canSmartReplaceWithPasteboard:pasteboard], false);
</ins><span class="cx"> #else
</span><span class="cx">     // Mail is ignoring the frament passed to the delegate and creates a new one.
</span><span class="cx">     // We want to avoid creating the fragment twice.
</span><span class="lines">@@ -872,12 +872,12 @@
</span><span class="cx">         if ([self _shouldInsertFragment:nil replacingDOMRange:range givenAction:WebViewInsertActionPasted]) {
</span><span class="cx">             DOMDocumentFragment *fragment = [self _documentFragmentFromPasteboard:pasteboard inContext:range allowPlainText:allowPlainText];
</span><span class="cx">             if (fragment)
</span><del>-                coreFrame-&gt;editor()-&gt;pasteAsFragment(core(fragment), [self _canSmartReplaceWithPasteboard:pasteboard], false);
</del><ins>+                coreFrame-&gt;editor().pasteAsFragment(core(fragment), [self _canSmartReplaceWithPasteboard:pasteboard], false);
</ins><span class="cx">         }        
</span><span class="cx">     } else {
</span><span class="cx">         DOMDocumentFragment *fragment = [self _documentFragmentFromPasteboard:pasteboard inContext:range allowPlainText:allowPlainText];
</span><span class="cx">         if (fragment &amp;&amp; [self _shouldInsertFragment:fragment replacingDOMRange:range givenAction:WebViewInsertActionPasted])
</span><del>-            coreFrame-&gt;editor()-&gt;pasteAsFragment(core(fragment), [self _canSmartReplaceWithPasteboard:pasteboard], false);
</del><ins>+            coreFrame-&gt;editor().pasteAsFragment(core(fragment), [self _canSmartReplaceWithPasteboard:pasteboard], false);
</ins><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="cx">     [webView _setInsertionPasteboard:nil];
</span><span class="lines">@@ -983,7 +983,7 @@
</span><span class="cx"> - (BOOL)_shouldDeleteRange:(DOMRange *)range
</span><span class="cx"> {
</span><span class="cx">     Frame* coreFrame = core([self _frame]);
</span><del>-    return coreFrame &amp;&amp; coreFrame-&gt;editor()-&gt;shouldDeleteRange(core(range));
</del><ins>+    return coreFrame &amp;&amp; coreFrame-&gt;editor().shouldDeleteRange(core(range));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (NSView *)_hitViewForEvent:(NSEvent *)event
</span><span class="lines">@@ -1758,13 +1758,13 @@
</span><span class="cx"> - (BOOL)_canEdit
</span><span class="cx"> {
</span><span class="cx">     Frame* coreFrame = core([self _frame]);
</span><del>-    return coreFrame &amp;&amp; coreFrame-&gt;editor()-&gt;canEdit();
</del><ins>+    return coreFrame &amp;&amp; coreFrame-&gt;editor().canEdit();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (BOOL)_canEditRichly
</span><span class="cx"> {
</span><span class="cx">     Frame* coreFrame = core([self _frame]);
</span><del>-    return coreFrame &amp;&amp; coreFrame-&gt;editor()-&gt;canEditRichly();
</del><ins>+    return coreFrame &amp;&amp; coreFrame-&gt;editor().canEditRichly();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (BOOL)_canAlterCurrentSelection
</span><span class="lines">@@ -1824,50 +1824,50 @@
</span><span class="cx"> - (DOMNode *)_insertOrderedList
</span><span class="cx"> {
</span><span class="cx">     Frame* coreFrame = core([self _frame]);
</span><del>-    return coreFrame ? kit(coreFrame-&gt;editor()-&gt;insertOrderedList().get()) : nil;
</del><ins>+    return coreFrame ? kit(coreFrame-&gt;editor().insertOrderedList().get()) : nil;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (DOMNode *)_insertUnorderedList
</span><span class="cx"> {
</span><span class="cx">     Frame* coreFrame = core([self _frame]);
</span><del>-    return coreFrame ? kit(coreFrame-&gt;editor()-&gt;insertUnorderedList().get()) : nil;
</del><ins>+    return coreFrame ? kit(coreFrame-&gt;editor().insertUnorderedList().get()) : nil;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (BOOL)_canIncreaseSelectionListLevel
</span><span class="cx"> {
</span><span class="cx">     Frame* coreFrame = core([self _frame]);
</span><del>-    return coreFrame &amp;&amp; coreFrame-&gt;editor()-&gt;canIncreaseSelectionListLevel();
</del><ins>+    return coreFrame &amp;&amp; coreFrame-&gt;editor().canIncreaseSelectionListLevel();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (BOOL)_canDecreaseSelectionListLevel
</span><span class="cx"> {
</span><span class="cx">     Frame* coreFrame = core([self _frame]);
</span><del>-    return coreFrame &amp;&amp; coreFrame-&gt;editor()-&gt;canDecreaseSelectionListLevel();
</del><ins>+    return coreFrame &amp;&amp; coreFrame-&gt;editor().canDecreaseSelectionListLevel();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (DOMNode *)_increaseSelectionListLevel
</span><span class="cx"> {
</span><span class="cx">     Frame* coreFrame = core([self _frame]);
</span><del>-    return coreFrame ? kit(coreFrame-&gt;editor()-&gt;increaseSelectionListLevel().get()) : nil;
</del><ins>+    return coreFrame ? kit(coreFrame-&gt;editor().increaseSelectionListLevel().get()) : nil;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (DOMNode *)_increaseSelectionListLevelOrdered
</span><span class="cx"> {
</span><span class="cx">     Frame* coreFrame = core([self _frame]);
</span><del>-    return coreFrame ? kit(coreFrame-&gt;editor()-&gt;increaseSelectionListLevelOrdered().get()) : nil;
</del><ins>+    return coreFrame ? kit(coreFrame-&gt;editor().increaseSelectionListLevelOrdered().get()) : nil;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (DOMNode *)_increaseSelectionListLevelUnordered
</span><span class="cx"> {
</span><span class="cx">     Frame* coreFrame = core([self _frame]);
</span><del>-    return coreFrame ? kit(coreFrame-&gt;editor()-&gt;increaseSelectionListLevelUnordered().get()) : nil;
</del><ins>+    return coreFrame ? kit(coreFrame-&gt;editor().increaseSelectionListLevelUnordered().get()) : nil;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)_decreaseSelectionListLevel
</span><span class="cx"> {
</span><span class="cx">     Frame* coreFrame = core([self _frame]);
</span><span class="cx">     if (coreFrame)
</span><del>-        coreFrame-&gt;editor()-&gt;decreaseSelectionListLevel();
</del><ins>+        coreFrame-&gt;editor().decreaseSelectionListLevel();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)_setHighlighter:(id&lt;WebHTMLHighlighter&gt;)highlighter ofType:(NSString*)type
</span><span class="lines">@@ -2359,7 +2359,7 @@
</span><span class="cx">     Frame* coreFrame = core([self _frame]);
</span><span class="cx">     if (!coreFrame)
</span><span class="cx">         return Editor::Command();
</span><del>-    return coreFrame-&gt;editor()-&gt;command(commandNameForSelector(selector));
</del><ins>+    return coreFrame-&gt;editor().command(commandNameForSelector(selector));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (Editor::Command)coreCommandByName:(const char*)name
</span><span class="lines">@@ -2367,7 +2367,7 @@
</span><span class="cx">     Frame* coreFrame = core([self _frame]);
</span><span class="cx">     if (!coreFrame)
</span><span class="cx">         return Editor::Command();
</span><del>-    return coreFrame-&gt;editor()-&gt;command(name);
</del><ins>+    return coreFrame-&gt;editor().command(name);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)executeCoreCommandBySelector:(SEL)selector
</span><span class="lines">@@ -2593,7 +2593,7 @@
</span><span class="cx">         NSMenuItem *menuItem = (NSMenuItem *)item;
</span><span class="cx">         if ([menuItem isKindOfClass:[NSMenuItem class]]) {
</span><span class="cx">             String direction = writingDirection == NSWritingDirectionLeftToRight ? &quot;ltr&quot; : &quot;rtl&quot;;
</span><del>-            [menuItem setState:frame-&gt;editor()-&gt;selectionHasStyle(CSSPropertyDirection, direction)];
</del><ins>+            [menuItem setState:frame-&gt;editor().selectionHasStyle(CSSPropertyDirection, direction)];
</ins><span class="cx">         }
</span><span class="cx">         return [self _canEdit];
</span><span class="cx">     }
</span><span class="lines">@@ -2610,7 +2610,7 @@
</span><span class="cx">         if ([menuItem isKindOfClass:[NSMenuItem class]]) {
</span><span class="cx">             // Take control of the title of the menu item instead of just checking/unchecking it because
</span><span class="cx">             // a check would be ambiguous.
</span><del>-            [menuItem setTitle:frame-&gt;editor()-&gt;selectionHasStyle(CSSPropertyDirection, &quot;rtl&quot;)
</del><ins>+            [menuItem setTitle:frame-&gt;editor().selectionHasStyle(CSSPropertyDirection, &quot;rtl&quot;)
</ins><span class="cx">                 ? UI_STRING_INTERNAL(&quot;Left to Right&quot;, &quot;Left to Right context menu item&quot;)
</span><span class="cx">                 : UI_STRING_INTERNAL(&quot;Right to Left&quot;, &quot;Right to Left context menu item&quot;)];
</span><span class="cx">         }
</span><span class="lines">@@ -2641,11 +2641,11 @@
</span><span class="cx">         return [self _hasSelection];
</span><span class="cx">     
</span><span class="cx">     if (action == @selector(paste:) || action == @selector(pasteAsPlainText:))
</span><del>-        return frame &amp;&amp; (frame-&gt;editor()-&gt;canDHTMLPaste() || frame-&gt;editor()-&gt;canPaste());
</del><ins>+        return frame &amp;&amp; (frame-&gt;editor().canDHTMLPaste() || frame-&gt;editor().canPaste());
</ins><span class="cx">     
</span><span class="cx">     if (action == @selector(pasteAsRichText:))
</span><del>-        return frame &amp;&amp; (frame-&gt;editor()-&gt;canDHTMLPaste()
-            || (frame-&gt;editor()-&gt;canPaste() &amp;&amp; frame-&gt;selection()-&gt;isContentRichlyEditable()));
</del><ins>+        return frame &amp;&amp; (frame-&gt;editor().canDHTMLPaste()
+            || (frame-&gt;editor().canPaste() &amp;&amp; frame-&gt;selection()-&gt;isContentRichlyEditable()));
</ins><span class="cx">     
</span><span class="cx">     if (action == @selector(performFindPanelAction:))
</span><span class="cx">         return NO;
</span><span class="lines">@@ -3803,7 +3803,7 @@
</span><span class="cx">     _private-&gt;_forceUpdateSecureInputState = NO;
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Kill ring handling is mostly in WebCore, so this call should also be moved there.
</span><del>-    frame-&gt;editor()-&gt;setStartNewKillRingSequence(true);
</del><ins>+    frame-&gt;editor().setStartNewKillRingSequence(true);
</ins><span class="cx"> 
</span><span class="cx">     Page* page = frame-&gt;page();
</span><span class="cx">     if (!page)
</span><span class="lines">@@ -4231,7 +4231,7 @@
</span><span class="cx"> {
</span><span class="cx">     Frame* coreFrame = core([self _frame]);
</span><span class="cx">     NSAttributedString *string = [[NSAttributedString alloc] initWithString:@&quot;x&quot;
</span><del>-        attributes:coreFrame ? coreFrame-&gt;editor()-&gt;fontAttributesForSelectionStart() : nil];
</del><ins>+        attributes:coreFrame ? coreFrame-&gt;editor().fontAttributesForSelectionStart() : nil];
</ins><span class="cx">     NSData *data = [string RTFFromRange:NSMakeRange(0, [string length]) documentAttributes:nil];
</span><span class="cx">     [string release];
</span><span class="cx">     return data;
</span><span class="lines">@@ -4359,7 +4359,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (Frame* coreFrame = core([self _frame])) {
</span><span class="cx">         // FIXME: We shouldn't have to make a copy here. We want callers of this function to work directly with StylePropertySet eventually.
</span><del>-        coreFrame-&gt;editor()-&gt;applyStyleToSelection(core(style)-&gt;copyProperties().get(), undoAction);
</del><ins>+        coreFrame-&gt;editor().applyStyleToSelection(core(style)-&gt;copyProperties().get(), undoAction);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -4661,7 +4661,7 @@
</span><span class="cx">     if ([[webView _editingDelegateForwarder] webView:webView shouldApplyStyle:style toElementsInDOMRange:range]) {
</span><span class="cx">         if (Frame* coreFrame = core([self _frame])) {
</span><span class="cx">             // FIXME: We shouldn't have to make a copy here.
</span><del>-            coreFrame-&gt;editor()-&gt;applyStyle(core(style)-&gt;copyProperties().get(), [self _undoActionFromColorPanelWithSelector:selector]);
</del><ins>+            coreFrame-&gt;editor().applyStyle(core(style)-&gt;copyProperties().get(), [self _undoActionFromColorPanelWithSelector:selector]);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -4748,7 +4748,7 @@
</span><span class="cx">     COMMAND_PROLOGUE
</span><span class="cx"> 
</span><span class="cx">     if (Frame* coreFrame = core([self _frame]))
</span><del>-        coreFrame-&gt;editor()-&gt;advanceToNextMisspelling();
</del><ins>+        coreFrame-&gt;editor().advanceToNextMisspelling();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)showGuessPanel:(id)sender
</span><span class="lines">@@ -4768,7 +4768,7 @@
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     if (Frame* coreFrame = core([self _frame]))
</span><del>-        coreFrame-&gt;editor()-&gt;advanceToNextMisspelling(true);
</del><ins>+        coreFrame-&gt;editor().advanceToNextMisspelling(true);
</ins><span class="cx">     [spellingPanel orderFront:sender];
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -4836,7 +4836,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     WritingDirection direction = RightToLeftWritingDirection;
</span><del>-    switch (coreFrame-&gt;editor()-&gt;baseWritingDirectionForSelectionStart()) {
</del><ins>+    switch (coreFrame-&gt;editor().baseWritingDirectionForSelectionStart()) {
</ins><span class="cx">         case LeftToRightWritingDirection:
</span><span class="cx">             break;
</span><span class="cx">         case RightToLeftWritingDirection:
</span><span class="lines">@@ -4850,7 +4850,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (Frame* coreFrame = core([self _frame]))
</span><del>-        coreFrame-&gt;editor()-&gt;setBaseWritingDirection(direction);
</del><ins>+        coreFrame-&gt;editor().setBaseWritingDirection(direction);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)changeBaseWritingDirection:(id)sender
</span><span class="lines">@@ -4867,7 +4867,7 @@
</span><span class="cx">     ASSERT(writingDirection != NSWritingDirectionNatural);
</span><span class="cx"> 
</span><span class="cx">     if (Frame* coreFrame = core([self _frame]))
</span><del>-        coreFrame-&gt;editor()-&gt;setBaseWritingDirection(writingDirection == NSWritingDirectionLeftToRight ? LeftToRightWritingDirection : RightToLeftWritingDirection);
</del><ins>+        coreFrame-&gt;editor().setBaseWritingDirection(writingDirection == NSWritingDirectionLeftToRight ? LeftToRightWritingDirection : RightToLeftWritingDirection);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static BOOL writingDirectionKeyBindingsEnabled()
</span><span class="lines">@@ -4888,7 +4888,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (Frame* coreFrame = core([self _frame]))
</span><del>-        coreFrame-&gt;editor()-&gt;setBaseWritingDirection(direction == NSWritingDirectionLeftToRight ? LeftToRightWritingDirection : RightToLeftWritingDirection);
</del><ins>+        coreFrame-&gt;editor().setBaseWritingDirection(direction == NSWritingDirectionLeftToRight ? LeftToRightWritingDirection : RightToLeftWritingDirection);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)makeBaseWritingDirectionLeftToRight:(id)sender
</span><span class="lines">@@ -5023,7 +5023,7 @@
</span><span class="cx">     bool multipleFonts = false;
</span><span class="cx">     NSFont *font = nil;
</span><span class="cx">     if (Frame* coreFrame = core([self _frame])) {
</span><del>-        if (const SimpleFontData* fd = coreFrame-&gt;editor()-&gt;fontForSelection(multipleFonts))
</del><ins>+        if (const SimpleFontData* fd = coreFrame-&gt;editor().fontForSelection(multipleFonts))
</ins><span class="cx">             font = fd-&gt;getNSFont();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -5563,7 +5563,7 @@
</span><span class="cx">     Frame* coreFrame = core(webFrame);
</span><span class="cx">     if (!coreFrame)
</span><span class="cx">         return NSMakeRange(0, 0);
</span><del>-    NSRange result = [webFrame _convertToNSRange:coreFrame-&gt;editor()-&gt;compositionRange().get()];
</del><ins>+    NSRange result = [webFrame _convertToNSRange:coreFrame-&gt;editor().compositionRange().get()];
</ins><span class="cx"> 
</span><span class="cx">     LOG(TextInput, &quot;markedRange -&gt; (%u, %u)&quot;, result.location, result.length);
</span><span class="cx">     return result;
</span><span class="lines">@@ -5607,12 +5607,12 @@
</span><span class="cx"> - (BOOL)hasMarkedText
</span><span class="cx"> {
</span><span class="cx">     Frame* coreFrame = core([self _frame]);
</span><del>-    BOOL result = coreFrame &amp;&amp; coreFrame-&gt;editor()-&gt;hasComposition();
</del><ins>+    BOOL result = coreFrame &amp;&amp; coreFrame-&gt;editor().hasComposition();
</ins><span class="cx"> 
</span><span class="cx">     if (result) {
</span><span class="cx">         // A saved command can confirm a composition, but it cannot start a new one.
</span><span class="cx">         [self _executeSavedKeypressCommands];
</span><del>-        result = coreFrame-&gt;editor()-&gt;hasComposition();
</del><ins>+        result = coreFrame-&gt;editor().hasComposition();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     LOG(TextInput, &quot;hasMarkedText -&gt; %u&quot;, result);
</span><span class="lines">@@ -5634,7 +5634,7 @@
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     if (Frame* coreFrame = core([self _frame]))
</span><del>-        coreFrame-&gt;editor()-&gt;confirmComposition();
</del><ins>+        coreFrame-&gt;editor().confirmComposition();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static void extractUnderlines(NSAttributedString *string, Vector&lt;CompositionUnderline&gt;&amp; result)
</span><span class="lines">@@ -5702,7 +5702,7 @@
</span><span class="cx">     if (replacementRange.location != NSNotFound)
</span><span class="cx">         [[self _frame] _selectNSRange:replacementRange];
</span><span class="cx"> 
</span><del>-    coreFrame-&gt;editor()-&gt;setComposition(text, underlines, newSelRange.location, NSMaxRange(newSelRange));
</del><ins>+    coreFrame-&gt;editor().setComposition(text, underlines, newSelRange.location, NSMaxRange(newSelRange));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)doCommandBySelector:(SEL)selector
</span><span class="lines">@@ -5720,7 +5720,7 @@
</span><span class="cx"> 
</span><span class="cx">     // As in insertText:, we assume that the call comes from an input method if there is marked text.
</span><span class="cx">     RefPtr&lt;Frame&gt; coreFrame = core([self _frame]);
</span><del>-    bool isFromInputMethod = coreFrame &amp;&amp; coreFrame-&gt;editor()-&gt;hasComposition();
</del><ins>+    bool isFromInputMethod = coreFrame &amp;&amp; coreFrame-&gt;editor().hasComposition();
</ins><span class="cx"> 
</span><span class="cx">     if (event &amp;&amp; shouldSaveCommand &amp;&amp; !isFromInputMethod)
</span><span class="cx">         event-&gt;keypressCommands().append(KeypressCommand(NSStringFromSelector(selector)));
</span><span class="lines">@@ -5774,7 +5774,7 @@
</span><span class="cx">     RefPtr&lt;Frame&gt; coreFrame = core([self _frame]);
</span><span class="cx">     NSString *text;
</span><span class="cx">     NSRange replacementRange = { NSNotFound, 0 };
</span><del>-    bool isFromInputMethod = coreFrame &amp;&amp; coreFrame-&gt;editor()-&gt;hasComposition();
</del><ins>+    bool isFromInputMethod = coreFrame &amp;&amp; coreFrame-&gt;editor().hasComposition();
</ins><span class="cx"> 
</span><span class="cx">     Vector&lt;DictationAlternative&gt; dictationAlternativeLocations;
</span><span class="cx">     if (isAttributedString) {
</span><span class="lines">@@ -5810,7 +5810,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (!coreFrame || !coreFrame-&gt;editor()-&gt;canEdit())
</del><ins>+    if (!coreFrame || !coreFrame-&gt;editor().canEdit())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (replacementRange.location != NSNotFound)
</span><span class="lines">@@ -5819,17 +5819,17 @@
</span><span class="cx">     bool eventHandled = false;
</span><span class="cx">     String eventText = text;
</span><span class="cx">     eventText.replace(NSBackTabCharacter, NSTabCharacter); // same thing is done in KeyEventMac.mm in WebCore
</span><del>-    if (!coreFrame-&gt;editor()-&gt;hasComposition()) {
</del><ins>+    if (!coreFrame-&gt;editor().hasComposition()) {
</ins><span class="cx">         // An insertText: might be handled by other responders in the chain if we don't handle it.
</span><span class="cx">         // One example is space bar that results in scrolling down the page.
</span><span class="cx"> 
</span><span class="cx">         if (!dictationAlternativeLocations.isEmpty())
</span><del>-            eventHandled = coreFrame-&gt;editor()-&gt;insertDictatedText(eventText, dictationAlternativeLocations, event);
</del><ins>+            eventHandled = coreFrame-&gt;editor().insertDictatedText(eventText, dictationAlternativeLocations, event);
</ins><span class="cx">         else
</span><del>-            eventHandled = coreFrame-&gt;editor()-&gt;insertText(eventText, event);
</del><ins>+            eventHandled = coreFrame-&gt;editor().insertText(eventText, event);
</ins><span class="cx">     } else {
</span><span class="cx">         eventHandled = true;
</span><del>-        coreFrame-&gt;editor()-&gt;confirmComposition(eventText);
</del><ins>+        coreFrame-&gt;editor().confirmComposition(eventText);
</ins><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     if (parameters)
</span><span class="lines">@@ -5884,15 +5884,15 @@
</span><span class="cx"> 
</span><span class="cx">     [self _updateSecureInputState];
</span><span class="cx"> 
</span><del>-    if (!coreFrame-&gt;editor()-&gt;hasComposition() || coreFrame-&gt;editor()-&gt;ignoreCompositionSelectionChange())
</del><ins>+    if (!coreFrame-&gt;editor().hasComposition() || coreFrame-&gt;editor().ignoreCompositionSelectionChange())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     unsigned start;
</span><span class="cx">     unsigned end;
</span><del>-    if (coreFrame-&gt;editor()-&gt;getCompositionSelection(start, end))
</del><ins>+    if (coreFrame-&gt;editor().getCompositionSelection(start, end))
</ins><span class="cx">         [[NSInputManager currentInputManager] markedTextSelectionChanged:NSMakeRange(start, end - start) client:self];
</span><span class="cx">     else {
</span><del>-        coreFrame-&gt;editor()-&gt;cancelComposition();
</del><ins>+        coreFrame-&gt;editor().cancelComposition();
</ins><span class="cx">         [[NSInputManager currentInputManager] markedTextAbandoned:self];
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="lines">@@ -6060,7 +6060,7 @@
</span><span class="cx">     if (!coreFrame)
</span><span class="cx">         return 0;
</span><span class="cx"> 
</span><del>-    return coreFrame-&gt;editor()-&gt;countMatchesForText(string, core(range), coreOptions(options), limit, markMatches, 0);
</del><ins>+    return coreFrame-&gt;editor().countMatchesForText(string, core(range), coreOptions(options), limit, markMatches, 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)setMarkedTextMatchesAreHighlighted:(BOOL)newValue
</span><span class="lines">@@ -6068,13 +6068,13 @@
</span><span class="cx">     Frame* coreFrame = core([self _frame]);
</span><span class="cx">     if (!coreFrame)
</span><span class="cx">         return;
</span><del>-    coreFrame-&gt;editor()-&gt;setMarkedTextMatchesAreHighlighted(newValue);
</del><ins>+    coreFrame-&gt;editor().setMarkedTextMatchesAreHighlighted(newValue);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (BOOL)markedTextMatchesAreHighlighted
</span><span class="cx"> {
</span><span class="cx">     Frame* coreFrame = core([self _frame]);
</span><del>-    return coreFrame &amp;&amp; coreFrame-&gt;editor()-&gt;markedTextMatchesAreHighlighted();
</del><ins>+    return coreFrame &amp;&amp; coreFrame-&gt;editor().markedTextMatchesAreHighlighted();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)unmarkAllTextMatches
</span><span class="lines">@@ -6110,7 +6110,7 @@
</span><span class="cx">     if (![string length])
</span><span class="cx">         return NO;
</span><span class="cx">     Frame* coreFrame = core([self _frame]);
</span><del>-    return coreFrame &amp;&amp; coreFrame-&gt;editor()-&gt;findString(string, coreOptions(options));
</del><ins>+    return coreFrame &amp;&amp; coreFrame-&gt;editor().findString(string, coreOptions(options));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> @end
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebView.mm (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebView.mm        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/mac/WebView/WebView.mm        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -2427,7 +2427,7 @@
</span><span class="cx">     Frame* coreFrame = [self _mainCoreFrame];
</span><span class="cx">     if (!coreFrame)
</span><span class="cx">         return;
</span><del>-    coreFrame-&gt;editor()-&gt;command(name).execute(value);
</del><ins>+    coreFrame-&gt;editor().command(name).execute(value);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)_setCustomHTMLTokenizerTimeDelay:(double)timeDelay
</span><span class="lines">@@ -5382,7 +5382,7 @@
</span><span class="cx">     Page* page = core(self);
</span><span class="cx">     if (!page)
</span><span class="cx">         return nil;
</span><del>-    return kit(page-&gt;mainFrame()-&gt;editor()-&gt;rangeForPoint(IntPoint([self convertPoint:point toView:nil])).get());
</del><ins>+    return kit(page-&gt;mainFrame()-&gt;editor().rangeForPoint(IntPoint([self convertPoint:point toView:nil])).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (BOOL)_shouldChangeSelectedDOMRange:(DOMRange *)currentRange toDOMRange:(DOMRange *)proposedRange affinity:(NSSelectionAffinity)selectionAffinity stillSelecting:(BOOL)flag
</span><span class="lines">@@ -5443,7 +5443,7 @@
</span><span class="cx">         Frame* mainFrame = [self _mainCoreFrame];
</span><span class="cx">         if (mainFrame) {
</span><span class="cx">             if (flag) {
</span><del>-                mainFrame-&gt;editor()-&gt;applyEditingStyleToBodyElement();
</del><ins>+                mainFrame-&gt;editor().applyEditingStyleToBodyElement();
</ins><span class="cx">                 // If the WebView is made editable and the selection is empty, set it to something.
</span><span class="cx">                 if (![self selectedDOMRange])
</span><span class="cx">                     mainFrame-&gt;selection()-&gt;setSelectionFromNone();
</span><span class="lines">@@ -5730,7 +5730,7 @@
</span><span class="cx">     WebFrame *webFrame = [self _selectedOrMainFrame];
</span><span class="cx">     Frame* coreFrame = core(webFrame);
</span><span class="cx">     if (coreFrame)
</span><del>-        coreFrame-&gt;editor()-&gt;deleteSelectionWithSmartDelete([(WebHTMLView *)[[webFrame frameView] documentView] _canSmartCopyOrDelete]);
</del><ins>+        coreFrame-&gt;editor().deleteSelectionWithSmartDelete([(WebHTMLView *)[[webFrame frameView] documentView] _canSmartCopyOrDelete]);
</ins><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> - (void)applyStyle:(DOMCSSStyleDeclaration *)style
</span><span class="lines">@@ -5741,7 +5741,7 @@
</span><span class="cx">     Frame* coreFrame = core(webFrame);
</span><span class="cx">     // FIXME: We shouldn't have to make a copy here.
</span><span class="cx">     if (coreFrame)
</span><del>-        coreFrame-&gt;editor()-&gt;applyStyle(core(style)-&gt;copyProperties().get());
</del><ins>+        coreFrame-&gt;editor().applyStyle(core(style)-&gt;copyProperties().get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> @end
</span><span class="lines">@@ -5788,7 +5788,7 @@
</span><span class="cx"> {
</span><span class="cx">     Frame* coreFrame = core([self _selectedOrMainFrame]);
</span><span class="cx">     if (coreFrame)
</span><del>-        return coreFrame-&gt;editor()-&gt;fontAttributesForSelectionStart();
</del><ins>+        return coreFrame-&gt;editor().fontAttributesForSelectionStart();
</ins><span class="cx">     
</span><span class="cx">     return nil;
</span><span class="cx"> }
</span><span class="lines">@@ -5832,7 +5832,7 @@
</span><span class="cx">     Node* coreStartNode= core(startNode);
</span><span class="cx">     if (coreStartNode-&gt;document() != coreFrame-&gt;document())
</span><span class="cx">         return;
</span><del>-    return coreFrame-&gt;editor()-&gt;simplifyMarkup(coreStartNode, core(endNode));    
</del><ins>+    return coreFrame-&gt;editor().simplifyMarkup(coreStartNode, core(endNode));    
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> @end
</span><span class="lines">@@ -6567,7 +6567,7 @@
</span><span class="cx">     WebFrame *webFrame = [self _selectedOrMainFrame];
</span><span class="cx">     Frame* coreFrame = core(webFrame);
</span><span class="cx">     if (coreFrame)
</span><del>-        coreFrame-&gt;editor()-&gt;handleAlternativeTextUIResult(text);
</del><ins>+        coreFrame-&gt;editor().handleAlternativeTextUIResult(text);
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitqtChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/qt/ChangeLog (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/qt/ChangeLog        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/qt/ChangeLog        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -1,3 +1,23 @@
</span><ins>+2013-05-13  Anders Carlsson  &lt;andersca@apple.com&gt;
+
+        Frame::editor() should return a reference
+        https://bugs.webkit.org/show_bug.cgi?id=116037
+
+        Reviewed by Darin Adler.
+
+        * WebCoreSupport/DumpRenderTreeSupportQt.cpp:
+        (DumpRenderTreeSupportQt::executeCoreCommandByName):
+        (DumpRenderTreeSupportQt::isCommandEnabled):
+        (DumpRenderTreeSupportQt::firstRectForCharacterRange):
+        * WebCoreSupport/EditorClientQt.cpp:
+        (WebCore::EditorClientQt::respondToChangedSelection):
+        (WebCore::EditorClientQt::registerUndoStep):
+        (WebCore::EditorClientQt::handleKeyboardEvent):
+        * WebCoreSupport/QWebPageAdapter.cpp:
+        (QWebPageAdapter::selectedText):
+        (QWebPageAdapter::selectedHtml):
+        (QWebPageAdapter::setContentEditable):
+
</ins><span class="cx"> 2013-05-15  Jocelyn Turcotte  &lt;jocelyn.turcotte@digia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Qt] Fix a crash under ~PingLoader when the QNAM on the page has been destroyed.
</span></span></pre></div>
<a id="trunkSourceWebKitqtWebCoreSupportDumpRenderTreeSupportQtcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -329,12 +329,12 @@
</span><span class="cx"> 
</span><span class="cx"> void DumpRenderTreeSupportQt::executeCoreCommandByName(QWebPageAdapter* adapter, const QString&amp; name, const QString&amp; value)
</span><span class="cx"> {
</span><del>-    adapter-&gt;page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor()-&gt;command(name).execute(value);
</del><ins>+    adapter-&gt;page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor().command(name).execute(value);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool DumpRenderTreeSupportQt::isCommandEnabled(QWebPageAdapter *adapter, const QString&amp; name)
</span><span class="cx"> {
</span><del>-    return adapter-&gt;page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor()-&gt;command(name).isEnabled();
</del><ins>+    return adapter-&gt;page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor().command(name).isEnabled();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> QVariantList DumpRenderTreeSupportQt::selectedRange(QWebPageAdapter *adapter)
</span><span class="lines">@@ -374,7 +374,7 @@
</span><span class="cx">     if (!range)
</span><span class="cx">         return QVariantList();
</span><span class="cx"> 
</span><del>-    QRect resultRect = frame-&gt;editor()-&gt;firstRectForRange(range.get());
</del><ins>+    QRect resultRect = frame-&gt;editor().firstRectForRange(range.get());
</ins><span class="cx">     rect &lt;&lt; resultRect.x() &lt;&lt; resultRect.y() &lt;&lt; resultRect.width() &lt;&lt; resultRect.height();
</span><span class="cx">     return rect;
</span><span class="cx"> }
</span><span class="lines">@@ -751,17 +751,17 @@
</span><span class="cx">     if (!frame)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    Editor* editor = frame-&gt;editor();
-    if (!editor || (!editor-&gt;hasComposition() &amp;&amp; !text))
</del><ins>+    Editor&amp; editor = frame-&gt;editor();
+    if (!editor.hasComposition() &amp;&amp; !text)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (editor-&gt;hasComposition()) {
</del><ins>+    if (editor.hasComposition()) {
</ins><span class="cx">         if (text)
</span><del>-            editor-&gt;confirmComposition(String::fromUTF8(text));
</del><ins>+            editor.confirmComposition(String::fromUTF8(text));
</ins><span class="cx">         else
</span><del>-            editor-&gt;confirmComposition();
</del><ins>+            editor.confirmComposition();
</ins><span class="cx">     } else
</span><del>-        editor-&gt;insertText(String::fromUTF8(text), 0);
</del><ins>+        editor.insertText(String::fromUTF8(text), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DumpRenderTreeSupportQt::injectInternalsObject(QWebFrameAdapter* adapter)
</span></span></pre></div>
<a id="trunkSourceWebKitqtWebCoreSupportEditorClientQtcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/qt/WebCoreSupport/EditorClientQt.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/qt/WebCoreSupport/EditorClientQt.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/qt/WebCoreSupport/EditorClientQt.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -206,12 +206,12 @@
</span><span class="cx">     if (supportsGlobalSelection() &amp;&amp; frame-&gt;selection()-&gt;isRange()) {
</span><span class="cx">         bool oldSelectionMode = Pasteboard::generalPasteboard()-&gt;isSelectionMode();
</span><span class="cx">         Pasteboard::generalPasteboard()-&gt;setSelectionMode(true);
</span><del>-        Pasteboard::generalPasteboard()-&gt;writeSelection(frame-&gt;selection()-&gt;toNormalizedRange().get(), frame-&gt;editor()-&gt;canSmartCopyOrDelete(), frame);
</del><ins>+        Pasteboard::generalPasteboard()-&gt;writeSelection(frame-&gt;selection()-&gt;toNormalizedRange().get(), frame-&gt;editor().canSmartCopyOrDelete(), frame);
</ins><span class="cx">         Pasteboard::generalPasteboard()-&gt;setSelectionMode(oldSelectionMode);
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     m_page-&gt;respondToChangedSelection();
</span><del>-    if (!frame-&gt;editor()-&gt;ignoreCompositionSelectionChange())
</del><ins>+    if (!frame-&gt;editor().ignoreCompositionSelectionChange())
</ins><span class="cx">         emit m_page-&gt;microFocusChanged();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -248,7 +248,7 @@
</span><span class="cx"> {
</span><span class="cx"> #ifndef QT_NO_UNDOSTACK
</span><span class="cx">     Frame* frame = m_page-&gt;page-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    if (m_inUndoRedo || (frame &amp;&amp; !frame-&gt;editor()-&gt;lastEditCommand() /* HACK!! Don't recreate undos */))
</del><ins>+    if (m_inUndoRedo || (frame &amp;&amp; !frame-&gt;editor().lastEditCommand() /* HACK!! Don't recreate undos */))
</ins><span class="cx">         return;
</span><span class="cx">     m_page-&gt;registerUndoStep(step);
</span><span class="cx"> #endif // QT_NO_UNDOSTACK
</span><span class="lines">@@ -455,7 +455,7 @@
</span><span class="cx">             // WebKit doesn't have enough information about mode to decide how commands that just insert text if executed via Editor should be treated,
</span><span class="cx">             // so we leave it upon WebCore to either handle them immediately (e.g. Tab that changes focus) or let a keypress event be generated
</span><span class="cx">             // (e.g. Tab that inserts a Tab character, or Enter).
</span><del>-            if (frame-&gt;editor()-&gt;command(cmd).isTextInsertion()
</del><ins>+            if (frame-&gt;editor().command(cmd).isTextInsertion()
</ins><span class="cx">                 &amp;&amp; kevent-&gt;type() == PlatformEvent::RawKeyDown)
</span><span class="cx">                 return;
</span><span class="cx"> 
</span><span class="lines">@@ -467,7 +467,7 @@
</span><span class="cx">         {
</span><span class="cx">             String commandName = editorCommandForKeyDownEvent(event);
</span><span class="cx">             if (!commandName.isEmpty()) {
</span><del>-                if (frame-&gt;editor()-&gt;command(commandName).execute()) // Event handled.
</del><ins>+                if (frame-&gt;editor().command(commandName).execute()) // Event handled.
</ins><span class="cx">                     event-&gt;setDefaultHandled();
</span><span class="cx">                 return;
</span><span class="cx">             }
</span><span class="lines">@@ -495,7 +495,7 @@
</span><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             if (shouldInsertText) {
</span><del>-                frame-&gt;editor()-&gt;insertText(kevent-&gt;text(), event);
</del><ins>+                frame-&gt;editor().insertText(kevent-&gt;text(), event);
</ins><span class="cx">                 event-&gt;setDefaultHandled();
</span><span class="cx">                 return;
</span><span class="cx">             }
</span><span class="lines">@@ -526,7 +526,7 @@
</span><span class="cx">             {
</span><span class="cx">                 String commandName = editorCommandForKeyDownEvent(event);
</span><span class="cx">                 ASSERT(!commandName.isEmpty());
</span><del>-                frame-&gt;editor()-&gt;command(commandName).execute();
</del><ins>+                frame-&gt;editor().command(commandName).execute();
</ins><span class="cx">                 event-&gt;setDefaultHandled();
</span><span class="cx">                 return;
</span><span class="cx">             }
</span></span></pre></div>
<a id="trunkSourceWebKitqtWebCoreSupportQWebPageAdaptercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -309,12 +309,12 @@
</span><span class="cx">     Frame* frame = page-&gt;focusController()-&gt;focusedOrMainFrame();
</span><span class="cx">     if (frame-&gt;selection()-&gt;selection().selectionType() == VisibleSelection::NoSelection)
</span><span class="cx">         return QString();
</span><del>-    return frame-&gt;editor()-&gt;selectedText();
</del><ins>+    return frame-&gt;editor().selectedText();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> QString QWebPageAdapter::selectedHtml() const
</span><span class="cx"> {
</span><del>-    return page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor()-&gt;selectedRange()-&gt;toHTML();
</del><ins>+    return page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor().selectedRange()-&gt;toHTML();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool QWebPageAdapter::isContentEditable() const
</span><span class="lines">@@ -329,7 +329,7 @@
</span><span class="cx"> 
</span><span class="cx">     Frame* frame = mainFrameAdapter()-&gt;frame;
</span><span class="cx">     if (editable) {
</span><del>-        frame-&gt;editor()-&gt;applyEditingStyleToBodyElement();
</del><ins>+        frame-&gt;editor().applyEditingStyleToBodyElement();
</ins><span class="cx">         // FIXME: mac port calls this if there is no selectedDOMRange
</span><span class="cx">         // frame-&gt;setSelectionFromNone();
</span><span class="cx">     }
</span><span class="lines">@@ -567,9 +567,9 @@
</span><span class="cx"> void QWebPageAdapter::inputMethodEvent(QInputMethodEvent *ev)
</span><span class="cx"> {
</span><span class="cx">     WebCore::Frame *frame = page-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    WebCore::Editor *editor = frame-&gt;editor();
</del><ins>+    WebCore::Editor &amp;editor = frame-&gt;editor();
</ins><span class="cx"> 
</span><del>-    if (!editor-&gt;canEdit()) {
</del><ins>+    if (!editor.canEdit()) {
</ins><span class="cx">         ev-&gt;ignore();
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -610,12 +610,12 @@
</span><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             if (!ev-&gt;preeditString().isEmpty())
</span><del>-                editor-&gt;setComposition(ev-&gt;preeditString(), underlines, qMin(a.start, (a.start + a.length)), qMax(a.start, (a.start + a.length)));
</del><ins>+                editor.setComposition(ev-&gt;preeditString(), underlines, qMin(a.start, (a.start + a.length)), qMax(a.start, (a.start + a.length)));
</ins><span class="cx">             else {
</span><span class="cx">                 // If we are in the middle of a composition, an empty pre-edit string and a selection of zero
</span><span class="cx">                 // cancels the current composition
</span><del>-                if (editor-&gt;hasComposition() &amp;&amp; !(a.start + a.length))
-                    editor-&gt;setComposition(QString(), underlines, 0, 0);
</del><ins>+                if (editor.hasComposition() &amp;&amp; !(a.start + a.length))
+                    editor.setComposition(QString(), underlines, 0, 0);
</ins><span class="cx">             }
</span><span class="cx">             break;
</span><span class="cx">         }
</span><span class="lines">@@ -630,16 +630,16 @@
</span><span class="cx">         if (isHTMLTextFormControlElement(node))
</span><span class="cx">             toHTMLTextFormControlElement(node)-&gt;setSelectionRange(start, start + ev-&gt;replacementLength());
</span><span class="cx">         // Commit regardless of whether commitString is empty, to get rid of selection.
</span><del>-        editor-&gt;confirmComposition(ev-&gt;commitString());
</del><ins>+        editor.confirmComposition(ev-&gt;commitString());
</ins><span class="cx">     } else if (!ev-&gt;commitString().isEmpty()) {
</span><del>-        if (editor-&gt;hasComposition())
-            editor-&gt;confirmComposition(ev-&gt;commitString());
</del><ins>+        if (editor.hasComposition())
+            editor.confirmComposition(ev-&gt;commitString());
</ins><span class="cx">         else
</span><del>-            editor-&gt;insertText(ev-&gt;commitString(), 0);
</del><ins>+            editor.insertText(ev-&gt;commitString(), 0);
</ins><span class="cx">     } else if (!hasSelection &amp;&amp; !ev-&gt;preeditString().isEmpty())
</span><del>-        editor-&gt;setComposition(ev-&gt;preeditString(), underlines, 0, 0);
-    else if (ev-&gt;preeditString().isEmpty() &amp;&amp; editor-&gt;hasComposition())
-        editor-&gt;confirmComposition(String());
</del><ins>+        editor.setComposition(ev-&gt;preeditString(), underlines, 0, 0);
+    else if (ev-&gt;preeditString().isEmpty() &amp;&amp; editor.hasComposition())
+        editor.confirmComposition(String());
</ins><span class="cx"> 
</span><span class="cx">     ev-&gt;accept();
</span><span class="cx"> }
</span><span class="lines">@@ -650,7 +650,7 @@
</span><span class="cx">     if (!frame)
</span><span class="cx">         return QVariant();
</span><span class="cx"> 
</span><del>-    WebCore::Editor* editor = frame-&gt;editor();
</del><ins>+    WebCore::Editor&amp; editor = frame-&gt;editor();
</ins><span class="cx"> 
</span><span class="cx">     RenderObject* renderer = 0;
</span><span class="cx">     RenderTextControl* renderTextControl = 0;
</span><span class="lines">@@ -678,14 +678,14 @@
</span><span class="cx">         return QVariant(QFont());
</span><span class="cx">     }
</span><span class="cx">     case Qt::ImCursorPosition: {
</span><del>-        if (editor-&gt;hasComposition())
</del><ins>+        if (editor.hasComposition())
</ins><span class="cx">             return QVariant(frame-&gt;selection()-&gt;end().offsetInContainerNode());
</span><span class="cx">         return QVariant(frame-&gt;selection()-&gt;extent().offsetInContainerNode());
</span><span class="cx">     }
</span><span class="cx">     case Qt::ImSurroundingText: {
</span><span class="cx">         if (renderTextControl &amp;&amp; renderTextControl-&gt;textFormControlElement()) {
</span><span class="cx">             QString text = renderTextControl-&gt;textFormControlElement()-&gt;value();
</span><del>-            RefPtr&lt;Range&gt; range = editor-&gt;compositionRange();
</del><ins>+            RefPtr&lt;Range&gt; range = editor.compositionRange();
</ins><span class="cx">             if (range)
</span><span class="cx">                 text.remove(range-&gt;startPosition().offsetInContainerNode(), TextIterator::rangeLength(range.get()));
</span><span class="cx">             return QVariant(text);
</span><span class="lines">@@ -693,7 +693,7 @@
</span><span class="cx">         return QVariant();
</span><span class="cx">     }
</span><span class="cx">     case Qt::ImCurrentSelection: {
</span><del>-        if (!editor-&gt;hasComposition() &amp;&amp; renderTextControl &amp;&amp; renderTextControl-&gt;textFormControlElement()) {
</del><ins>+        if (!editor.hasComposition() &amp;&amp; renderTextControl &amp;&amp; renderTextControl-&gt;textFormControlElement()) {
</ins><span class="cx">             int start = frame-&gt;selection()-&gt;start().offsetInContainerNode();
</span><span class="cx">             int end = frame-&gt;selection()-&gt;end().offsetInContainerNode();
</span><span class="cx">             if (end &gt; start)
</span><span class="lines">@@ -703,7 +703,7 @@
</span><span class="cx"> 
</span><span class="cx">     }
</span><span class="cx">     case Qt::ImAnchorPosition: {
</span><del>-        if (editor-&gt;hasComposition())
</del><ins>+        if (editor.hasComposition())
</ins><span class="cx">             return QVariant(frame-&gt;selection()-&gt;start().offsetInContainerNode());
</span><span class="cx">         return QVariant(frame-&gt;selection()-&gt;base().offsetInContainerNode());
</span><span class="cx">     }
</span><span class="lines">@@ -955,7 +955,7 @@
</span><span class="cx"> void QWebPageAdapter::updateActionInternal(QWebPageAdapter::MenuAction action, const char* commandName, bool* enabled, bool* checked)
</span><span class="cx"> {
</span><span class="cx">     WebCore::FrameLoader* loader = mainFrameAdapter()-&gt;frame-&gt;loader();
</span><del>-    WebCore::Editor* editor = page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor();
</del><ins>+    WebCore::Editor&amp; editor = page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor();
</ins><span class="cx"> 
</span><span class="cx">     switch (action) {
</span><span class="cx">     case QWebPageAdapter::Back:
</span><span class="lines">@@ -973,14 +973,14 @@
</span><span class="cx">     case QWebPageAdapter::SetTextDirectionDefault:
</span><span class="cx">     case QWebPageAdapter::SetTextDirectionLeftToRight:
</span><span class="cx">     case QWebPageAdapter::SetTextDirectionRightToLeft:
</span><del>-        *enabled = editor-&gt;canEdit();
</del><ins>+        *enabled = editor.canEdit();
</ins><span class="cx">         *checked = false;
</span><span class="cx">         break;
</span><span class="cx">     default: {
</span><span class="cx"> 
</span><span class="cx">         // if it's an editor command, let its logic determine state
</span><span class="cx">         if (commandName) {
</span><del>-            Editor::Command command = editor-&gt;command(commandName);
</del><ins>+            Editor::Command command = editor.command(commandName);
</ins><span class="cx">             *enabled = command.isEnabled();
</span><span class="cx">             if (*enabled)
</span><span class="cx">                 *checked = command.state() != FalseTriState;
</span><span class="lines">@@ -997,7 +997,7 @@
</span><span class="cx">     Frame* frame = page-&gt;focusController()-&gt;focusedOrMainFrame();
</span><span class="cx">     if (!frame)
</span><span class="cx">         return;
</span><del>-    Editor* editor = frame-&gt;editor();
</del><ins>+    Editor&amp; editor = frame-&gt;editor();
</ins><span class="cx"> 
</span><span class="cx">     // Convenience
</span><span class="cx">     QWebHitTestResultPrivate hitTest;
</span><span class="lines">@@ -1028,10 +1028,10 @@
</span><span class="cx"> #if defined(Q_WS_X11)
</span><span class="cx">         bool oldSelectionMode = Pasteboard::generalPasteboard()-&gt;isSelectionMode();
</span><span class="cx">         Pasteboard::generalPasteboard()-&gt;setSelectionMode(true);
</span><del>-        editor-&gt;copyURL(hitTestResult-&gt;linkUrl, hitTestResult-&gt;linkText);
</del><ins>+        editor.copyURL(hitTestResult-&gt;linkUrl, hitTestResult-&gt;linkText);
</ins><span class="cx">         Pasteboard::generalPasteboard()-&gt;setSelectionMode(oldSelectionMode);
</span><span class="cx"> #endif
</span><del>-        editor-&gt;copyURL(hitTestResult-&gt;linkUrl, hitTestResult-&gt;linkText);
</del><ins>+        editor.copyURL(hitTestResult-&gt;linkUrl, hitTestResult-&gt;linkText);
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     case OpenImageInNewWindow:
</span><span class="lines">@@ -1058,13 +1058,13 @@
</span><span class="cx">         break;
</span><span class="cx"> 
</span><span class="cx">     case SetTextDirectionDefault:
</span><del>-        editor-&gt;setBaseWritingDirection(NaturalWritingDirection);
</del><ins>+        editor.setBaseWritingDirection(NaturalWritingDirection);
</ins><span class="cx">         break;
</span><span class="cx">     case SetTextDirectionLeftToRight:
</span><del>-        editor-&gt;setBaseWritingDirection(LeftToRightWritingDirection);
</del><ins>+        editor.setBaseWritingDirection(LeftToRightWritingDirection);
</ins><span class="cx">         break;
</span><span class="cx">     case SetTextDirectionRightToLeft:
</span><del>-        editor-&gt;setBaseWritingDirection(RightToLeftWritingDirection);
</del><ins>+        editor.setBaseWritingDirection(RightToLeftWritingDirection);
</ins><span class="cx">         break;
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><span class="cx">     case InspectElement: {
</span><span class="lines">@@ -1075,7 +1075,7 @@
</span><span class="cx"> #endif
</span><span class="cx">     default:
</span><span class="cx">         if (commandName)
</span><del>-            editor-&gt;command(commandName).execute();
</del><ins>+            editor.command(commandName).execute();
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="lines">@@ -1314,8 +1314,8 @@
</span><span class="cx"> bool QWebPageAdapter::handleShortcutOverrideEvent(QKeyEvent* event)
</span><span class="cx"> {
</span><span class="cx">     WebCore::Frame* frame = page-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    WebCore::Editor* editor = frame-&gt;editor();
-    if (!editor-&gt;canEdit())
</del><ins>+    WebCore::Editor&amp; editor = frame-&gt;editor();
+    if (!editor.canEdit())
</ins><span class="cx">         return false;
</span><span class="cx">     if (event-&gt;modifiers() == Qt::NoModifier
</span><span class="cx">         || event-&gt;modifiers() == Qt::ShiftModifier
</span></span></pre></div>
<a id="trunkSourceWebKitwinChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/ChangeLog (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/ChangeLog        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/win/ChangeLog        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -1,3 +1,47 @@
</span><ins>+2013-05-13  Anders Carlsson  &lt;andersca@apple.com&gt;
+
+        Frame::editor() should return a reference
+        https://bugs.webkit.org/show_bug.cgi?id=116037
+
+        Reviewed by Darin Adler.
+
+        * WebCoreSupport/WebContextMenuClient.cpp:
+        (WebContextMenuClient::searchWithGoogle):
+        * WebFrame.cpp:
+        (WebFrame::hasSpellingMarker):
+        (WebFrame::setTextDirection):
+        (WebFrame::selectedString):
+        (WebFrame::selectAll):
+        * WebView.cpp:
+        (WebView::execCommand):
+        (WebView::handleEditingKeyboardEvent):
+        (WebView::executeCoreCommandByName):
+        (WebView::selectedText):
+        (WebView::deleteEnabled):
+        (WebView::editingEnabled):
+        (WebView::replaceSelectionWithText):
+        (WebView::copy):
+        (WebView::cut):
+        (WebView::paste):
+        (WebView::copyURL):
+        (WebView::delete_):
+        (WebView::checkSpelling):
+        (WebView::showGuessPanel):
+        (WebView::clearUndoRedoOperations):
+        (WebView::prepareCandidateWindow):
+        (WebView::resetIME):
+        (WebView::updateSelectionForIME):
+        (WebView::onIMEComposition):
+        (WebView::onIMEEndComposition):
+        (WebView::onIMERequestCharPosition):
+        (WebView::onIMERequest):
+        (WebView::setCompositionForTesting):
+        (WebView::hasCompositionForTesting):
+        (WebView::confirmCompositionForTesting):
+        (WebView::compositionRangeForTesting):
+        (WebView::firstRectForCharacterRangeForTesting):
+        (WebView::selectedRangeForTesting):
+
</ins><span class="cx"> 2013-05-15  Patrick Gansterer  &lt;paroga@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Remove unnecessary dependecy on CoreFoundation from WebDatabaseManager
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebCoreSupportWebContextMenuClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebCoreSupport/WebContextMenuClient.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebCoreSupport/WebContextMenuClient.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/win/WebCoreSupport/WebContextMenuClient.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -111,7 +111,7 @@
</span><span class="cx"> 
</span><span class="cx"> void WebContextMenuClient::searchWithGoogle(const Frame* frame)
</span><span class="cx"> {
</span><del>-    String searchString = frame-&gt;editor()-&gt;selectedText();
</del><ins>+    String searchString = frame-&gt;editor().selectedText();
</ins><span class="cx">     searchString.stripWhiteSpace();
</span><span class="cx">     String encoded = encodeWithURLEscapeSequences(searchString);
</span><span class="cx">     encoded.replace(&quot;%20&quot;, &quot;+&quot;);
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebFramecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebFrame.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebFrame.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/win/WebFrame.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -1005,7 +1005,7 @@
</span><span class="cx">     Frame* coreFrame = core(this);
</span><span class="cx">     if (!coreFrame)
</span><span class="cx">         return E_FAIL;
</span><del>-    *result = coreFrame-&gt;editor()-&gt;selectionStartHasMarkerFor(DocumentMarker::Spelling, from, length);
</del><ins>+    *result = coreFrame-&gt;editor().selectionStartHasMarkerFor(DocumentMarker::Spelling, from, length);
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1021,16 +1021,16 @@
</span><span class="cx"> HRESULT WebFrame::setTextDirection(BSTR direction)
</span><span class="cx"> {
</span><span class="cx">     Frame* coreFrame = core(this);
</span><del>-    if (!coreFrame || !coreFrame-&gt;editor())
</del><ins>+    if (!coreFrame)
</ins><span class="cx">         return E_FAIL;
</span><span class="cx"> 
</span><span class="cx">     String directionString(direction, SysStringLen(direction));
</span><span class="cx">     if (directionString == &quot;auto&quot;)
</span><del>-        coreFrame-&gt;editor()-&gt;setBaseWritingDirection(NaturalWritingDirection);
</del><ins>+        coreFrame-&gt;editor().setBaseWritingDirection(NaturalWritingDirection);
</ins><span class="cx">     else if (directionString == &quot;ltr&quot;)
</span><del>-        coreFrame-&gt;editor()-&gt;setBaseWritingDirection(LeftToRightWritingDirection);
</del><ins>+        coreFrame-&gt;editor().setBaseWritingDirection(LeftToRightWritingDirection);
</ins><span class="cx">     else if (directionString == &quot;rtl&quot;)
</span><del>-        coreFrame-&gt;editor()-&gt;setBaseWritingDirection(RightToLeftWritingDirection);
</del><ins>+        coreFrame-&gt;editor().setBaseWritingDirection(RightToLeftWritingDirection);
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1052,7 +1052,7 @@
</span><span class="cx">     if (!coreFrame)
</span><span class="cx">         return E_FAIL;
</span><span class="cx"> 
</span><del>-    String text = coreFrame-&gt;displayStringModifiedByEncoding(coreFrame-&gt;editor()-&gt;selectedText());
</del><ins>+    String text = coreFrame-&gt;displayStringModifiedByEncoding(coreFrame-&gt;editor().selectedText());
</ins><span class="cx"> 
</span><span class="cx">     *result = BString(text).release();
</span><span class="cx">     return S_OK;
</span><span class="lines">@@ -1064,7 +1064,7 @@
</span><span class="cx">     if (!coreFrame)
</span><span class="cx">         return E_FAIL;
</span><span class="cx"> 
</span><del>-    if (!coreFrame-&gt;editor()-&gt;command(&quot;SelectAll&quot;).execute())
</del><ins>+    if (!coreFrame-&gt;editor().command(&quot;SelectAll&quot;).execute())
</ins><span class="cx">         return E_FAIL;
</span><span class="cx"> 
</span><span class="cx">     return S_OK;
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebView.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebView.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/win/WebView.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -1812,11 +1812,11 @@
</span><span class="cx">     Frame* frame = m_page-&gt;focusController()-&gt;focusedOrMainFrame();
</span><span class="cx">     switch (LOWORD(wParam)) {
</span><span class="cx">         case SelectAll:
</span><del>-            return frame-&gt;editor()-&gt;command(&quot;SelectAll&quot;).execute();
</del><ins>+            return frame-&gt;editor().command(&quot;SelectAll&quot;).execute();
</ins><span class="cx">         case Undo:
</span><del>-            return frame-&gt;editor()-&gt;command(&quot;Undo&quot;).execute();
</del><ins>+            return frame-&gt;editor().command(&quot;Undo&quot;).execute();
</ins><span class="cx">         case Redo:
</span><del>-            return frame-&gt;editor()-&gt;command(&quot;Redo&quot;).execute();
</del><ins>+            return frame-&gt;editor().command(&quot;Redo&quot;).execute();
</ins><span class="cx">     }
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="lines">@@ -1963,7 +1963,7 @@
</span><span class="cx">     if (!keyEvent || keyEvent-&gt;isSystemKey())  // do not treat this as text input if it's a system key event
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    Editor::Command command = frame-&gt;editor()-&gt;command(interpretKeyEvent(evt));
</del><ins>+    Editor::Command command = frame-&gt;editor().command(interpretKeyEvent(evt));
</ins><span class="cx"> 
</span><span class="cx">     if (keyEvent-&gt;type() == PlatformEvent::RawKeyDown) {
</span><span class="cx">         // WebKit doesn't have enough information about mode to decide how commands that just insert text if executed via Editor should be treated,
</span><span class="lines">@@ -1979,7 +1979,7 @@
</span><span class="cx">     if (evt-&gt;charCode() &lt; ' ')
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    return frame-&gt;editor()-&gt;insertText(evt-&gt;keyEvent()-&gt;text(), evt);
</del><ins>+    return frame-&gt;editor().insertText(evt-&gt;keyEvent()-&gt;text(), evt);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool WebView::keyDown(WPARAM virtualKeyCode, LPARAM keyData, bool systemKeyDown)
</span><span class="lines">@@ -3429,7 +3429,7 @@
</span><span class="cx"> 
</span><span class="cx"> HRESULT STDMETHODCALLTYPE WebView::executeCoreCommandByName(BSTR name, BSTR value)
</span><span class="cx"> {
</span><del>-    m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor()-&gt;command(toString(name)).execute(toString(value));
</del><ins>+    m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor().command(toString(name)).execute(toString(value));
</ins><span class="cx"> 
</span><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="lines">@@ -3656,7 +3656,7 @@
</span><span class="cx">     if (!focusedFrame)
</span><span class="cx">         return E_FAIL;
</span><span class="cx"> 
</span><del>-    String frameSelectedText = focusedFrame-&gt;editor()-&gt;selectedText();
</del><ins>+    String frameSelectedText = focusedFrame-&gt;editor().selectedText();
</ins><span class="cx">     *text = SysAllocStringLen(frameSelectedText.characters(), frameSelectedText.length());
</span><span class="cx">     if (!*text &amp;&amp; frameSelectedText.length())
</span><span class="cx">         return E_OUTOFMEMORY;
</span><span class="lines">@@ -4241,38 +4241,38 @@
</span><span class="cx"> HRESULT STDMETHODCALLTYPE WebView::cutEnabled( 
</span><span class="cx">         /* [retval][out] */ BOOL* enabled)
</span><span class="cx"> {
</span><del>-    Editor* editor = m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor();
-    *enabled = editor-&gt;canCut() || editor-&gt;canDHTMLCut();
</del><ins>+    Editor&amp; editor = m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor();
+    *enabled = editor.canCut() || editor.canDHTMLCut();
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> HRESULT STDMETHODCALLTYPE WebView::copyEnabled( 
</span><span class="cx">         /* [retval][out] */ BOOL* enabled)
</span><span class="cx"> {
</span><del>-    Editor* editor = m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor();
-    *enabled = editor-&gt;canCopy() || editor-&gt;canDHTMLCopy();
</del><ins>+    Editor&amp; editor = m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor();
+    *enabled = editor.canCopy() || editor.canDHTMLCopy();
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> HRESULT STDMETHODCALLTYPE WebView::pasteEnabled( 
</span><span class="cx">         /* [retval][out] */ BOOL* enabled)
</span><span class="cx"> {
</span><del>-    Editor* editor = m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor();
-    *enabled = editor-&gt;canPaste() || editor-&gt;canDHTMLPaste();
</del><ins>+    Editor&amp; editor = m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor();
+    *enabled = editor.canPaste() || editor.canDHTMLPaste();
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> HRESULT STDMETHODCALLTYPE WebView::deleteEnabled( 
</span><span class="cx">         /* [retval][out] */ BOOL* enabled)
</span><span class="cx"> {
</span><del>-    *enabled = m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor()-&gt;canDelete();
</del><ins>+    *enabled = m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor().canDelete();
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> HRESULT STDMETHODCALLTYPE WebView::editingEnabled( 
</span><span class="cx">         /* [retval][out] */ BOOL* enabled)
</span><span class="cx"> {
</span><del>-    *enabled = m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor()-&gt;canEdit();
</del><ins>+    *enabled = m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor().canEdit();
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -4324,7 +4324,7 @@
</span><span class="cx">         /* [in] */ BSTR text)
</span><span class="cx"> {
</span><span class="cx">     Position start = m_page-&gt;mainFrame()-&gt;selection()-&gt;selection().start();
</span><del>-    m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor()-&gt;insertText(toString(text), 0);
</del><ins>+    m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor().insertText(toString(text), 0);
</ins><span class="cx">     m_page-&gt;mainFrame()-&gt;selection()-&gt;setBase(start);
</span><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="lines">@@ -4345,8 +4345,8 @@
</span><span class="cx">     
</span><span class="cx"> HRESULT STDMETHODCALLTYPE WebView::deleteSelection( void)
</span><span class="cx"> {
</span><del>-    Editor* editor = m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor();
-    editor-&gt;deleteSelectionWithSmartDelete(editor-&gt;canSmartCopyOrDelete());
</del><ins>+    Editor&amp; editor = m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor();
+    editor.deleteSelectionWithSmartDelete(editor.canSmartCopyOrDelete());
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -4368,28 +4368,28 @@
</span><span class="cx"> HRESULT STDMETHODCALLTYPE WebView::copy( 
</span><span class="cx">         /* [in] */ IUnknown* /*sender*/)
</span><span class="cx"> {
</span><del>-    m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor()-&gt;command(&quot;Copy&quot;).execute();
</del><ins>+    m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor().command(&quot;Copy&quot;).execute();
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> HRESULT STDMETHODCALLTYPE WebView::cut( 
</span><span class="cx">         /* [in] */ IUnknown* /*sender*/)
</span><span class="cx"> {
</span><del>-    m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor()-&gt;command(&quot;Cut&quot;).execute();
</del><ins>+    m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor().command(&quot;Cut&quot;).execute();
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> HRESULT STDMETHODCALLTYPE WebView::paste( 
</span><span class="cx">         /* [in] */ IUnknown* /*sender*/)
</span><span class="cx"> {
</span><del>-    m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor()-&gt;command(&quot;Paste&quot;).execute();
</del><ins>+    m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor().command(&quot;Paste&quot;).execute();
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> HRESULT STDMETHODCALLTYPE WebView::copyURL( 
</span><span class="cx">         /* [in] */ BSTR url)
</span><span class="cx"> {
</span><del>-    m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor()-&gt;copyURL(MarshallingHelpers::BSTRToKURL(url), &quot;&quot;);
</del><ins>+    m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor().copyURL(MarshallingHelpers::BSTRToKURL(url), &quot;&quot;);
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -4411,7 +4411,7 @@
</span><span class="cx"> HRESULT STDMETHODCALLTYPE WebView::delete_( 
</span><span class="cx">         /* [in] */ IUnknown* /*sender*/)
</span><span class="cx"> {
</span><del>-    m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor()-&gt;command(&quot;Delete&quot;).execute();
</del><ins>+    m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor().command(&quot;Delete&quot;).execute();
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx">     
</span><span class="lines">@@ -4493,7 +4493,7 @@
</span><span class="cx">         return E_FAIL;
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    core(m_mainFrame)-&gt;editor()-&gt;advanceToNextMisspelling();
</del><ins>+    core(m_mainFrame)-&gt;editor().advanceToNextMisspelling();
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx">     
</span><span class="lines">@@ -4512,7 +4512,7 @@
</span><span class="cx">         m_editingDelegate-&gt;showSpellingUI(FALSE);
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    core(m_mainFrame)-&gt;editor()-&gt;advanceToNextMisspelling(true);
</del><ins>+    core(m_mainFrame)-&gt;editor().advanceToNextMisspelling(true);
</ins><span class="cx">     m_editingDelegate-&gt;showSpellingUI(TRUE);
</span><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="lines">@@ -5339,7 +5339,7 @@
</span><span class="cx"> HRESULT STDMETHODCALLTYPE WebView::clearUndoRedoOperations()
</span><span class="cx"> {
</span><span class="cx">     if (Frame* frame = m_page-&gt;focusController()-&gt;focusedOrMainFrame())
</span><del>-        frame-&gt;editor()-&gt;clearUndoRedoOperations();
</del><ins>+        frame-&gt;editor().clearUndoRedoOperations();
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -5454,7 +5454,7 @@
</span><span class="cx">     if (RefPtr&lt;Range&gt; range = targetFrame-&gt;selection()-&gt;selection().toNormalizedRange()) {
</span><span class="cx">         ExceptionCode ec = 0;
</span><span class="cx">         RefPtr&lt;Range&gt; tempRange = range-&gt;cloneRange(ec);
</span><del>-        caret = targetFrame-&gt;editor()-&gt;firstRectForRange(tempRange.get());
</del><ins>+        caret = targetFrame-&gt;editor().firstRectForRange(tempRange.get());
</ins><span class="cx">     }
</span><span class="cx">     caret = targetFrame-&gt;view()-&gt;contentsToWindow(caret);
</span><span class="cx">     CANDIDATEFORM form;
</span><span class="lines">@@ -5472,7 +5472,7 @@
</span><span class="cx"> void WebView::resetIME(Frame* targetFrame)
</span><span class="cx"> {
</span><span class="cx">     if (targetFrame)
</span><del>-        targetFrame-&gt;editor()-&gt;cancelComposition();
</del><ins>+        targetFrame-&gt;editor().cancelComposition();
</ins><span class="cx"> 
</span><span class="cx">     if (HIMC hInputContext = getIMMContext()) {
</span><span class="cx">         IMMDict::dict().notifyIME(hInputContext, NI_COMPOSITIONSTR, CPS_CANCEL, 0);
</span><span class="lines">@@ -5487,7 +5487,7 @@
</span><span class="cx">     if (!targetFrame)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (!targetFrame-&gt;editor()-&gt;cancelCompositionIfSelectionIsInvalid())
</del><ins>+    if (!targetFrame-&gt;editor().cancelCompositionIfSelectionIsInvalid())
</ins><span class="cx">         resetIME(targetFrame);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -5643,7 +5643,7 @@
</span><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     Frame* targetFrame = m_page-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    if (!targetFrame || !targetFrame-&gt;editor()-&gt;canEdit())
</del><ins>+    if (!targetFrame || !targetFrame-&gt;editor().canEdit())
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     prepareCandidateWindow(targetFrame, hInputContext);
</span><span class="lines">@@ -5653,7 +5653,7 @@
</span><span class="cx">         if (!getCompositionString(hInputContext, GCS_RESULTSTR, compositionString) &amp;&amp; lparam)
</span><span class="cx">             return true;
</span><span class="cx">         
</span><del>-        targetFrame-&gt;editor()-&gt;confirmComposition(compositionString);
</del><ins>+        targetFrame-&gt;editor().confirmComposition(compositionString);
</ins><span class="cx">     } else {
</span><span class="cx">         String compositionString;
</span><span class="cx">         if (!getCompositionString(hInputContext, GCS_COMPSTR, compositionString))
</span><span class="lines">@@ -5674,7 +5674,7 @@
</span><span class="cx"> 
</span><span class="cx">         int cursorPosition = LOWORD(IMMDict::dict().getCompositionString(hInputContext, GCS_CURSORPOS, 0, 0));
</span><span class="cx"> 
</span><del>-        targetFrame-&gt;editor()-&gt;setComposition(compositionString, underlines, cursorPosition, 0);
</del><ins>+        targetFrame-&gt;editor().setComposition(compositionString, underlines, cursorPosition, 0);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return true;
</span><span class="lines">@@ -5686,8 +5686,8 @@
</span><span class="cx">     // If the composition hasn't been confirmed yet, it needs to be cancelled.
</span><span class="cx">     // This happens after deleting the last character from inline input hole.
</span><span class="cx">     Frame* targetFrame = m_page-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    if (targetFrame &amp;&amp; targetFrame-&gt;editor()-&gt;hasComposition())
-        targetFrame-&gt;editor()-&gt;confirmComposition(String());
</del><ins>+    if (targetFrame &amp;&amp; targetFrame-&gt;editor().hasComposition())
+        targetFrame-&gt;editor().confirmComposition(String());
</ins><span class="cx"> 
</span><span class="cx">     if (m_inIMEComposition)
</span><span class="cx">         m_inIMEComposition--;
</span><span class="lines">@@ -5712,14 +5712,14 @@
</span><span class="cx"> 
</span><span class="cx"> LRESULT WebView::onIMERequestCharPosition(Frame* targetFrame, IMECHARPOSITION* charPos)
</span><span class="cx"> {
</span><del>-    if (charPos-&gt;dwCharPos &amp;&amp; !targetFrame-&gt;editor()-&gt;hasComposition())
</del><ins>+    if (charPos-&gt;dwCharPos &amp;&amp; !targetFrame-&gt;editor().hasComposition())
</ins><span class="cx">         return 0;
</span><span class="cx">     IntRect caret;
</span><del>-    if (RefPtr&lt;Range&gt; range = targetFrame-&gt;editor()-&gt;hasComposition() ? targetFrame-&gt;editor()-&gt;compositionRange() : targetFrame-&gt;selection()-&gt;selection().toNormalizedRange()) {
</del><ins>+    if (RefPtr&lt;Range&gt; range = targetFrame-&gt;editor().hasComposition() ? targetFrame-&gt;editor().compositionRange() : targetFrame-&gt;selection()-&gt;selection().toNormalizedRange()) {
</ins><span class="cx">         ExceptionCode ec = 0;
</span><span class="cx">         RefPtr&lt;Range&gt; tempRange = range-&gt;cloneRange(ec);
</span><span class="cx">         tempRange-&gt;setStart(tempRange-&gt;startContainer(ec), tempRange-&gt;startOffset(ec) + charPos-&gt;dwCharPos, ec);
</span><del>-        caret = targetFrame-&gt;editor()-&gt;firstRectForRange(tempRange.get());
</del><ins>+        caret = targetFrame-&gt;editor().firstRectForRange(tempRange.get());
</ins><span class="cx">     }
</span><span class="cx">     caret = targetFrame-&gt;view()-&gt;contentsToWindow(caret);
</span><span class="cx">     charPos-&gt;pt.x = caret.x();
</span><span class="lines">@@ -5752,7 +5752,7 @@
</span><span class="cx"> {
</span><span class="cx">     LOG(TextInput, &quot;onIMERequest %s&quot;, imeRequestName(request).latin1().data());
</span><span class="cx">     Frame* targetFrame = m_page-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    if (!targetFrame || !targetFrame-&gt;editor()-&gt;canEdit())
</del><ins>+    if (!targetFrame || !targetFrame-&gt;editor().canEdit())
</ins><span class="cx">         return 0;
</span><span class="cx"> 
</span><span class="cx">     switch (request) {
</span><span class="lines">@@ -6883,14 +6883,14 @@
</span><span class="cx">         return E_FAIL;
</span><span class="cx"> 
</span><span class="cx">     Frame* frame = m_page-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    if (!frame || !frame-&gt;editor()-&gt;canEdit())
</del><ins>+    if (!frame || !frame-&gt;editor().canEdit())
</ins><span class="cx">         return E_FAIL;
</span><span class="cx"> 
</span><span class="cx">     String compositionStr = toString(composition);
</span><span class="cx"> 
</span><span class="cx">     Vector&lt;CompositionUnderline&gt; underlines;
</span><span class="cx">     underlines.append(CompositionUnderline(0, compositionStr.length(), Color(Color::black), false));
</span><del>-    frame-&gt;editor()-&gt;setComposition(compositionStr, underlines, from, from + length);
</del><ins>+    frame-&gt;editor().setComposition(compositionStr, underlines, from, from + length);
</ins><span class="cx"> 
</span><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="lines">@@ -6904,7 +6904,7 @@
</span><span class="cx">      if (!frame)
</span><span class="cx">         return E_FAIL;
</span><span class="cx"> 
</span><del>-    *result = frame &amp;&amp; frame-&gt;editor()-&gt;hasComposition();
</del><ins>+    *result = frame &amp;&amp; frame-&gt;editor().hasComposition();
</ins><span class="cx"> 
</span><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="lines">@@ -6915,15 +6915,15 @@
</span><span class="cx">         return E_FAIL;
</span><span class="cx"> 
</span><span class="cx">     Frame* frame = m_page-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    if (!frame || !frame-&gt;editor()-&gt;canEdit())
</del><ins>+    if (!frame || !frame-&gt;editor().canEdit())
</ins><span class="cx">         return E_FAIL;
</span><span class="cx"> 
</span><span class="cx">     String compositionStr = toString(composition);
</span><span class="cx"> 
</span><span class="cx">     if (compositionStr.isNull())
</span><del>-        frame-&gt;editor()-&gt;confirmComposition();
</del><ins>+        frame-&gt;editor().confirmComposition();
</ins><span class="cx"> 
</span><del>-    frame-&gt;editor()-&gt;confirmComposition(compositionStr);
</del><ins>+    frame-&gt;editor().confirmComposition(compositionStr);
</ins><span class="cx"> 
</span><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="lines">@@ -6934,10 +6934,10 @@
</span><span class="cx">         return E_FAIL;
</span><span class="cx"> 
</span><span class="cx">     Frame* frame = m_page-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    if (!frame || !frame-&gt;editor()-&gt;canEdit())
</del><ins>+    if (!frame || !frame-&gt;editor().canEdit())
</ins><span class="cx">         return E_FAIL;
</span><span class="cx"> 
</span><del>-    RefPtr&lt;Range&gt; range = frame-&gt;editor()-&gt;compositionRange();
</del><ins>+    RefPtr&lt;Range&gt; range = frame-&gt;editor().compositionRange();
</ins><span class="cx"> 
</span><span class="cx">     if (!range)
</span><span class="cx">         return E_FAIL;
</span><span class="lines">@@ -6978,7 +6978,7 @@
</span><span class="cx">     ASSERT(range-&gt;startContainer());
</span><span class="cx">     ASSERT(range-&gt;endContainer());
</span><span class="cx">      
</span><del>-    IntRect rect = frame-&gt;editor()-&gt;firstRectForRange(range.get());
</del><ins>+    IntRect rect = frame-&gt;editor().firstRectForRange(range.get());
</ins><span class="cx">     resultIntRect = frame-&gt;view()-&gt;contentsToWindow(rect);
</span><span class="cx"> 
</span><span class="cx">     resultRect-&gt;left = resultIntRect.x();
</span><span class="lines">@@ -6998,7 +6998,7 @@
</span><span class="cx">     if (!frame)
</span><span class="cx">         return E_FAIL;
</span><span class="cx"> 
</span><del>-    RefPtr&lt;Range&gt; range = frame-&gt;editor()-&gt;selectedRange();
</del><ins>+    RefPtr&lt;Range&gt; range = frame-&gt;editor().selectedRange();
</ins><span class="cx"> 
</span><span class="cx">     size_t locationSize;
</span><span class="cx">     size_t lengthSize;
</span></span></pre></div>
<a id="trunkSourceWebKitwinceChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/wince/ChangeLog (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/wince/ChangeLog        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/wince/ChangeLog        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2013-05-13  Anders Carlsson  &lt;andersca@apple.com&gt;
+
+        Frame::editor() should return a reference
+        https://bugs.webkit.org/show_bug.cgi?id=116037
+
+        Reviewed by Darin Adler.
+
+        * WebCoreSupport/EditorClientWinCE.cpp:
+        (WebKit::EditorClientWinCE::handleEditingKeyboardEvent):
+
</ins><span class="cx"> 2013-04-29  Patrick Gansterer  &lt;paroga@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed build fix.
</span></span></pre></div>
<a id="trunkSourceWebKitwinceWebCoreSupportEditorClientWinCEcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/wince/WebCoreSupport/EditorClientWinCE.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/wince/WebCoreSupport/EditorClientWinCE.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit/wince/WebCoreSupport/EditorClientWinCE.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -395,7 +395,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Editor::Command command = frame-&gt;editor()-&gt;command(interpretKeyEvent(event));
</del><ins>+    Editor::Command command = frame-&gt;editor().command(interpretKeyEvent(event));
</ins><span class="cx"> 
</span><span class="cx">     if (keyEvent-&gt;type() == PlatformEvent::RawKeyDown) {
</span><span class="cx">         // WebKit doesn't have enough information about mode to decide how commands that just insert text if executed via Editor should be treated,
</span><span class="lines">@@ -415,7 +415,7 @@
</span><span class="cx">     if (keyEvent-&gt;ctrlKey() || keyEvent-&gt;altKey())
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    return frame-&gt;editor()-&gt;insertText(event-&gt;keyEvent()-&gt;text(), event);
</del><ins>+    return frame-&gt;editor().insertText(event-&gt;keyEvent()-&gt;text(), event);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void EditorClientWinCE::handleKeyboardEvent(KeyboardEvent* event)
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit2/ChangeLog        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -1,3 +1,62 @@
</span><ins>+2013-05-13  Anders Carlsson  &lt;andersca@apple.com&gt;
+
+        Frame::editor() should return a reference
+        https://bugs.webkit.org/show_bug.cgi?id=116037
+
+        Reviewed by Darin Adler.
+
+        * WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
+        (WebKit::WebContextMenuClient::searchWithGoogle):
+        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
+        (WebKit::WebEditorClient::updateGlobalSelection):
+        * WebProcess/WebCoreSupport/efl/WebEditorClientEfl.cpp:
+        (WebKit::WebEditorClient::handleInputMethodKeydown):
+        * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
+        (WebKit::WebEditorClient::executePendingEditorCommands):
+        (WebKit::WebEditorClient::handleKeyboardEvent):
+        * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
+        (WebKit::WebContextMenuClient::searchWithGoogle):
+        (WebKit::WebContextMenuClient::searchWithSpotlight):
+        * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
+        (WebKit::changeWordCase):
+        * WebProcess/WebPage/WebFrame.cpp:
+        (WebKit::WebFrame::selectionAsString):
+        (WebKit::WebFrame::setTextDirection):
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::editorState):
+        (WebKit::WebPage::executeEditingCommand):
+        (WebKit::WebPage::isEditingCommandEnabled):
+        (WebKit::WebPage::validateCommand):
+        (WebKit::WebPage::handleEditingKeyboardEvent):
+        (WebKit::WebPage::advanceToNextMisspelling):
+        (WebKit::WebPage::uppercaseWord):
+        (WebKit::WebPage::lowercaseWord):
+        (WebKit::WebPage::capitalizeWord):
+        (WebKit::WebPage::replaceSelectionWithText):
+        (WebKit::WebPage::handleAlternativeTextUIResult):
+        (WebKit::WebPage::setCompositionForTesting):
+        (WebKit::WebPage::hasCompositionForTesting):
+        (WebKit::WebPage::confirmCompositionForTesting):
+        (WebKit::WebPage::setComposition):
+        (WebKit::WebPage::cancelComposition):
+        * WebProcess/WebPage/efl/WebPageEfl.cpp:
+        (WebKit::WebPage::confirmComposition):
+        (WebKit::WebPage::setComposition):
+        (WebKit::WebPage::cancelComposition):
+        * WebProcess/WebPage/mac/WebPageMac.mm:
+        (WebKit::WebPage::executeKeypressCommandsInternal):
+        (WebKit::WebPage::handleEditingKeyboardEvent):
+        (WebKit::WebPage::setComposition):
+        (WebKit::WebPage::confirmComposition):
+        (WebKit::WebPage::cancelComposition):
+        (WebKit::WebPage::insertText):
+        (WebKit::WebPage::insertDictatedText):
+        (WebKit::WebPage::getMarkedRange):
+        (WebKit::WebPage::firstRectForCharacterRange):
+        (WebKit::WebPage::readSelectionFromPasteboard):
+        (WebKit::WebPage::getStringSelectionForPasteboard):
+        (WebKit::WebPage::getDataSelectionForPasteboard):
+
</ins><span class="cx"> 2013-05-15  Anders Carlsson  &lt;andersca@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Need a way for NPAPI plug-ins to open preference panes
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebContextMenuClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebContextMenuClient.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebContextMenuClient.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebContextMenuClient.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx"> #if !PLATFORM(MAC)
</span><span class="cx"> void WebContextMenuClient::searchWithGoogle(const Frame* frame)
</span><span class="cx"> {
</span><del>-    String searchString = frame-&gt;editor()-&gt;selectedText();
</del><ins>+    String searchString = frame-&gt;editor().selectedText();
</ins><span class="cx">     searchString.stripWhiteSpace();
</span><span class="cx">     String encoded = encodeWithURLEscapeSequences(searchString);
</span><span class="cx">     encoded.replace(&quot;%20&quot;, &quot;+&quot;);
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebEditorClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -210,7 +210,7 @@
</span><span class="cx">     if (supportsGlobalSelection() &amp;&amp; frame-&gt;selection()-&gt;isRange()) {
</span><span class="cx">         bool oldSelectionMode = Pasteboard::generalPasteboard()-&gt;isSelectionMode();
</span><span class="cx">         Pasteboard::generalPasteboard()-&gt;setSelectionMode(true);
</span><del>-        Pasteboard::generalPasteboard()-&gt;writeSelection(frame-&gt;selection()-&gt;toNormalizedRange().get(), frame-&gt;editor()-&gt;canSmartCopyOrDelete(), frame);
</del><ins>+        Pasteboard::generalPasteboard()-&gt;writeSelection(frame-&gt;selection()-&gt;toNormalizedRange().get(), frame-&gt;editor().canSmartCopyOrDelete(), frame);
</ins><span class="cx">         Pasteboard::generalPasteboard()-&gt;setSelectionMode(oldSelectionMode);
</span><span class="cx">     }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupporteflWebEditorClientEflcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/efl/WebEditorClientEfl.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/efl/WebEditorClientEfl.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/efl/WebEditorClientEfl.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx"> void WebEditorClient::handleInputMethodKeydown(KeyboardEvent* event)
</span><span class="cx"> {
</span><span class="cx">     Frame* frame = m_page-&gt;corePage()-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    if (!frame || !frame-&gt;editor()-&gt;canEdit())
</del><ins>+    if (!frame || !frame-&gt;editor().canEdit())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // FIXME: sending sync message might make input lagging.
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportgtkWebEditorClientGtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx"> {
</span><span class="cx">     Vector&lt;Editor::Command&gt; commands;
</span><span class="cx">     for (size_t i = 0; i &lt; pendingEditorCommands.size(); i++) {
</span><del>-        Editor::Command command = frame-&gt;editor()-&gt;command(pendingEditorCommands.at(i).utf8().data());
</del><ins>+        Editor::Command command = frame-&gt;editor().command(pendingEditorCommands.at(i).utf8().data());
</ins><span class="cx">         if (command.isTextInsertion() &amp;&amp; !allowTextInsertion)
</span><span class="cx">             return false;
</span><span class="cx"> 
</span><span class="lines">@@ -95,14 +95,14 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         // Only allow text insertion commands if the current node is editable.
</span><del>-        if (executePendingEditorCommands(frame, pendingEditorCommands, frame-&gt;editor()-&gt;canEdit())) {
</del><ins>+        if (executePendingEditorCommands(frame, pendingEditorCommands, frame-&gt;editor().canEdit())) {
</ins><span class="cx">             event-&gt;setDefaultHandled();
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // Don't allow text insertion for nodes that cannot edit.
</span><del>-    if (!frame-&gt;editor()-&gt;canEdit())
</del><ins>+    if (!frame-&gt;editor().canEdit())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // This is just a normal text insertion, so wait to execute the insertion
</span><span class="lines">@@ -119,7 +119,7 @@
</span><span class="cx">     if (platformEvent-&gt;ctrlKey() || platformEvent-&gt;altKey())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (frame-&gt;editor()-&gt;insertText(platformEvent-&gt;text(), event))
</del><ins>+    if (frame-&gt;editor().insertText(platformEvent-&gt;text(), event))
</ins><span class="cx">         event-&gt;setDefaultHandled();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportmacWebContextMenuClientMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -63,7 +63,7 @@
</span><span class="cx"> 
</span><span class="cx"> void WebContextMenuClient::searchWithGoogle(const Frame* frame)
</span><span class="cx"> {
</span><del>-    String searchString = frame-&gt;editor()-&gt;selectedText();
</del><ins>+    String searchString = frame-&gt;editor().selectedText();
</ins><span class="cx">     searchString.stripWhiteSpace();
</span><span class="cx">     
</span><span class="cx">     m_page-&gt;send(Messages::WebPageProxy::SearchTheWeb(searchString));
</span><span class="lines">@@ -85,7 +85,7 @@
</span><span class="cx">     if (!selectionFrame)
</span><span class="cx">         selectionFrame = mainFrame;
</span><span class="cx"> 
</span><del>-    String selectedString = selectionFrame-&gt;displayStringModifiedByEncoding(selectionFrame-&gt;editor()-&gt;selectedText());
</del><ins>+    String selectedString = selectionFrame-&gt;displayStringModifiedByEncoding(selectionFrame-&gt;editor().selectedText());
</ins><span class="cx">     
</span><span class="cx">     if (selectedString.isEmpty())
</span><span class="cx">         return;
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportmacWebEditorClientMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -136,12 +136,12 @@
</span><span class="cx"> static void changeWordCase(WebPage* page, SEL selector)
</span><span class="cx"> {
</span><span class="cx">     Frame* frame = page-&gt;corePage()-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    if (!frame-&gt;editor()-&gt;canEdit())
</del><ins>+    if (!frame-&gt;editor().canEdit())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    frame-&gt;editor()-&gt;command(&quot;selectWord&quot;).execute();
</del><ins>+    frame-&gt;editor().command(&quot;selectWord&quot;).execute();
</ins><span class="cx"> 
</span><del>-    NSString *selectedString = frame-&gt;displayStringModifiedByEncoding(frame-&gt;editor()-&gt;selectedText());
</del><ins>+    NSString *selectedString = frame-&gt;displayStringModifiedByEncoding(frame-&gt;editor().selectedText());
</ins><span class="cx">     page-&gt;replaceSelectionWithText(frame, [selectedString performSelector:selector]);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebFramecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -324,7 +324,7 @@
</span><span class="cx">     if (!m_coreFrame)
</span><span class="cx">         return String();
</span><span class="cx"> 
</span><del>-    return m_coreFrame-&gt;displayStringModifiedByEncoding(m_coreFrame-&gt;editor()-&gt;selectedText());
</del><ins>+    return m_coreFrame-&gt;displayStringModifiedByEncoding(m_coreFrame-&gt;editor().selectedText());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> IntSize WebFrame::size() const
</span><span class="lines">@@ -700,15 +700,15 @@
</span><span class="cx"> 
</span><span class="cx"> void WebFrame::setTextDirection(const String&amp; direction)
</span><span class="cx"> {
</span><del>-    if (!m_coreFrame || !m_coreFrame-&gt;editor())
</del><ins>+    if (!m_coreFrame)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (direction == &quot;auto&quot;)
</span><del>-        m_coreFrame-&gt;editor()-&gt;setBaseWritingDirection(NaturalWritingDirection);
</del><ins>+        m_coreFrame-&gt;editor().setBaseWritingDirection(NaturalWritingDirection);
</ins><span class="cx">     else if (direction == &quot;ltr&quot;)
</span><del>-        m_coreFrame-&gt;editor()-&gt;setBaseWritingDirection(LeftToRightWritingDirection);
</del><ins>+        m_coreFrame-&gt;editor().setBaseWritingDirection(LeftToRightWritingDirection);
</ins><span class="cx">     else if (direction == &quot;rtl&quot;)
</span><del>-        m_coreFrame-&gt;editor()-&gt;setBaseWritingDirection(RightToLeftWritingDirection);
</del><ins>+        m_coreFrame-&gt;editor().setBaseWritingDirection(RightToLeftWritingDirection);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -601,8 +601,8 @@
</span><span class="cx">     result.isContentEditable = frame-&gt;selection()-&gt;isContentEditable();
</span><span class="cx">     result.isContentRichlyEditable = frame-&gt;selection()-&gt;isContentRichlyEditable();
</span><span class="cx">     result.isInPasswordField = frame-&gt;selection()-&gt;isInPasswordField();
</span><del>-    result.hasComposition = frame-&gt;editor()-&gt;hasComposition();
-    result.shouldIgnoreCompositionSelectionChange = frame-&gt;editor()-&gt;ignoreCompositionSelectionChange();
</del><ins>+    result.hasComposition = frame-&gt;editor().hasComposition();
+    result.shouldIgnoreCompositionSelectionChange = frame-&gt;editor().ignoreCompositionSelectionChange();
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(QT)
</span><span class="cx">     size_t location = 0;
</span><span class="lines">@@ -641,8 +641,8 @@
</span><span class="cx">         result.editorRect = frame-&gt;view()-&gt;contentsToWindow(selectionRoot-&gt;pixelSnappedBoundingBox());
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;Range&gt; range;
</span><del>-    if (result.hasComposition &amp;&amp; (range = frame-&gt;editor()-&gt;compositionRange())) {
-        frame-&gt;editor()-&gt;getCompositionSelection(result.anchorPosition, result.cursorPosition);
</del><ins>+    if (result.hasComposition &amp;&amp; (range = frame-&gt;editor().compositionRange())) {
+        frame-&gt;editor().getCompositionSelection(result.anchorPosition, result.cursorPosition);
</ins><span class="cx"> 
</span><span class="cx">         result.compositionRect = frame-&gt;view()-&gt;contentsToWindow(range-&gt;boundingBox());
</span><span class="cx">     }
</span><span class="lines">@@ -657,7 +657,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (range)
</span><del>-        result.cursorRect = frame-&gt;view()-&gt;contentsToWindow(frame-&gt;editor()-&gt;firstRectForRange(range.get()));
</del><ins>+        result.cursorRect = frame-&gt;view()-&gt;contentsToWindow(frame-&gt;editor().firstRectForRange(range.get()));
</ins><span class="cx"> 
</span><span class="cx">     // FIXME: We should only transfer innerText when it changes and do this on the UI side.
</span><span class="cx">     if (result.isContentEditable &amp;&amp; !result.isInPasswordField) {
</span><span class="lines">@@ -768,7 +768,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    frame-&gt;editor()-&gt;command(commandName).execute(argument);
</del><ins>+    frame-&gt;editor().command(commandName).execute(argument);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool WebPage::isEditingCommandEnabled(const String&amp; commandName)
</span><span class="lines">@@ -780,7 +780,7 @@
</span><span class="cx">     if (PluginView* pluginView = focusedPluginViewForFrame(frame))
</span><span class="cx">         return pluginView-&gt;isEditingCommandEnabled(commandName);
</span><span class="cx">     
</span><del>-    Editor::Command command = frame-&gt;editor()-&gt;command(commandName);
</del><ins>+    Editor::Command command = frame-&gt;editor().command(commandName);
</ins><span class="cx">     return command.isSupported() &amp;&amp; command.isEnabled();
</span><span class="cx"> }
</span><span class="cx">     
</span><span class="lines">@@ -1778,7 +1778,7 @@
</span><span class="cx">         if (PluginView* pluginView = focusedPluginViewForFrame(frame))
</span><span class="cx">             isEnabled = pluginView-&gt;isEditingCommandEnabled(commandName);
</span><span class="cx">         else {
</span><del>-            Editor::Command command = frame-&gt;editor()-&gt;command(commandName);
</del><ins>+            Editor::Command command = frame-&gt;editor().command(commandName);
</ins><span class="cx">             state = command.state();
</span><span class="cx">             isEnabled = command.isSupported() &amp;&amp; command.isEnabled();
</span><span class="cx">         }
</span><span class="lines">@@ -2560,7 +2560,7 @@
</span><span class="cx">     if (!keyEvent)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    Editor::Command command = frame-&gt;editor()-&gt;command(interpretKeyEvent(evt));
</del><ins>+    Editor::Command command = frame-&gt;editor().command(interpretKeyEvent(evt));
</ins><span class="cx"> 
</span><span class="cx">     if (keyEvent-&gt;type() == PlatformEvent::RawKeyDown) {
</span><span class="cx">         // WebKit doesn't have enough information about mode to decide how commands that just insert text if executed via Editor should be treated,
</span><span class="lines">@@ -2573,14 +2573,14 @@
</span><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     // Don't allow text insertion for nodes that cannot edit.
</span><del>-    if (!frame-&gt;editor()-&gt;canEdit())
</del><ins>+    if (!frame-&gt;editor().canEdit())
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     // Don't insert null or control characters as they can result in unexpected behaviour
</span><span class="cx">     if (evt-&gt;charCode() &lt; ' ')
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    return frame-&gt;editor()-&gt;insertText(evt-&gt;keyEvent()-&gt;text(), evt);
</del><ins>+    return frame-&gt;editor().insertText(evt-&gt;keyEvent()-&gt;text(), evt);
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -2859,7 +2859,7 @@
</span><span class="cx"> void WebPage::advanceToNextMisspelling(bool startBeforeSelection)
</span><span class="cx"> {
</span><span class="cx">     Frame* frame = m_page-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    frame-&gt;editor()-&gt;advanceToNextMisspelling(startBeforeSelection);
</del><ins>+    frame-&gt;editor().advanceToNextMisspelling(startBeforeSelection);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPage::changeSpellingToWord(const String&amp; word)
</span><span class="lines">@@ -2886,17 +2886,17 @@
</span><span class="cx"> #if USE(APPKIT)
</span><span class="cx"> void WebPage::uppercaseWord()
</span><span class="cx"> {
</span><del>-    m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor()-&gt;uppercaseWord();
</del><ins>+    m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor().uppercaseWord();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPage::lowercaseWord()
</span><span class="cx"> {
</span><del>-    m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor()-&gt;lowercaseWord();
</del><ins>+    m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor().lowercaseWord();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPage::capitalizeWord()
</span><span class="cx"> {
</span><del>-    m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor()-&gt;capitalizeWord();
</del><ins>+    m_page-&gt;focusController()-&gt;focusedOrMainFrame()-&gt;editor().capitalizeWord();
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx">     
</span><span class="lines">@@ -2933,7 +2933,7 @@
</span><span class="cx"> {
</span><span class="cx">     bool selectReplacement = true;
</span><span class="cx">     bool smartReplace = false;
</span><del>-    return frame-&gt;editor()-&gt;replaceSelectionWithText(text, selectReplacement, smartReplace);
</del><ins>+    return frame-&gt;editor().replaceSelectionWithText(text, selectReplacement, smartReplace);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPage::clearSelection()
</span><span class="lines">@@ -3596,7 +3596,7 @@
</span><span class="cx">     Frame* frame = m_page-&gt;focusController()-&gt;focusedOrMainFrame();
</span><span class="cx">     if (!frame)
</span><span class="cx">         return;
</span><del>-    frame-&gt;editor()-&gt;handleAlternativeTextUIResult(result);
</del><ins>+    frame-&gt;editor().handleAlternativeTextUIResult(result);
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -3618,29 +3618,29 @@
</span><span class="cx"> void WebPage::setCompositionForTesting(const String&amp; compositionString, uint64_t from, uint64_t length)
</span><span class="cx"> {
</span><span class="cx">     Frame* frame = m_page-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    if (!frame || !frame-&gt;editor()-&gt;canEdit())
</del><ins>+    if (!frame || !frame-&gt;editor().canEdit())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     Vector&lt;CompositionUnderline&gt; underlines;
</span><span class="cx">     underlines.append(CompositionUnderline(0, compositionString.length(), Color(Color::black), false));
</span><del>-    frame-&gt;editor()-&gt;setComposition(compositionString, underlines, from, from + length);
</del><ins>+    frame-&gt;editor().setComposition(compositionString, underlines, from, from + length);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool WebPage::hasCompositionForTesting()
</span><span class="cx"> {
</span><span class="cx">     Frame* frame = m_page-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    return frame &amp;&amp; frame-&gt;editor()-&gt;hasComposition();
</del><ins>+    return frame &amp;&amp; frame-&gt;editor().hasComposition();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPage::confirmCompositionForTesting(const String&amp; compositionString)
</span><span class="cx"> {
</span><span class="cx">     Frame* frame = m_page-&gt;focusController()-&gt;focusedOrMainFrame();
</span><del>-    if (!frame || !frame-&gt;editor()-&gt;canEdit())
</del><ins>+    if (!frame || !frame-&gt;editor().canEdit())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (compositionString.isNull())
</span><del>-        frame-&gt;editor()-&gt;confirmComposition();
-    frame-&gt;editor()-&gt;confirmComposition(compositionString);
</del><ins>+        frame-&gt;editor().confirmComposition();
+    frame-&gt;editor().confirmComposition(compositionString);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPage::numWheelEventHandlersChanged(unsigned numWheelEventHandlers)
</span><span class="lines">@@ -3796,19 +3796,19 @@
</span><span class="cx"> {
</span><span class="cx">     Frame* targetFrame = page-&gt;corePage()-&gt;focusController()-&gt;focusedOrMainFrame();
</span><span class="cx"> 
</span><del>-    if (!targetFrame || !targetFrame-&gt;editor())
</del><ins>+    if (!targetFrame)
</ins><span class="cx">         return 0;
</span><span class="cx"> 
</span><del>-    Editor* editor = targetFrame-&gt;editor();
-    if (!editor-&gt;canEdit())
</del><ins>+    Editor&amp; editor = targetFrame-&gt;editor();
+    if (!editor.canEdit())
</ins><span class="cx">         return 0;
</span><span class="cx"> 
</span><del>-    if (editor-&gt;hasComposition()) {
</del><ins>+    if (editor.hasComposition()) {
</ins><span class="cx">         // We should verify the parent node of this IME composition node are
</span><span class="cx">         // editable because JavaScript may delete a parent node of the composition
</span><span class="cx">         // node. In this case, WebKit crashes while deleting texts from the parent
</span><span class="cx">         // node, which doesn't exist any longer.
</span><del>-        if (PassRefPtr&lt;Range&gt; range = editor-&gt;compositionRange()) {
</del><ins>+        if (PassRefPtr&lt;Range&gt; range = editor.compositionRange()) {
</ins><span class="cx">             Node* node = range-&gt;startContainer();
</span><span class="cx">             if (!node || !node-&gt;isContentEditable())
</span><span class="cx">                 return 0;
</span><span class="lines">@@ -3825,8 +3825,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Editor* editor = targetFrame-&gt;editor();
-    editor-&gt;confirmComposition(compositionString);
</del><ins>+    targetFrame-&gt;editor().confirmComposition(compositionString);
</ins><span class="cx"> 
</span><span class="cx">     if (selectionStart == -1) {
</span><span class="cx">         send(Messages::WebPageProxy::EditorStateChanged(editorState()));
</span><span class="lines">@@ -3858,19 +3857,19 @@
</span><span class="cx"> 
</span><span class="cx">         Element* scope = targetFrame-&gt;selection()-&gt;rootEditableElement();
</span><span class="cx">         RefPtr&lt;Range&gt; replacementRange = TextIterator::rangeFromLocationAndLength(scope, replacementStart, replacementLength);
</span><del>-        targetFrame-&gt;editor()-&gt;setIgnoreCompositionSelectionChange(true);
</del><ins>+        targetFrame-&gt;editor().setIgnoreCompositionSelectionChange(true);
</ins><span class="cx">         targetFrame-&gt;selection()-&gt;setSelection(VisibleSelection(replacementRange.get(), SEL_DEFAULT_AFFINITY));
</span><del>-        targetFrame-&gt;editor()-&gt;setIgnoreCompositionSelectionChange(false);
</del><ins>+        targetFrame-&gt;editor().setIgnoreCompositionSelectionChange(false);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    targetFrame-&gt;editor()-&gt;setComposition(text, underlines, selectionStart, selectionEnd);
</del><ins>+    targetFrame-&gt;editor().setComposition(text, underlines, selectionStart, selectionEnd);
</ins><span class="cx">     send(Messages::WebPageProxy::EditorStateChanged(editorState()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPage::cancelComposition()
</span><span class="cx"> {
</span><span class="cx">     if (Frame* targetFrame = targetFrameForEditing(this))
</span><del>-        targetFrame-&gt;editor()-&gt;cancelComposition();
</del><ins>+        targetFrame-&gt;editor().cancelComposition();
</ins><span class="cx">     send(Messages::WebPageProxy::EditorStateChanged(editorState()));
</span><span class="cx"> }
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageeflWebPageEflcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/efl/WebPageEfl.cpp (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/efl/WebPageEfl.cpp        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit2/WebProcess/WebPage/efl/WebPageEfl.cpp        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -178,16 +178,16 @@
</span><span class="cx">     if (!frame)
</span><span class="cx">         return 0;
</span><span class="cx"> 
</span><del>-    Editor* editor = frame-&gt;editor();
-    if (!editor-&gt;canEdit())
</del><ins>+    Editor&amp; editor = frame-&gt;editor();
+    if (!editor.canEdit())
</ins><span class="cx">         return 0;
</span><span class="cx"> 
</span><del>-    if (editor-&gt;hasComposition()) {
</del><ins>+    if (editor.hasComposition()) {
</ins><span class="cx">         // We should verify the parent node of this IME composition node are
</span><span class="cx">         // editable because JavaScript may delete a parent node of the composition
</span><span class="cx">         // node. In this case, WebKit crashes while deleting texts from the parent
</span><span class="cx">         // node, which doesn't exist any longer.
</span><del>-        if (PassRefPtr&lt;Range&gt; range = editor-&gt;compositionRange()) {
</del><ins>+        if (PassRefPtr&lt;Range&gt; range = editor.compositionRange()) {
</ins><span class="cx">             Node* node = range-&gt;startContainer();
</span><span class="cx">             if (!node || !node-&gt;isContentEditable())
</span><span class="cx">                 return 0;
</span><span class="lines">@@ -203,7 +203,7 @@
</span><span class="cx">     if (!targetFrame)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    targetFrame-&gt;editor()-&gt;confirmComposition(compositionString);
</del><ins>+    targetFrame-&gt;editor().confirmComposition(compositionString);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPage::setComposition(const String&amp; compositionString, const Vector&lt;WebCore::CompositionUnderline&gt;&amp; underlines, uint64_t cursorPosition)
</span><span class="lines">@@ -212,7 +212,7 @@
</span><span class="cx">     if (!targetFrame)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    targetFrame-&gt;editor()-&gt;setComposition(compositionString, underlines, cursorPosition, 0);
</del><ins>+    targetFrame-&gt;editor().setComposition(compositionString, underlines, cursorPosition, 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPage::cancelComposition()
</span><span class="lines">@@ -221,7 +221,7 @@
</span><span class="cx">     if (!frame)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    frame-&gt;editor()-&gt;cancelComposition();
</del><ins>+    frame-&gt;editor().cancelComposition();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPagemacWebPageMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm (150139 => 150140)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm        2013-05-15 19:39:00 UTC (rev 150139)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm        2013-05-15 19:47:47 UTC (rev 150140)
</span><span class="lines">@@ -168,16 +168,16 @@
</span><span class="cx">     bool eventWasHandled = false;
</span><span class="cx">     for (size_t i = 0; i &lt; commands.size(); ++i) {
</span><span class="cx">         if (commands[i].commandName == &quot;insertText:&quot;) {
</span><del>-            ASSERT(!frame-&gt;editor()-&gt;hasComposition());
</del><ins>+            ASSERT(!frame-&gt;editor().hasComposition());
</ins><span class="cx"> 
</span><del>-            if (!frame-&gt;editor()-&gt;canEdit())
</del><ins>+            if (!frame-&gt;editor().canEdit())
</ins><span class="cx">                 continue;
</span><span class="cx"> 
</span><span class="cx">             // An insertText: might be handled by other responders in the chain if we don't handle it.
</span><span class="cx">             // One example is space bar that results in scrolling down the page.
</span><del>-            eventWasHandled |= frame-&gt;editor()-&gt;insertText(commands[i].text, event);
</del><ins>+            eventWasHandled |= frame-&gt;editor().insertText(commands[i].text, event);
</ins><span class="cx">         } else {
</span><del>-            Editor::Command command = frame-&gt;editor()-&gt;command(commandNameForSelectorName(commands[i].commandName));
</del><ins>+            Editor::Command command = frame-&gt;editor().command(commandNameForSelectorName(commands[i].commandName));
</ins><span class="cx">             if (command.isSupported()) {
</span><span class="cx">                 bool commandExecutedByEditor = command.execute(event);
</span><span class="cx">                 eventWasHandled |= commandExecutedByEditor;
</span><span class="lines">@@ -233,7 +233,7 @@
</span><span class="cx">         // (e.g. Tab that inserts a Tab character, or Enter).
</span><span class="cx">         bool haveTextInsertionCommands = false;
</span><span class="cx">         for (size_t i = 0; i &lt; commands.size(); ++i) {
</span><del>-            if (frame-&gt;editor()-&gt;command(commandNameForSelectorName(commands[i].commandName)).isTextInsertion())
</del><ins>+            if (frame-&gt;editor().command(commandNameForSelectorName(commands[i].commandName)).isTextInsertion())
</ins><span class="cx">                 haveTextInsertionCommands = true;
</span><span class="cx">         }
</span><span class="cx">         // If there are no text insertion commands, default keydown handler is the right time to execute the commands.
</span><span class="lines">@@ -265,7 +265,7 @@
</span><span class="cx">             frame-&gt;selection()-&gt;setSelection(VisibleSelection(replacementRange.get(), SEL_DEFAULT_AFFINITY));
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        frame-&gt;editor()-&gt;setComposition(text, underlines, selectionStart, selectionEnd);
</del><ins>+        frame-&gt;editor().setComposition(text, underlines, selectionStart, selectionEnd);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     newState = editorState();
</span><span class="lines">@@ -275,7 +275,7 @@
</span><span class="cx"> {
</span><span class="cx">     Frame* frame = m_page-&gt;focusController()-&gt;focusedOrMainFrame();
</span><span class="cx"> 
</span><del>-    frame-&gt;editor()-&gt;confirmComposition();
</del><ins>+    frame-&gt;editor().confirmComposition();
</ins><span class="cx"> 
</span><span class="cx">     newState = editorState();
</span><span class="cx"> }
</span><span class="lines">@@ -284,7 +284,7 @@
</span><span class="cx"> {
</span><span class="cx">     Frame* frame = m_page-&gt;focusController()-&gt;focusedOrMainFrame();
</span><span class="cx"> 
</span><del>-    frame-&gt;editor()-&gt;cancelComposition();
</del><ins>+    frame-&gt;editor().cancelComposition();
</ins><span class="cx"> 
</span><span class="cx">     newState = editorState();
</span><span class="cx"> }
</span><span class="lines">@@ -299,13 +299,13 @@
</span><span class="cx">             frame-&gt;selection()-&gt;setSelection(VisibleSelection(replacementRange.get(), SEL_DEFAULT_AFFINITY));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (!frame-&gt;editor()-&gt;hasComposition()) {
</del><ins>+    if (!frame-&gt;editor().hasComposition()) {
</ins><span class="cx">         // An insertText: might be handled by other responders in the chain if we don't handle it.
</span><span class="cx">         // One example is space bar that results in scrolling down the page.
</span><del>-        handled = frame-&gt;editor()-&gt;insertText(text, m_keyboardEventBeingInterpreted);
</del><ins>+        handled = frame-&gt;editor().insertText(text, m_keyboardEventBeingInterpreted);
</ins><span class="cx">     } else {
</span><span class="cx">         handled = true;
</span><del>-        frame-&gt;editor()-&gt;confirmComposition(text);
</del><ins>+        frame-&gt;editor().confirmComposition(text);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     newState = editorState();
</span><span class="lines">@@ -321,8 +321,8 @@
</span><span class="cx">             frame-&gt;selection()-&gt;setSelection(VisibleSelection(replacementRange.get(), SEL_DEFAULT_AFFINITY));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    ASSERT(!frame-&gt;editor()-&gt;hasComposition());
-    handled = frame-&gt;editor()-&gt;insertDictatedText(text, dictationAlternativeLocations, m_keyboardEventBeingInterpreted);
</del><ins>+    ASSERT(!frame-&gt;editor().hasComposition());
+    handled = frame-&gt;editor().insertDictatedText(text, dictationAlternativeLocations, m_keyboardEventBeingInterpreted);
</ins><span class="cx">     newState = editorState();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -334,7 +334,7 @@
</span><span class="cx">     if (!frame)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    RefPtr&lt;Range&gt; range = frame-&gt;editor()-&gt;compositionRange();
</del><ins>+    RefPtr&lt;Range&gt; range = frame-&gt;editor().compositionRange();
</ins><span class="cx">     size_t locationSize;
</span><span class="cx">     size_t lengthSize;
</span><span class="cx">     if (range &amp;&amp; TextIterator::getLocationAndLengthFromRange(frame-&gt;selection()-&gt;rootEditableElementOrDocumentElement(), range.get(), locationSize, lengthSize)) {
</span><span class="lines">@@ -437,7 +437,7 @@
</span><span class="cx">     ASSERT(range-&gt;startContainer());
</span><span class="cx">     ASSERT(range-&gt;endContainer());
</span><span class="cx">      
</span><del>-    IntRect rect = frame-&gt;editor()-&gt;firstRectForRange(range.get());
</del><ins>+    IntRect rect = frame-&gt;editor().firstRectForRange(range.get());
</ins><span class="cx">     resultRect = frame-&gt;view()-&gt;contentsToWindow(rect);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -654,7 +654,7 @@
</span><span class="cx">         result = false;
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    frame-&gt;editor()-&gt;readSelectionFromPasteboard(pasteboardName);
</del><ins>+    frame-&gt;editor().readSelectionFromPasteboard(pasteboardName);
</ins><span class="cx">     result = true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -676,7 +676,7 @@
</span><span class="cx">     if (frame-&gt;selection()-&gt;isNone())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    stringValue = frame-&gt;editor()-&gt;stringSelectionForPasteboard();
</del><ins>+    stringValue = frame-&gt;editor().stringSelectionForPasteboard();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPage::getDataSelectionForPasteboard(const String pasteboardType, SharedMemory::Handle&amp; handle, uint64_t&amp; size)
</span><span class="lines">@@ -685,7 +685,7 @@
</span><span class="cx">     if (!frame || frame-&gt;selection()-&gt;isNone())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    RefPtr&lt;SharedBuffer&gt; buffer = frame-&gt;editor()-&gt;dataSelectionForPasteboard(pasteboardType);
</del><ins>+    RefPtr&lt;SharedBuffer&gt; buffer = frame-&gt;editor().dataSelectionForPasteboard(pasteboardType);
</ins><span class="cx">     if (!buffer) {
</span><span class="cx">         size = 0;
</span><span class="cx">         return;
</span></span></pre>
</div>
</div>

</body>
</html>