Граф коммитов

9737 Коммитов

Автор SHA1 Сообщение Дата
Masayuki Nakano 09bb52cb18 Bug 1620504 - part 5: Clean up warnings in ChangeAttributeTransaction r=m_kato
Depends on D65870

Differential Revision: https://phabricator.services.mozilla.com/D65871

--HG--
extra : moz-landing-system : lando
2020-03-09 14:57:23 +00:00
Masayuki Nakano 20296adfc3 Bug 1620504 - part 4: Clean up warnings in CreateElementTransaction r=m_kato
Depends on D65869

Differential Revision: https://phabricator.services.mozilla.com/D65870

--HG--
extra : moz-landing-system : lando
2020-03-09 04:53:55 +00:00
Masayuki Nakano c1fc16a11b Bug 1620504 - part 3: Clean up warnings in CompositionTransaction r=m_kato
Depends on D65867

Differential Revision: https://phabricator.services.mozilla.com/D65869

--HG--
extra : moz-landing-system : lando
2020-03-09 07:14:19 +00:00
Masayuki Nakano c6ab66e5b6 Bug 1620504 - part 2: Clean up warnings in ChangeStyleTransaction r=m_kato
Depends on D65866

Differential Revision: https://phabricator.services.mozilla.com/D65867

--HG--
extra : moz-landing-system : lando
2020-03-09 03:15:02 +00:00
Masayuki Nakano 9748db36aa Bug 1620504 - part 1: Clean up warnings in CSSEditUtils r=m_kato
Differential Revision: https://phabricator.services.mozilla.com/D65866

--HG--
extra : moz-landing-system : lando
2020-03-09 01:58:24 +00:00
Masayuki Nakano 7bd48e79b8 Bug 1618906 - Make `HTMLEditor` stop handling anything if container of a range in `Selection` is not a content node r=m_kato
It's valid thing that a container of a `Range` of `Selection` is not a content
node.  Actually, it can be a `Document` node.  But it's illegal case for
editor.  So, if `HTMLEditor` meets such case, it does not need to do anything.

This patch makes that if `HTMLEditor` meets the situation at very first time
of public edit action method, it returns "OK" for avoiding new exception case.
Otherwise, i.e., it's an XPCOM API or meeting such situation after a DOM
mutation, returns error.

Differential Revision: https://phabricator.services.mozilla.com/D65278

--HG--
extra : moz-landing-system : lando
2020-03-05 04:39:35 +00:00
Mark Banner 15cfe23b88 Bug 1620542 - Automatically fix ESLint errors in .eslintrc.js files. r=mossop
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D65703

--HG--
extra : moz-landing-system : lando
2020-03-07 10:09:44 +00:00
Boris Zbarsky c6c4a83796 Bug 1535530. Fix can-run-script analysis to not mishandle on-stack refs to RefPtrs. r=andi,masayuki
The key here is to test the type of the variable declaration for being a
smartptr type, instead of testing the type of the variable _use_.

Differential Revision: https://phabricator.services.mozilla.com/D65581

--HG--
extra : moz-landing-system : lando
2020-03-06 09:57:45 +00:00
Masayuki Nakano 85a0bd9a61 Bug 1620135 - Clean up trivial constructor and destructor under libeditor r=m_kato
Differential Revision: https://phabricator.services.mozilla.com/D65448

--HG--
extra : moz-landing-system : lando
2020-03-06 04:38:25 +00:00
Mirko Brodesser 4be580237d Bug 1619617: part 1) Annotate `RemoveRangeAndUnselectFramesAndNotifyListeners` with `MOZ_CAN_RUN_SCRIPT`. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D65511

