author | Masayuki Nakano <masayuki@d-toybox.com> |
Tue, 09 May 2017 16:27:08 +0900 | |
changeset 357505 | 57330642868cef5fee5052fa85ca013ec767af1b |
parent 357504 | f2e0943a676204e50ebb2d0c69ac478a11ede380 |
child 357506 | 44ded04dd69337c86e33be791e6dc7c1b0a7bb23 |
push id | 31795 |
push user | kwierso@gmail.com |
push date | Wed, 10 May 2017 22:26:00 +0000 |
treeherder | mozilla-central@3df2494ade45 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | smaug |
bugs | 1363278 |
milestone | 55.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- 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 @@ -6531,29 +6529,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