Bug 1363278 Get rid of nsIPhonetic and HTMLInputElement.phonetic r?smaug
Nobody uses them anymore. Therefore, we can remove them from the tree.
MozReview-Commit-ID: KTqCeI2eeFW
--- a/dom/html/HTMLInputElement.cpp
+++ b/dom/html/HTMLInputElement.cpp
@@ -16,17 +16,16 @@
#include "mozilla/dom/GetFilesHelper.h"
#include "nsAttrValueInlines.h"
#include "nsCRTGlue.h"
#include "nsIDOMHTMLInputElement.h"
#include "nsITextControlElement.h"
#include "nsIDOMNSEditableElement.h"
#include "nsIRadioVisitor.h"
-#include "nsIPhonetic.h"
#include "InputType.h"
#include "HTMLFormSubmissionConstants.h"
#include "mozilla/Telemetry.h"
#include "nsIControllers.h"
#include "nsIStringBundle.h"
#include "nsFocusManager.h"
#include "nsColorControlFrame.h"
@@ -1264,17 +1263,16 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_END
NS_IMPL_ADDREF_INHERITED(HTMLInputElement, Element)
NS_IMPL_RELEASE_INHERITED(HTMLInputElement, Element)
// QueryInterface implementation for HTMLInputElement
NS_INTERFACE_TABLE_HEAD_CYCLE_COLLECTION_INHERITED(HTMLInputElement)
NS_INTERFACE_TABLE_INHERITED(HTMLInputElement,
nsIDOMHTMLInputElement,
nsITextControlElement,
- nsIPhonetic,
imgINotificationObserver,
nsIImageLoadingContent,
imgIOnloadBlocker,
nsIDOMNSEditableElement,
nsIConstraintValidation)
NS_INTERFACE_TABLE_TAIL_INHERITING(nsGenericHTMLFormElementWithState)
// nsIConstraintValidation
@@ -6519,29 +6517,16 @@ HTMLInputElement::SetSelectionDirection(
return;
}
nsTextEditorState* state = GetEditorState();
MOZ_ASSERT(state, "SupportsTextSelection came back true!");
state->SetSelectionDirection(aDirection, aRv);
}
-NS_IMETHODIMP
-HTMLInputElement::GetPhonetic(nsAString& aPhonetic)
-{
- aPhonetic.Truncate();
- nsIFormControlFrame* formControlFrame = GetFormControlFrame(true);
- nsITextControlFrame* textControlFrame = do_QueryFrame(formControlFrame);
- if (textControlFrame) {
- textControlFrame->GetPhonetic(aPhonetic);
- }
-
- return NS_OK;
-}
-
#ifdef ACCESSIBILITY
/*static*/ nsresult
FireEventForAccessibility(nsIDOMHTMLInputElement* aTarget,
nsPresContext* aPresContext,
const nsAString& aEventType)
{
nsCOMPtr<mozilla::dom::Element> element = do_QueryInterface(aTarget);
RefPtr<Event> event = NS_NewDOMEvent(element, aPresContext, nullptr);
--- a/dom/html/HTMLInputElement.h
+++ b/dom/html/HTMLInputElement.h
@@ -8,17 +8,16 @@
#define mozilla_dom_HTMLInputElement_h
#include "mozilla/Attributes.h"
#include "nsGenericHTMLElement.h"
#include "nsImageLoadingContent.h"
#include "nsIDOMHTMLInputElement.h"
#include "nsITextControlElement.h"
#include "nsITimer.h"
-#include "nsIPhonetic.h"
#include "nsIDOMNSEditableElement.h"
#include "nsCOMPtr.h"
#include "nsIConstraintValidation.h"
#include "mozilla/UniquePtr.h"
#include "mozilla/dom/BindingDeclarations.h"
#include "mozilla/dom/HTMLFormElement.h" // for HasEverTriedInvalidSubmit()
#include "mozilla/dom/HTMLInputElementBinding.h"
#include "mozilla/dom/Promise.h"
@@ -123,17 +122,16 @@ public:
nsCOMPtr<nsIContentPref> mResult;
};
};
class HTMLInputElement final : public nsGenericHTMLFormElementWithState,
public nsImageLoadingContent,
public nsIDOMHTMLInputElement,
public nsITextControlElement,
- public nsIPhonetic,
public nsIDOMNSEditableElement,
public nsIConstraintValidation
{
friend class AfterSetFilesOrDirectoriesCallback;
friend class DispatchChangeEventCallback;
friend class ::InputType;
public:
@@ -169,19 +167,16 @@ public:
virtual bool IsInteractiveHTMLContent(bool aIgnoreTabindex) const override;
// EventTarget
virtual void AsyncEventRunning(AsyncEventDispatcher* aEvent) override;
// nsIDOMHTMLInputElement
NS_DECL_NSIDOMHTMLINPUTELEMENT
- // nsIPhonetic
- NS_DECL_NSIPHONETIC
-
// nsIDOMNSEditableElement
NS_IMETHOD GetEditor(nsIEditor** aEditor) override
{
return nsGenericHTMLElement::GetEditor(aEditor);
}
NS_IMETHOD SetUserInput(const nsAString& aInput) override;
@@ -870,18 +865,16 @@ public:
bool MozIsTextField(bool aExcludePassword);
nsIEditor* GetEditor();
void SetUserInput(const nsAString& aInput,
nsIPrincipal& aSubjectPrincipal);
- // XPCOM GetPhonetic() is OK
-
/**
* If aValue contains a valid floating-point number in the format specified
* by the HTML 5 spec:
*
* http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#floating-point-numbers
*
* then this function will return the number parsed as a Decimal, otherwise
* it will return a Decimal for which Decimal::isFinite() will return false.
--- a/dom/html/moz.build
+++ b/dom/html/moz.build
@@ -22,17 +22,16 @@ MOCHITEST_CHROME_MANIFESTS += [
BROWSER_CHROME_MANIFESTS += ['test/browser.ini']
XPIDL_SOURCES += [
'nsIDateTimeInputArea.idl',
'nsIFormSubmitObserver.idl',
'nsIImageDocument.idl',
'nsIMenuBuilder.idl',
- 'nsIPhonetic.idl',
]
XPIDL_MODULE = 'content_html'
EXPORTS += [
'nsGenericHTMLElement.h',
'nsHTMLDNSPrefetch.h',
'nsIConstraintValidation.h',
deleted file mode 100644
--- a/dom/html/nsIPhonetic.idl
+++ /dev/null
@@ -1,22 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include "nsISupports.idl"
-
-/**
- * This interface is used to get the phonetic value of the input text.
- * It can be used to get corresponding phonetic value for ideographic text.
- * The interface can be retrieved by calling QI to the interface
- * which implements the phonetic interface.
- */
-
-[uuid(BC6EA726-AB56-46b6-A21A-AA7B76D6818F)]
-interface nsIPhonetic : nsISupports
-{
- /**
- * phonetic get the phonetic value of the input text
- */
- readonly attribute DOMString phonetic;
-};
--- a/dom/webidl/HTMLInputElement.webidl
+++ b/dom/webidl/HTMLInputElement.webidl
@@ -212,24 +212,17 @@ partial interface HTMLInputElement {
[Throws, Pref="dom.input.dirpicker"]
Promise<sequence<File>> getFiles(optional boolean recursiveFlag = false);
[Throws, Pref="dom.input.dirpicker"]
void chooseDirectory();
};
-[NoInterfaceObject]
-interface MozPhonetic {
- [Pure, ChromeOnly]
- readonly attribute DOMString phonetic;
-};
-
HTMLInputElement implements MozImageLoadingContent;
-HTMLInputElement implements MozPhonetic;
// Webkit/Blink
partial interface HTMLInputElement {
[Pref="dom.webkitBlink.filesystem.enabled", Frozen, Cached, Pure]
readonly attribute sequence<FileSystemEntry> webkitEntries;
[Pref="dom.webkitBlink.dirPicker.enabled", BinaryName="WebkitDirectoryAttr", SetterThrows]
attribute boolean webkitdirectory;
--- a/editor/libeditor/EditorBase.cpp
+++ b/editor/libeditor/EditorBase.cpp
@@ -123,17 +123,16 @@ using namespace widget;
/*****************************************************************************
* mozilla::EditorBase
*****************************************************************************/
EditorBase::EditorBase()
: mPlaceHolderName(nullptr)
, mSelState(nullptr)
- , mPhonetic(nullptr)
, mModCount(0)
, mFlags(0)
, mUpdateCount(0)
, mPlaceHolderBatch(0)
, mAction(EditAction::none)
, mIMETextOffset(0)
, mIMETextLength(0)
, mDirection(eNone)
@@ -155,18 +154,16 @@ EditorBase::~EditorBase()
if (mComposition) {
mComposition->OnEditorDestroyed();
mComposition = nullptr;
}
// If this editor is still hiding the caret, we need to restore it.
HideCaret(false);
mTxnMgr = nullptr;
-
- delete mPhonetic;
}
NS_IMPL_CYCLE_COLLECTION_CLASS(EditorBase)
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(EditorBase)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mRootElement)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mInlineSpellChecker)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mTxnMgr)
@@ -196,17 +193,16 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mDocStateListeners)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mEventTarget)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mEventListener)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mSavedSel);
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mRangeUpdater);
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(EditorBase)
- NS_INTERFACE_MAP_ENTRY(nsIPhonetic)
NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference)
NS_INTERFACE_MAP_ENTRY(nsIEditor)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIEditor)
NS_INTERFACE_MAP_END
NS_IMPL_CYCLE_COLLECTING_ADDREF(EditorBase)
NS_IMPL_CYCLE_COLLECTING_RELEASE(EditorBase)
@@ -2083,19 +2079,16 @@ EditorBase::EnsureComposition(WidgetComp
nsresult
EditorBase::BeginIMEComposition(WidgetCompositionEvent* aCompositionEvent)
{
MOZ_ASSERT(!mComposition, "There is composition already");
if (!EnsureComposition(aCompositionEvent)) {
return NS_OK;
}
- if (mPhonetic) {
- mPhonetic->Truncate(0);
- }
return NS_OK;
}
void
EditorBase::EndIMEComposition()
{
NS_ENSURE_TRUE_VOID(mComposition); // nothing to do
@@ -2122,28 +2115,16 @@ EditorBase::EndIMEComposition()
mComposition->EndHandlingComposition(this);
mComposition = nullptr;
// notify editor observers of action
NotifyEditorObservers(eNotifyEditorObserversOfEnd);
}
NS_IMETHODIMP
-EditorBase::GetPhonetic(nsAString& aPhonetic)
-{
- if (mPhonetic) {
- aPhonetic = *mPhonetic;
- } else {
- aPhonetic.Truncate(0);
- }
-
- return NS_OK;
-}
-
-NS_IMETHODIMP
EditorBase::ForceCompositionEnd()
{
nsCOMPtr<nsIPresShell> ps = GetPresShell();
if (!ps) {
return NS_ERROR_NOT_AVAILABLE;
}
nsPresContext* pc = ps->GetPresContext();
if (!pc) {
@@ -2517,32 +2498,16 @@ EditorBase::InsertTextIntoTextNodeImpl(c
// aSuppressIME is used when editor must insert text, yet this text is not
// part of the current IME operation. Example: adjusting whitespace around an
// IME insertion.
if (ShouldHandleIMEComposition() && !aSuppressIME) {
if (!mIMETextNode) {
mIMETextNode = &aTextNode;
mIMETextOffset = aOffset;
}
- // Modify mPhonetic with raw text input clauses.
- const TextRangeArray* ranges = mComposition->GetRanges();
- for (uint32_t i = 0; i < (ranges ? ranges->Length() : 0); ++i) {
- const TextRange& textRange = ranges->ElementAt(i);
- if (!textRange.Length() ||
- textRange.mRangeType != TextRangeType::eRawClause) {
- continue;
- }
- if (!mPhonetic) {
- mPhonetic = new nsString();
- }
- nsAutoString stringToInsert(aStringToInsert);
- stringToInsert.Mid(*mPhonetic,
- textRange.mStartOffset, textRange.Length());
- }
-
transaction = CreateTxnForComposition(aStringToInsert);
isIMETransaction = true;
// All characters of the composition string will be replaced with
// aStringToInsert. So, we need to emulate to remove the composition
// string.
insertedTextNode = mIMETextNode;
insertedOffset = mIMETextOffset;
mIMETextLength = aStringToInsert.Length();
--- a/editor/libeditor/EditorBase.h
+++ b/editor/libeditor/EditorBase.h
@@ -12,17 +12,16 @@
#include "mozilla/StyleSheet.h" // for StyleSheet
#include "mozilla/UniquePtr.h"
#include "mozilla/dom/Text.h"
#include "nsCOMPtr.h" // for already_AddRefed, nsCOMPtr
#include "nsCycleCollectionParticipant.h"
#include "nsGkAtoms.h"
#include "nsIEditor.h" // for nsIEditor, etc.
#include "nsIObserver.h" // for NS_DECL_NSIOBSERVER, etc.
-#include "nsIPhonetic.h" // for NS_DECL_NSIPHONETIC, etc.
#include "nsIPlaintextEditor.h" // for nsIPlaintextEditor, etc.
#include "nsISelectionController.h" // for nsISelectionController constants
#include "nsISupportsImpl.h" // for EditorBase::Release, etc.
#include "nsIWeakReferenceUtils.h" // for nsWeakPtr
#include "nsLiteralString.h" // for NS_LITERAL_STRING
#include "nsString.h" // for nsCString
#include "nsTArray.h" // for nsTArray and nsAutoTArray
#include "nsWeakReference.h" // for nsSupportsWeakReference
@@ -141,17 +140,16 @@ struct IMEState;
* Implementation of an editor object. it will be the controller/focal point
* for the main editor services. i.e. the GUIManager, publishing, transaction
* manager, event interfaces. the idea for the event interfaces is to have them
* delegate the actual commands to the editor independent of the XPFE
* implementation.
*/
class EditorBase : public nsIEditor
, public nsSupportsWeakReference
- , public nsIPhonetic
{
public:
typedef dom::Element Element;
typedef dom::Selection Selection;
typedef dom::Text Text;
enum IterDirection
{
@@ -191,19 +189,16 @@ public:
eNotifyEditorObserversOfBefore,
eNotifyEditorObserversOfCancel
};
void NotifyEditorObservers(NotificationForEditorObservers aNotification);
// nsIEditor methods
NS_DECL_NSIEDITOR
- // nsIPhonetic
- NS_DECL_NSIPHONETIC
-
public:
virtual bool IsModifiableNode(nsINode* aNode);
virtual nsresult InsertTextImpl(const nsAString& aStringToInsert,
nsCOMPtr<nsINode>* aInOutNode,
int32_t* aInOutOffset,
nsIDocument* aDoc);
nsresult InsertTextIntoTextNodeImpl(const nsAString& aStringToInsert,
@@ -1005,17 +1000,16 @@ protected:
// Weak reference to placeholder for begin/end batch purposes.
nsWeakPtr mPlaceHolderTxn;
// Weak reference to the nsIDOMDocument.
nsWeakPtr mDocWeak;
// Name of placeholder transaction.
nsIAtom* mPlaceHolderName;
// Saved selection state for placeholder transaction batching.
mozilla::UniquePtr<SelectionState> mSelState;
- nsString* mPhonetic;
// IME composition this is not null between compositionstart and
// compositionend.
RefPtr<TextComposition> mComposition;
// Listens to all low level actions on the doc.
typedef AutoTArray<OwningNonNull<nsIEditActionListener>, 5>
AutoActionListenerArray;
AutoActionListenerArray mActionListeners;
--- a/layout/forms/nsITextControlFrame.h
+++ b/layout/forms/nsITextControlFrame.h
@@ -27,18 +27,16 @@ public:
NS_IMETHOD SetSelectionRange(uint32_t aSelectionStart,
uint32_t aSelectionEnd,
SelectionDirection aDirection = eNone) = 0;
NS_IMETHOD GetOwnedSelectionController(nsISelectionController** aSelCon) = 0;
virtual nsFrameSelection* GetOwnedFrameSelection() = 0;
- virtual nsresult GetPhonetic(nsAString& aPhonetic) = 0;
-
/**
* Ensure editor is initialized with the proper flags and the default value.
* @throws NS_ERROR_NOT_INITIALIZED if mEditor has not been created
* @throws various and sundry other things
*/
virtual nsresult EnsureEditorInitialized() = 0;
virtual nsresult ScrollSelectionIntoView() = 0;
--- a/layout/forms/nsTextControlFrame.cpp
+++ b/layout/forms/nsTextControlFrame.cpp
@@ -8,17 +8,16 @@
#include "nsCOMPtr.h"
#include "nsFontMetrics.h"
#include "nsTextControlFrame.h"
#include "nsIPlaintextEditor.h"
#include "nsCaret.h"
#include "nsCSSPseudoElements.h"
#include "nsGenericHTMLElement.h"
#include "nsIEditor.h"
-#include "nsIPhonetic.h"
#include "nsTextFragment.h"
#include "nsIDOMHTMLTextAreaElement.h"
#include "nsNameSpaceManager.h"
#include "nsFormControlFrame.h" //for registering accesskeys
#include "nsIContent.h"
#include "nsPresContext.h"
#include "nsRenderingContext.h"
@@ -1092,32 +1091,16 @@ nsTextControlFrame::GetText(nsString& aT
if (textArea) {
rv = textArea->GetValue(aText);
}
}
return rv;
}
-nsresult
-nsTextControlFrame::GetPhonetic(nsAString& aPhonetic)
-{
- aPhonetic.Truncate(0);
-
- nsCOMPtr<nsIEditor> editor;
- nsresult rv = GetEditor(getter_AddRefs(editor));
- NS_ENSURE_SUCCESS(rv, rv);
-
- nsCOMPtr<nsIPhonetic> phonetic = do_QueryInterface(editor);
- if (phonetic) {
- phonetic->GetPhonetic(aPhonetic);
- }
- return NS_OK;
-}
-
///END NSIFRAME OVERLOADS
/////BEGIN PROTECTED METHODS
bool
nsTextControlFrame::GetMaxLength(int32_t* aSize)
{
*aSize = -1;
--- a/layout/forms/nsTextControlFrame.h
+++ b/layout/forms/nsTextControlFrame.h
@@ -143,18 +143,16 @@ public:
NS_IMETHOD GetEditor(nsIEditor **aEditor) override;
NS_IMETHOD SetSelectionRange(uint32_t aSelectionStart,
uint32_t aSelectionEnd,
SelectionDirection aDirection = eNone) override;
NS_IMETHOD GetOwnedSelectionController(nsISelectionController** aSelCon) override;
virtual nsFrameSelection* GetOwnedFrameSelection() override;
- nsresult GetPhonetic(nsAString& aPhonetic) override;
-
/**
* Ensure mEditor is initialized with the proper flags and the default value.
* @throws NS_ERROR_NOT_INITIALIZED if mEditor has not been created
* @throws various and sundry other things
*/
virtual nsresult EnsureEditorInitialized() override;
//==== END NSITEXTCONTROLFRAME