--HG--
extra : moz-landing-system : lando
2020-03-06 12:03:23 +00:00
Coroiu Cristina e3e3fb9577 Backed out changeset 97a8f04641de (bug 1618906) on request by masayuki 2020-03-05 06:36:44 +02:00
Masayuki Nakano ed016cbd72 Bug 1618906 - Make `HTMLEditor` stop handling anything if container of a range in `Selection` is not a content node r=m_kato
It's valid thing that a container of a `Range` of `Selection` is not a content
node.  Actually, it can be a `Document` node.  But it's illegal case for
editor.  So, if `HTMLEditor` meets such case, it does not need to do anything.

This patch makes that if `HTMLEditor` meets the situation at very first time
of public edit action method, it returns "OK" for avoiding new exception case.
Otherwise, i.e., it's an XPCOM API or meeting such situation after a DOM
mutation, returns error.

Differential Revision: https://phabricator.services.mozilla.com/D65278

--HG--
extra : moz-landing-system : lando
2020-03-04 09:14:44 +00:00
Simon Giesecke dd65843b46 Bug 1613985 - Use default for equivalent-to-default constructors/destructors in editor. r=masayuki
Differential Revision: https://phabricator.services.mozilla.com/D65287

--HG--
extra : moz-landing-system : lando
2020-03-04 09:10:03 +00:00
Masayuki Nakano 9a2dc9a516 Bug 1619647 - Make `WSRunObject::ReplacePreviousNBSPIfUnnecessary()` check `IsEndOfContainer()` before calling `IsCharNBSP()` r=m_kato
I forgot to add this check only here. (I also checked again for all similar
methods' callers.)  So, if the point is end of a text node (i.e., offset equals
its length), `IsCharNBSP()` refers wrong address.

I cannot find a way to reproduce this crash, therefore, this patch does not
have new crashtest.

(Additionally, this corrects the misspell in the method name.)

Differential Revision: https://phabricator.services.mozilla.com/D65279

--HG--
extra : moz-landing-system : lando
2020-03-04 08:15:15 +00:00
Masayuki Nakano 8bdbe3afd6 Bug 1619852 - Fix the mistake in `HTMLEditor::HandleDeleteCollapsedSelectionAtTextNode()` r=m_kato
The check was written with `NS_ASSERTION`, but I realized that it's possible
case with mutation event listeners.  Therefore, I changed it to `if` and
`return`, but I forgot to revert the sign of inequality.

Differential Revision: https://phabricator.services.mozilla.com/D65280

--HG--
extra : moz-landing-system : lando
2020-03-04 06:22:23 +00:00
Masayuki Nakano dace885161 Bug 1449831 - part 4: Add automated tests for `InputEvent.getTargetRanges()` r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D64731

--HG--
extra : moz-landing-system : lando
2020-03-03 03:41:16 +00:00
Masayuki Nakano f5af8613ec Bug 1449831 - part 3: Make editor set target ranges of `beforeinput` event if the editor instance is an `HTMLEditor` r=smaug
In most cases, `InputEvent.getTargetRange()` of `beforeinput` event should
return `Selection` ranges at dispatching the event.

This patch also handles special cases.
* composition change - target range should be the previous composition string
  which will be replaced with new composition string.
* replace text - target range should be the replace range.  This is used by
  spellchecker.
* drop - target range should be the drop point.

However, the other exception is not handled by this patch.  That is, deletions.
The target range(s) should be the range(s) which will be removed.  In most
cases, they also matches selection ranges, but may be extended to:
* surrogate pair boundary
* grapheme cluster boundary like complex emoji
* word/line deletion deletion
* `Backspace` or `Delete` from collapsed selection
* to end of unnecessary whitespaces

For supporting these cases, we need to separate
`HTMLEditor::HandleDeleteSelection()` and its helper methods and helper class
to range computation part and modifying the DOM tree part.  Of course, it
requires big changes and `InputEvent.getTargetRanges()` may be important for
feature detection of `beforeinput` event so that we should put off the big
changes to bug 1618457.

Differential Revision: https://phabricator.services.mozilla.com/D64730

