Bug 1443714 - Remove already_AddRefed for GetDocument and GetPresSehll on EditorBase. r?masayuki
It is unnecessary to use already_AddRefed for GetDocument and GetPresShell.
Then, if we remove already_AddRefed, we can replace this with const method.
MozReview-Commit-ID: KTVS0rYrY2i
--- a/editor/libeditor/EditorBase.cpp
+++ b/editor/libeditor/EditorBase.cpp
@@ -619,48 +619,30 @@ EditorBase::GetIsDocumentEditable(bool*
{
NS_ENSURE_ARG_POINTER(aIsDocumentEditable);
nsCOMPtr<nsIDocument> doc = GetDocument();
*aIsDocumentEditable = doc && IsModifiable();
return NS_OK;
}
-already_AddRefed<nsIDocument>
-EditorBase::GetDocument()
-{
- nsCOMPtr<nsIDocument> document = mDocument;
- return document.forget();
-}
-
already_AddRefed<nsIDOMDocument>
EditorBase::GetDOMDocument()
{
nsCOMPtr<nsIDOMDocument> domDocument = do_QueryInterface(mDocument);
return domDocument.forget();
}
NS_IMETHODIMP
EditorBase::GetDocument(nsIDOMDocument** aDoc)
{
*aDoc = GetDOMDocument().take();
return *aDoc ? NS_OK : NS_ERROR_NOT_INITIALIZED;
}
-already_AddRefed<nsIPresShell>
-EditorBase::GetPresShell()
-{
- nsCOMPtr<nsIDocument> document = GetDocument();
- if (NS_WARN_IF(!document)) {
- return nullptr;
- }
- nsCOMPtr<nsIPresShell> presShell = document->GetShell();
- return presShell.forget();
-}
-
already_AddRefed<nsIWidget>
EditorBase::GetWidget()
{
nsCOMPtr<nsIPresShell> ps = GetPresShell();
NS_ENSURE_TRUE(ps, nullptr);
nsPresContext* pc = ps->GetPresContext();
NS_ENSURE_TRUE(pc, nullptr);
nsCOMPtr<nsIWidget> widget = pc->GetRootWidget();
--- a/editor/libeditor/EditorBase.h
+++ b/editor/libeditor/EditorBase.h
@@ -234,21 +234,24 @@ public:
virtual nsresult Init(nsIDocument& doc,
Element* aRoot,
nsISelectionController* aSelCon,
uint32_t aFlags,
const nsAString& aInitialValue);
bool IsInitialized() const { return !!mDocument; }
already_AddRefed<nsIDOMDocument> GetDOMDocument();
- already_AddRefed<nsIDocument> GetDocument();
- already_AddRefed<nsIPresShell> GetPresShell();
- nsPresContext* GetPresContext()
+ nsIDocument* GetDocument() const { return mDocument; }
+ nsIPresShell* GetPresShell() const
{
- RefPtr<nsIPresShell> presShell = GetPresShell();
+ return mDocument ? mDocument->GetShell() : nullptr;
+ }
+ nsPresContext* GetPresContext() const
+ {
+ nsIPresShell* presShell = GetPresShell();
return presShell ? presShell->GetPresContext() : nullptr;
}
already_AddRefed<nsIWidget> GetWidget();
nsISelectionController* GetSelectionController() const
{
if (mSelectionController) {
return mSelectionController;
}
--- a/editor/libeditor/EditorEventListener.cpp
+++ b/editor/libeditor/EditorEventListener.cpp
@@ -294,25 +294,25 @@ EditorEventListener::UninstallFromEditor
elmP->RemoveEventListenerByType(this,
NS_LITERAL_STRING("compositionstart"),
TrustedEventsAtSystemGroupBubble());
elmP->RemoveEventListenerByType(this,
NS_LITERAL_STRING("compositionend"),
TrustedEventsAtSystemGroupBubble());
}
-already_AddRefed<nsIPresShell>
-EditorEventListener::GetPresShell()
+nsIPresShell*
+EditorEventListener::GetPresShell() const
{
MOZ_ASSERT(!DetachedFromEditor());
return mEditorBase->GetPresShell();
}
nsPresContext*
-EditorEventListener::GetPresContext()
+EditorEventListener::GetPresContext() const
{
nsCOMPtr<nsIPresShell> presShell = GetPresShell();
return presShell ? presShell->GetPresContext() : nullptr;
}
nsIContent*
EditorEventListener::GetFocusedRootContent()
{
--- a/editor/libeditor/EditorEventListener.h
+++ b/editor/libeditor/EditorEventListener.h
@@ -71,18 +71,18 @@ protected:
nsresult Blur(InternalFocusEvent* aBlurEvent);
nsresult DragEnter(nsIDOMDragEvent* aDragEvent);
nsresult DragOver(nsIDOMDragEvent* aDragEvent);
nsresult DragExit(nsIDOMDragEvent* aDragEvent);
nsresult Drop(nsIDOMDragEvent* aDragEvent);
bool CanDrop(nsIDOMDragEvent* aEvent);
void CleanupDragDropCaret();
- already_AddRefed<nsIPresShell> GetPresShell();
- nsPresContext* GetPresContext();
+ nsIPresShell* GetPresShell() const;
+ nsPresContext* GetPresContext() const;
nsIContent* GetFocusedRootContent();
// Returns true if IME consumes the mouse event.
bool NotifyIMEOfMouseButtonEvent(WidgetMouseEvent* aMouseEvent);
bool EditorHasFocus();
bool IsFileControlTextBox();
bool ShouldHandleNativeKeyBindings(WidgetKeyboardEvent* aKeyboardEvent);
nsresult HandleMiddleClickPaste(nsIDOMMouseEvent* aMouseEvent);
--- a/extensions/spellcheck/src/mozInlineSpellChecker.cpp
+++ b/extensions/spellcheck/src/mozInlineSpellChecker.cpp
@@ -425,18 +425,18 @@ mozInlineSpellStatus::FillNoCheckRangeFr
getter_AddRefs(mNoCheckRange));
}
// mozInlineSpellStatus::GetDocument
//
// Returns the nsIDOMDocument object for the document for the
// current spellchecker.
-already_AddRefed<nsIDocument>
-mozInlineSpellStatus::GetDocument()
+nsIDocument*
+mozInlineSpellStatus::GetDocument() const
{
if (!mSpellChecker->mTextEditor) {
return nullptr;
}
return mSpellChecker->mTextEditor->GetDocument();
}
--- a/extensions/spellcheck/src/mozInlineSpellChecker.h
+++ b/extensions/spellcheck/src/mozInlineSpellChecker.h
@@ -99,17 +99,17 @@ public:
// Contains the offset passed in to HandleNavigationEvent
int32_t mNewNavigationPositionOffset;
protected:
nsresult FinishNavigationEvent(mozInlineSpellWordUtil& aWordUtil);
nsresult FillNoCheckRangeFromAnchor(mozInlineSpellWordUtil& aWordUtil);
- already_AddRefed<nsIDocument> GetDocument();
+ nsIDocument* GetDocument() const;
already_AddRefed<nsRange> PositionToCollapsedRange(nsINode* aNode,
uint32_t aOffset);
};
class mozInlineSpellChecker final : public nsIInlineSpellChecker,
public nsIDOMEventListener,
public nsSupportsWeakReference
{