--HG--
extra : moz-landing-system : lando
2020-03-03 03:39:26 +00:00
Masayuki Nakano 0af4f88f9d Bug 1449831 - part 2: Make `InputEventOptions` be able to take target ranges r=smaug
`InputEventOptions` should be able to take target ranges for `beforeinput`
event.  However, it requires to include `StaticRange.h` from `nsContentUtils.h`
even though most `nsContentUtils.h` users don't need it.  Therefore, this patch
moves it from `nsContentUtils.h` to new header file.

And makes `nsContentUtils::DispatchInputEvent()` moves the target ranges
from `InputEventOptions` to `InternalEditorInputEvent`.

Differential Revision: https://phabricator.services.mozilla.com/D64729

--HG--
extra : moz-landing-system : lando
2020-03-03 03:38:43 +00:00
Masayuki Nakano 3406e1e208 Bug 1618089 - part 8: Make `WSRunObject::PrepareToDeleteRange()` take 2 pointers of `EditorDOMPoint` r=m_kato
Note that the input can be `EditorDOMPointInText`, but modified range may start
and/or end with different container.  Therefore, it needs to take
`EditorDOMPoint` rather than `EditorDOMPointInText`.

Differential Revision: https://phabricator.services.mozilla.com/D64339

--HG--
extra : moz-landing-system : lando
2020-03-03 04:35:26 +00:00
Masayuki Nakano c5eeb32fe1 Bug 1618089 - part 7: Make some related methods use `EditorDOMPointInText` for arguments or result r=m_kato
Differential Revision: https://phabricator.services.mozilla.com/D64338

--HG--
extra : moz-landing-system : lando
2020-03-03 01:15:38 +00:00
Masayuki Nakano 8ca8aa8311 Bug 1618089 - part 6: Get rid of `WSRunScanner::WSPoint` r=m_kato
With adding new type, `EditorDOMPointInText` whose container is
`RefPtr<dom::Text>`, we can replace `WSRunScanner::WSPoint` and make
`WSRunScanner` and `WSRunObject` can use its various API.  Then, this
patch adds a lot of `NS_ASSERTION`s which can detect existing bugs.

Note that it may look like redundant that `EditorDOMPointInText::IsChar*()`
requires `EditorDOMPointInText::IsEndOfContainer()` check before that.
However, this makes what the callers check clearer.

Differential Revision: https://phabricator.services.mozilla.com/D64336

--HG--
extra : moz-landing-system : lando
2020-03-02 10:08:59 +00:00
Masayuki Nakano 2d12d4abab Bug 1618089 - part 5: Make `WSRunObject::GetASCIIShitespacesBounds()` return 2 `EditorDOMPoint`s r=m_kato
Before changing `WSPoint` to `EditorDOMPointBase`, we need to change some
methods which are helped by the methods returning `WSPoint`.

Differential Revision: https://phabricator.services.mozilla.com/D64335

--HG--
extra : moz-landing-system : lando
2020-03-02 07:35:49 +00:00
Masayuki Nakano 3b631553d3 Bug 1618089 - part 4: Make `WSRunObject` instantiators guarantee `WSRunObject::mHTMLEditor` lifetime r=m_kato
Some script run methods of `WSRunObject` guarantee the lifetime of its
`mHTMLEditor`.  However, they should be guaranteed by the instantiators
(all of them are `HTMLEditor`).

Differential Revision: https://phabricator.services.mozilla.com/D64334

--HG--
extra : moz-landing-system : lando
2020-03-02 07:35:37 +00:00
Masayuki Nakano febc3dd7e5 Bug 1618089 - part 3: Rename `WSRunScanner::Get(Previous|Next)CharPoint(const WSPoint&)` to `WSRunScanner::Get(Previous|Next)CharPointFromPointInText()` r=m_kato
For making it easier to review the following patches, rename the overloads
of `WSRunScanner::Get(Previous|Next)CharPoint()` which take `WSPoint`.

Differential Revision: https://phabricator.services.mozilla.com/D64333

--HG--
extra : moz-landing-system : lando
2020-03-02 07:35:34 +00:00
Masayuki Nakano abaebf7909 Bug 1618089 - part 2: Rename `WSRunScanner::Get(Next|Previous)CharPointInternal()` to `WSRunScanner::LookFor(Next|Previous)CharPointWithinAllTextNodes()` r=m_kato
They are fallback methods when the container of given point is not a text node
in `WSRunScanner::mNodeArray`, and then, looks for a text node for the given
point.

Differential Revision: https://phabricator.services.mozilla.com/D64332

--HG--
extra : moz-landing-system : lando
2020-03-02 07:33:56 +00:00
Masayuki Nakano b93a2782a0 Bug 1618089 - part 1: Redsign `EditorDOMPointBase` with template methods r=m_kato
Some methods of `EditorDOMPointBase` assumes the container node type is
`nsINode`.  However, it's not good for reuse.  Therefore, this patch makes
most methods of them be template methods.

Differential Revision: https://phabricator.services.mozilla.com/D64331

--HG--
extra : moz-landing-system : lando
2020-03-02 07:33:23 +00:00
Masayuki Nakano 38171fabc5 Bug 1616257 - part 5: Make `WSRunObject` stop keeping `HTMLEditor` as a friend class r=m_kato
With the preceding patches, `HTMLEditor` mostly does not need to be a friend of
`WSRunObject`.

This patch stops it, and adding some self-documented methods for checking
`mStartReason` and `mEndReason`, and also adding self-documented alternative
methods of `GetStartReasonContent()` and `GetEndReasonContent()`.

Differential Revision: https://phabricator.services.mozilla.com/D63616

--HG--
extra : moz-landing-system : lando
2020-02-25 23:19:45 +00:00
Masayuki Nakano 4ef76b0f91 Bug 1616257 - part 4: Use content of `WSScanResult` instead of reason content of `WSRunScanner` if they are same r=m_kato
When `WSScanResult::ReachedCurrentBlockBoundary()` returns true, reached content
of backward scan result is same as the scanner's `GetStartReasonContent()` and
reached content of forward scan result is same as the scanner's
`GetEndReasonContent()`.  For making code in the blocks of
`if (foo.ReachedCurrentBlockBoundary())` easier to understand, we should use
the result's content.

Differential Revision: https://phabricator.services.mozilla.com/D63615

--HG--
extra : moz-landing-system : lando
2020-02-25 12:12:30 +00:00
Masayuki Nakano f5407e4219 Bug 1616257 - part 3: Make `WSRunScanner::NextVisibleNode()` and `WSRunScanner::PriorVisibleNode()` return stack only class instance which storing the visible node as `nsIContent` r=m_kato
They are really messy because they take a lot of out parameters, and these
out parameter meaning is really unclear.  Therefore, they should return
a stack only class instance which explain the meaning with getter methods.
And also it should store the result node as `nsIContent`.

And also this patch adds static methods for them for their users which don't
need `WSRunScanner` instance.

Differential Revision: https://phabricator.services.mozilla.com/D63613

--HG--
extra : moz-landing-system : lando
2020-02-25 12:10:04 +00:00
Masayuki Nakano 6382dae45f Bug 1616257 - part 2: Change `mStartReasonNode` and `mEndReasonNode` to `nsIContent` r=m_kato
Now, all setter guarantee that they are subclass instances of `nsIContent`.

Differential Revision: https://phabricator.services.mozilla.com/D63612

--HG--
extra : moz-landing-system : lando
2020-02-25 09:31:18 +00:00
Masayuki Nakano ca9705cc2b Bug 1616257 - part 1: Redesign `WSRunScanner::GetWSBoundingParent()` r=m_kato
Its result has 4 meanings:

1. an editable block element for container of `mScanStartPoint`.
2. a topmost inline editable content for container of `mScanStartPoint` if there
is no editable block parent.
3. container of `mScanStartPoint` if it's a block (either editable or
non-editable).
4. container of `mScanStartPoint` if its parent is not editable and a inline
content.

#1, #2 and editable case of #3 make sense because the results are topmost
editable content in current context.  On the other hand, non-editable case
of #3 and #4 are caused by unexpected wrong fallback code.

So, let's make it always returns the content in the former meaning and if
the caller needs the latter one, they should use the container by themselves.
Therefore, for making what's the start of the search, this patch also makes
new method take start content instead of hiding `mScanStartPoint` from the
callers.

Differential Revision: https://phabricator.services.mozilla.com/D63610

--HG--
extra : moz-landing-system : lando
2020-02-25 08:58:43 +00:00
Kris Maglione c31aa68fb4 Bug 1535617: Part 2 - Clear weak references for most cycle collected objects on unlink. r=mccr8
This covers most cycle collected objects which support weak references, but
not the ones which inherit from a cycle collected class and don't do any cycle
collection on their own.

Differential Revision: https://phabricator.services.mozilla.com/D63962

--HG--
extra : moz-landing-system : lando
2020-02-25 19:44:39 +00:00
Masayuki Nakano 5f656bfdd1 Bug 1616539 - Make `TextEditor::OnDrop()` compare newly focused element with active editing host r=m_kato
Currently, it checks whether proper element gets focus as expected with
`nsFocusManager::GetFocusedElement()`, but it returns globally focused element.
I.e., it may return different document's element or `nullptr` if application
itself is inactive.

The purpose of the focus check is, `HTMLEditor` can modify contents only in
active editing host.  Therefore, comparing with
`HTMLEditor::GetActiveEditingHost()` is better and simpler for here.

Differential Revision: https://phabricator.services.mozilla.com/D63581

--HG--
extra : moz-landing-system : lando
2020-02-25 01:28:01 +00:00
Sylvestre Ledru ca6530131a Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan,kvark
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D63787

--HG--
extra : moz-landing-system : lando
2020-02-24 15:33:38 +00:00
Masayuki Nakano 1110bedb45 Bug 1613830 - Add `nsINode::GetAsElementOrParentElement()` r=smaug
This patch assumes that only element node can have content node.  I.e., we
won't hit the following `MOZ_ASSERT`:

```
Element* element = nullptr;
nsIContent* content = aContent;
while (content) {
  if (content->IsElement()) {
    element = content->AsElement();
    break;
  }
  content = content->GetParent();
}
MOZ_ASSERT(!content || content == element || content->GetParent() == element);
```

Differential Revision: https://phabricator.services.mozilla.com/D63308

--HG--
extra : moz-landing-system : lando
2020-02-21 02:47:05 +00:00
Simon Giesecke 9350e6b741 Bug 1613985 - Use MOZ_COUNTED_DEFAULT_CTOR_*/MOZ_COUNTED_DTOR_* macros. r=froydnj
This removes the need for explicit #ifdef NS_BUILD_REFCNT_LOGGING without
introducing user-defined destructors when it is not defined.

Also, some uses of virtual for declaring destructors are replaced by the
appropriate override declaration through these changes.

Differential Revision: https://phabricator.services.mozilla.com/D62604

--HG--
extra : moz-landing-system : lando
2020-02-20 11:40:14 +00:00
Dorel Luca d5f9df8ee1 Backed out 2 changesets (bug 1613985) for Build bustage on Windows2012. CLOSED TREE
Backed out changeset fd177b40b561 (bug 1613985)
Backed out changeset fb6d62b7f28d (bug 1613985)
2020-02-19 22:22:41 +02:00
Simon Giesecke 59b23375c0 Bug 1613985 - Use MOZ_COUNTED_DEFAULT_CTOR_*/MOZ_COUNTED_DTOR_* macros. r=froydnj
This removes the need for explicit #ifdef NS_BUILD_REFCNT_LOGGING without
introducing user-defined destructors when it is not defined.

Also, some uses of virtual for declaring destructors are replaced by the
appropriate override declaration through these changes.

Differential Revision: https://phabricator.services.mozilla.com/D62604

--HG--
extra : moz-landing-system : lando
2020-02-19 18:05:38 +00:00
Makoto Kato 1aadd31886 Bug 1359404 - Make IsEmptyNode infaillible. r=masayuki
IsEmptyNode won't return error if parameter is not null. So we shouldn't use
nserror for return value and use assertion to check parameter.

Differential Revision: https://phabricator.services.mozilla.com/D63124

--HG--
extra : moz-landing-system : lando
2020-02-19 05:37:13 +00:00
Mirko Brodesser f170973369 Bug 1615581: part 1) Rename `TableSelection` to `TableSelectionMode`. r=jfkthame
See part 2) why this is necessary.

Differential Revision: https://phabricator.services.mozilla.com/D62902

--HG--
extra : moz-landing-system : lando
2020-02-18 12:28:45 +00:00
Masayuki Nakano a5deb4a2c5 Bug 1611374 - Disallow nested `Document.execCommand()` calls in Nightly and early Beta r=smaug
Chrome does not allow nested `Document.execCommand()` calls:
https://source.chromium.org/chromium/chromium/src/+/master:third_party/blink/renderer/core/editing/commands/document_exec_command.cc;l=75;drc=301e5d079a1b4c29c5b17574d0470e6db7370acc

On the other hand, Safari (and Firefox) allows it.  However, it's worthwhile to
follow Chrome's behavior.

This patch makes `Document::ExecCommand()` return `false` when it's called
while running another `Document::ExecCommand()` call on Nightly and early Beta.
This is exactly same behavior, and we should watch broken web apps reports
for a while before riding this on the train.

And this patch sets the pref to `true` when all crash tests under
`editor/libeditor/crashtests` which depend on nested calls of `execCommand` run
since same things may be reproducible with other DOM APIs.

Differential Revision: https://phabricator.services.mozilla.com/D62815

--HG--
extra : moz-landing-system : lando
2020-02-15 19:17:00 +00:00
Masayuki Nakano fe30c6ad87 Bug 1601532 - Make `test_bug1332876.html` synthesizes on `<span>` element in the `<iframe>` rather than on the `<iframe>` r=smaug
The timeout is caused by that `iframe.contentWindow` may not receive `click`
event (as far as I've tested, neither `mousedown` nor `mouseup` is fired in
that case) when synthesizing a mouse click over the `<iframe>` element with
parent window.  However, if it synthesizes mouse click with `<span>` element
in the `<iframe>` and `iframe.contentWindow`, `click` event is always fired.

Differential Revision: https://phabricator.services.mozilla.com/D62992

--HG--
extra : moz-landing-system : lando
2020-02-16 14:54:11 +00:00
Masayuki Nakano 58a034fe7d Bug 1588688 - part 8: Make `HTMLEditor::DoInsertHTMLWithContext()` and its helper methods use array of `nsIContent` rather than `nsINode` r=m_kato
Finally, this patch makes `HTMLEditor::DoInsertHTMLWithContext()` stop using
array of `nsINode`.

Differential Revision: https://phabricator.services.mozilla.com/D61984

--HG--
extra : moz-landing-system : lando
2020-02-14 07:16:27 +00:00
Masayuki Nakano 839d86eece Bug 1588688 - part 7-10: Make `ReplaceOrphanedStructure()` call `CollectListAndTableRelatedElementsAt()` by itself r=m_kato
For guaranteeing the meaning of `aArrayOfListAndTableRelatedElements`,
`ReplaceOrphanedStructure()` should call
`CollectListAndTableRelatedElementsAt()` by itself rather than taking as
a parameter.

Then, what it does becomes a little bit clearer.  Therefore, this patch renames
`ReplaceOrphanedStructure()` to `EnsureBeginsOrEndsWithValidContent()` and
`DiscoverPartialListsAndTables()` to `GetMostAncestorListOrTableElement()`,
and adds a lot of comments.

As far as I've tested by my hand, the behavior is not changed even though
it's really buggy in some cases.  We should fix them after writing automated
tests in another bug.

Differential Revision: https://phabricator.services.mozilla.com/D61983

--HG--
extra : moz-landing-system : lando
2020-02-14 05:40:37 +00:00
Masayuki Nakano d389b66f9c Bug 1588688 - part 7-9: Make `ReplaceOrphanedStructure()` call `DiscoverPartialListsAndTables()` by itself r=m_kato
For guaranteeing the meaning of list or `<table>` element in
`ReplaceOrphanedStructure()`, it should call `DiscoverPartialListsAndTables()`.
Then, their meaning becomes clearer than coming from its parameter.

Differential Revision: https://phabricator.services.mozilla.com/D61982

--HG--
extra : moz-landing-system : lando
2020-02-14 03:27:16 +00:00
Masayuki Nakano 7656ed2a64 Bug 1588688 - part 7-8: Encapsulate the first and last node fixer into a stack only class r=m_kato
In these patches, we know that there are a lot of helper methods to fix node
list which is created by `SubtreeContentIterator` and will be inserted into
the editor's DOM tree, and they are not used by other places.  So, we can
encapsulate them into a stack only class for making their usage clearer.

Differential Revision: https://phabricator.services.mozilla.com/D61981

--HG--
extra : moz-landing-system : lando
2020-02-14 02:59:32 +00:00
Masayuki Nakano 6725ec2b0e Bug 1601585 - Add a WPT to test selection in a `contenteditable` element with changing `designMode` r=smaug
We should port `editor/libeditor/tests/test_bug622371.html` to WPT.  It was
written for compatibility issue with CKEditor 9 years ago and Gecko and
Blink behave as exactly same.  Only Safari normalize the selection into the
end of the text node, but Safari also does not change selection at turning
on/off `designMode` too.  Therefore, all browser engines have implicit
agreement at least that selection shouldn't be changed at changing
`designMode`.

Differential Revision: https://phabricator.services.mozilla.com/D62813

--HG--
extra : moz-landing-system : lando
2020-02-15 08:18:20 +00:00
Masayuki Nakano 55963fc5b9 Bug 1588688 - part 7-7: Clean up `HTMLEditor::ReplaceOrphanedStructure()` r=m_kato
Unfortunately, even with this cleaning up, I don't understand what it does
because existing comment and what actually it does seem different.

Differential Revision: https://phabricator.services.mozilla.com/D61980

--HG--
extra : moz-landing-system : lando
2020-02-13 09:06:44 +00:00
Masayuki Nakano 784573927c Bug 1588688 - part 7-6: Clean up `HTMLEditor::DiscoverPartialListsAndTables()` r=m_kato
`HTMLEditor::DiscoverPartialListsAndTables()` can be static and we can make
its definition simpler.  However, due to the odd logic, I'm still not sure
what it does.  I'll update it after cleaning up its result user,
`HTMLEditor::ReplaceOrphanedStructure()`.

Differential Revision: https://phabricator.services.mozilla.com/D61979

--HG--
extra : moz-landing-system : lando
2020-02-13 08:42:22 +00:00
Masayuki Nakano 817ac3e98e Bug 1588688 - part 7-5: Clean up `HTMLEditor::CreateListOfNodesToPaste()` r=m_kato
`HTMLEditor::CreateListOfNodesToPaste()` can be static and it does not need to
take `DocumentFragment` as an argument if the range is always specified.
For avoiding 2 input path to specify a range, we should make it take only
range boundaries and array of nodes to return the collected nodes.

Differential Revision: https://phabricator.services.mozilla.com/D61978

--HG--
extra : moz-landing-system : lando
2020-02-13 04:49:43 +00:00