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

8288 Коммитов

Автор SHA1 Сообщение Дата
Olli Pettay af3373dc1d Bug 1418002 - Remove HTMLContentElement, r=jessica 2017-11-30 10:57:15 +02:00
Edgar Chen d9305463a9 Bug 1421561 - Use IgnoredErrorResult in TextEditRules::WillInsertText(); r=masayuki
MozReview-Commit-ID: 5LV5lVEWKO1

--HG--
extra : rebase_source : 75a434db4d01ce3e82f27ab73017ccc0653af08f
2017-11-29 17:09:53 +08:00
Masayuki Nakano f989a6c4d5 Bug 1419745 - part 3: CreateElementTransaction and SplitNodeTransaction should store DOM point with EditorDOMPoint rather than RangeBoundary r=m_kato
CreateElementTransaction and SplitNodeTransaction store DOM point with
RangeBoundary now.  However, it refers next child of referring point.
Therefore, if it's moved to different container or removed from the DOM
tree, they cannot do undo/redo.  We can say for the child node, however,
it doesn't make sense depending on a node which is not directly referring.

MozReview-Commit-ID: Baohbub3RNZ

--HG--
extra : rebase_source : 6776420271cdaf91aae6213fb6e1bcf1841112b1
2017-11-28 17:13:15 +09:00
Masayuki Nakano 83d8db0fdc Bug 1419745 - part 2: Make EditorDOMPointBase store child node at offset instead of previous sibling of child node at offset r=m_kato
EditorDOMPointBase should store child node at offset directly rather than
previous sibling of child node at offset because if referring child node or
its previous sibling is moved to different DOM point,
EditorDOMPointBase::GetChildAtOffset() may return different node.  However,
users of this class assumes that after it stores child node at offset, it'll
return same node.

So, EditorDOMPointBase should store child node instead of "ref".  Additionally,
when it stores nullptr as the child, it should set mOffset to length of the
mContainer because it means it refers after the last child.

MozReview-Commit-ID: 7ZdkwKLJEjo

--HG--
extra : rebase_source : c2a0a1be1285466e5fa96162779e86c37ae78655
2017-11-23 04:09:00 +09:00
Masayuki Nakano 1bb0ec153d Bug 1419745 - part 1: Make EditorDOMPointBase not a sub class of RangeBoundaryBase and duplicate methods of RangeBoundaryBase into EditorDOMPointBase r=m_kato
EditorDOMPointBase should store child at offset for editor uses.  E.g., when
editor wants to refer a node as child node of an EditorDOMPoint instance,
even if the node is unexpectedly moved to different container, editor wants
to keep referring the child node rather than its previous sibling.

Therefore this patch makes EditorDOMPointBase not a sub class of
RangeBoundaryBase but copying all methods and members of RangeBoundaryBase
into EditorDOMPointBase for keeping current behavior completely.

MozReview-Commit-ID: LIyPFkCfsZ9

--HG--
extra : rebase_source : fd76c4808625f8f8a86f7b4e4c1ac22fbdc11dd5
2017-11-23 00:15:29 +09:00
Emilio Cobos Álvarez ec75854b21 Bug 1035091: Disable @-moz-document on author sheets on nightly and early beta. r=xidorn
MozReview-Commit-ID: AAUs1jJifjS

--HG--
extra : rebase_source : b3334ff237e66fd75ef87aa92c4c9a56fef2119f
2017-11-29 22:16:46 +01:00
Masayuki Nakano 09957e4f47 Bug 1421877 - Fix some warnings which hit (almost) always in EditorDOMPointBase r=m_kato
There are 3 spam warning assertion in EditorDOMPointBase.

One is in constructor. Which warns if IsSet() returns false, but it checks
before finishing initializing.

The others are in IsStartOfContainer() and IsEndOfContainer().  They try to
check if mOffset is valid value with current DOM tree if it's initialized
when it's at start or end of the container.  However, they do it even when
it's not start nor end of the container.

This patch fixes those spammers.

MozReview-Commit-ID: DvFa501m9V0

--HG--
extra : rebase_source : c97ac371054a54eabc07b3ec726b924d6be61e25
2017-11-30 13:21:12 +09:00
Makoto Kato 7f97c4e179 Bug 1408829 - Make spellCheckAfterEditorChange as noscript. r=masayuki
No one uses nsIInlineSpellChecker.spellCheckAfterEditorChange from script.
So I think we can mark this interface as noscript.

Since this method is scriptable, we need QI to get nsIDOMNode.  If we can
change to noscript, it can reduce QI to get nsIDOMNode.

MozReview-Commit-ID: GC0WuFyTlaZ

--HG--
extra : rebase_source : 16ca9fc548e86747ac17407be48295c709174fb5
2017-11-29 18:00:11 +09:00
Makoto Kato 90bfbaba4c Bug 1416080 - Part 2. CreateMozBR should use native dom node. r=masayuki
Part 1. moves native dom method of CreateBR, so we should use it for
CreateMozBR, and use native dom as parameter.

MozReview-Commit-ID: DHUB88HfowQ

--HG--
extra : rebase_source : 00fefd12b50bef0f1a9bd69e1b7992a19999d42f
2017-11-27 15:05:04 +09:00
Makoto Kato 71d57c8182 Bug 1416080 - Part 1. Move all CreateBR methods to TextEditor. r=masayuki
One of CreateBR is still virtual method, but it is unnecessary to use it.
So we should remove virtual keyword and remove override method.

Also, we should move native dom version of CreateBR to TextEditor to use it
on TextEdtitor.

MozReview-Commit-ID: GCazJtY4urV

--HG--
extra : rebase_source : 8e0d71631f0070a928bc0f4817dd6efe7c833f1b
2017-11-27 15:01:11 +09:00
Masayuki Nakano 32d89118c3 Bug 1420415 - TextEditor::CreateBRImpl() needs to make pointToInsertBrNode store mOffset before calling EditorBase::CreateNode() r=m_kato
When TextEditor::CreateBRImpl() splits a text node before inserting new <br>
element, it initializes pointToInsertBrNode only with the right text node.
Then, it refers its Offset() after inserting new <br> node before the point.
Therefore, the offset is computed with the new DOM tree.  So, adding 1 to
the offset is redundant only in this case.

So, before calling CreateNode(), it needs to make pointToInsertBrNode store
offset with calling its Offset().

Note that this ugly code will be replaced with patches for bug 1408227.
Additionally, this doesn't use AutoEditorDOMPointChildInvalidator because
it's not available in 58 but we need to uplift this patch.

Finally, I'm not sure how to check this in automated tests.  Therefore, this
patch doesn't include automated tests.

MozReview-Commit-ID: IaQBonoGawR

--HG--
extra : rebase_source : a89559932f27d98a02baf3e207c6be3c2a545aad
2017-11-24 23:17:38 +09:00
Masayuki Nakano c06378ebc9 Bug 1413181 - part 13: HTMLEditRules::MaybeSplitAncestorsForInsert() should be able to return a DOM point in text node r=m_kato
HTMLEditRules::MaybeSplitAncestorsForInsert() may be called with a point in a
text and it needs to return given split point as is.  Additionally, the given
point may be in a text node.  So, it may not be represented with an
nsCOMPtr<nsIContent>.

Therefore, we need to add new member, EditorDOMPoint, to SplitNodeResult and
when MaybeSplitAncestorsForInsert() needs to return the given point as is,
it should use it.

Note that if the methods which return SplitNodeResult split some nodes actually,
the left node and/or the right node may be removed from the DOM tree.  In this
case, EditorDOMPoint cannot store such orphan node.  Therefore, we cannot
make mNextNode nor mPreviousNode EditorDOMPoint.

MozReview-Commit-ID: LwH8RZzkrmT

--HG--
extra : rebase_source : a5ae2328bef3d887c0bf4e1b9c4a4247b93a4ac0
2017-11-19 11:05:26 +09:00
Masayuki Nakano 7537ae3755 Bug 1413181 - part 12: Redesign and rename HTMLEditRules::SplitAsNeeded() r=m_kato
Now, we can make HTMLEditRules::SplitAsNeeded() use |SplitNodeResult| as its
result and |const EditorRawDOMPoint&| as specifying start of the deepest right
node.  Then, the implementation becomes simpler.

And I think that we should rename it to MaybeSplitAncestorsForInsert().

Additionally, this patch makes it stop calling
EditorBase::IsDescendantOfEditorRoot() and HTMLEditor::GetActiveEditingHost()
because they are really expensive.  Instead, it should check if the given start
point of the deepest right node is in active editing host before the loop and
if the loop reaches editing host.

MozReview-Commit-ID: KKpj5uyT2J

--HG--
extra : rebase_source : 0c9e9e9e28505b0fb5752e1cd4d42f64d22af3e7
2017-11-17 16:03:11 +09:00
Masayuki Nakano 02038d75da Bug 1413181 - part 11: Create AutoEditorDOMPointOffsetInvalidator stack class for automatically invalidate offset of EditorDOMPoint r=m_kato
In the following patch, we need to invalidate offset a lot of places after
splitting nodes.  Therefore, there should be a helper stack class before that.

MozReview-Commit-ID: BgijAU7OizU

--HG--
extra : rebase_source : 520f29dacdffe5f7137ba7f11b289241b5fbface
2017-11-17 17:00:56 +09:00
Masayuki Nakano 419273aff1 Bug 1413181 - part 10: Redesign EditorBase::SplitNodeDeep() r=m_kato
First of all, this patches fixes a bug of EditorBase::CreateNode().  It takes
|EditorRawDOMPoint&| but it should be |const EditorRawDOMPoint&| for making
callers can specify temporary instances.

Next, this patch creates |SplitNodeResult| stack class for result of
EditorBase::SplitNodeDeep().  SplitNodeDeep() needs to return previous node
and next node of split point.  They are called as left node and right node,
but these calls are really different term usage.  Therefore, this patch names:

aOutLeftNode -> SplitNodeResult::GetPreviousNode()
aOutRightNode -> SplitNodeResult::GetNextNode()

and also declares SplitNodeResult::GetLeftNode() and
SplitNodeResult::GetRightNode() which are same meaning as left/right node of
other splitting methods.

Additionally, of course, this patch makes SplitNodeDeep() use
|const EditorRawDOMPoint&| to receive the start point of right node.

MozReview-Commit-ID: FnJpeKgtzm4

--HG--
extra : rebase_source : 3829e5528ef837b13fed305e0df1dbbf00e02a07
2017-11-16 12:09:57 +09:00
Masayuki Nakano f9e1aa29a0 Bug 1413181 - part 9: Make EditorBase::SplitNodeDeep() use EditorDOMPoint in the loop r=m_kato
Make the loop in EditorBase::SplitNodeDeep() use EditorDOMPoint for making the
code simpler.

MozReview-Commit-ID: 3do3rWV4eIh

--HG--
extra : rebase_source : 480a5b5b133d8a735bda6ddec07e4edf9ef34035
2017-11-13 16:44:58 +09:00
Masayuki Nakano ebd9a98d13 Bug 1413181 - part 8: Merge two if blocks in the loop of EditorBase::SplitNodeDeep() r=m_kato
Now, we can merge two if blocks in the loop of EditorBase::SplitNodeDeep() and
get rid of |didSplit| variable.

MozReview-Commit-ID: LJZHF6x2GLR

--HG--
extra : rebase_source : 5f58508f6fc0928236252670c85383a13200fc2c
2017-11-13 15:51:56 +09:00
Masayuki Nakano d8cfeab3e4 Bug 1413181 - part 7: EditorBase::SplitNodeDeep() should stop splitting orphan node if it meets an orphan node before meeting the most ancestor node to be split r=m_kato
This doesn't change any meaning of the loop.

It is a bug if the loop meets orphan node before meeting the most ancestor
node to be split which is given as aNode.  So, we can check it before trying
to split it.

MozReview-Commit-ID: 1TD7WHCoZh1

--HG--
extra : rebase_source : 17b8d7b3db458e29fb52be5cedb900560e1b70a4
2017-11-13 15:38:23 +09:00
Masayuki Nakano bf54c638b2 Bug 1413181 - part 6: Rename mozilla::EditorBase::EmptyContainers enum class to mozilla::SplitAtEdges for making its values clearer r=m_kato
EmptyContainers::yes and EmptyContainers::no are not so clear name what they
mean.

They means whether NodeSplitDeep() creates or won't create empty nodes when
split point is at start edge or end edge of an element.

This patch renames them to SplitAtEdges::eDoNotCreateEmptyContainer and
SplitAtEdges::eAllowToCreateEmptyContainer and make
HTMLEditor::InsertNodeAtPoint() use it instead of an bool argument.

Additionally, the argument of NodeSplitDeep() is now not optional because
this difference is really important when you read around the callers.

MozReview-Commit-ID: 9hpMRkVDvCg

--HG--
extra : rebase_source : ee892361d66c9c9c5ed45ee9d3321474257ac417
2017-11-13 14:35:16 +09:00
Masayuki Nakano d94b3f0152 Bug 1413181 - part 5: HTMLEditRules::SplitParagraph() should take EditorRawDOMPoint instead of a set of container node and offset r=m_kato
Although, we need to make WSRunObject::PrepareToSplitAcrossBlocks() in
another bug, we should do it now for making HTMLEditRules::ReturnInParagraph()
implementation simpler.

MozReview-Commit-ID: AoMYqAEgCaV

--HG--
extra : rebase_source : cdfb16379f4ecab2a2694aeb283edd111fc81e95
2017-11-16 13:26:58 +09:00
Masayuki Nakano 11db05dbea Bug 1413181 - part 4: Redesign nsIEditActionListener::DidSplitNode() r=m_kato
nsIEditActionListner::DidSplitNode() takes 4 arguments, the right node,
old offset in the old right node before splitting, the new left node and
nsresult.

Computing offset for this doesn't make sense because it's always same as
the length of the left node.  Additionally, nobody currently use nsersult.
So, we can get rid of it now.

Fortunately, nobody including comm-central and BlueGriffon implements
WillSplitNode().  So, we can get rid of it.  However, removing interface
method should be done in a follow up bug.  So, we can remove offset computation
in EditorBase::SplitNode() completely in the future.

MozReview-Commit-ID: JWj34SjBNJh

--HG--
extra : rebase_source : f0e1ed0e466dc8217c1a0ab1722790883a7efd1f
2017-11-13 23:52:16 +09:00
Masayuki Nakano 070ede0cf4 Bug 1413181 - part 3: EditorBase::CreateTxnForSplitNode() and EditorBase::SplitNode() should take EditorRawDOMPoint to specify the start of right node r=m_kato
EditorBase::CreateTxnForSplitNode() and EditorBase::SplitNode() takes a set of
container and offset in it for specifying a point to split.

Instead, they should take EditorRawDOMPoint for specifying start of right node.

MozReview-Commit-ID: 5VwS8oudzIT

--HG--
extra : rebase_source : 727948e5cf95f0713019f57ae9a007b85569fa56
2017-11-12 11:30:30 +09:00
Masayuki Nakano 9f55e71184 Bug 1413181 - part 2: SplitNodeTransaction should store start of existing right node with RangeBoundary r=m_kato
Make SplitNodeTransaction stores start of existing right node (which will be
split) instead of split point as a pair of the right node and offset in it.

MozReview-Commit-ID: 2DIpJGSuNaC

--HG--
extra : rebase_source : 13949bdddc30c59462e7fea7fadf29f015ab8d3a
2017-11-12 09:27:19 +09:00
Masayuki Nakano 1e31c0d7b6 Bug 1413181 - part 1: Redesign EditorBase::SplitNodeImpl() with EditorDOMPoint r=m_kato
EditorBaseSplitNodeImpl() should be clean up with EditorDOMPoint which should
be an argument to point the first point of right node (existing split node).

MozReview-Commit-ID: DN0yHm9G9yT

--HG--
extra : rebase_source : 256b4e2125e831b7be9e5c4aefc6f04c80e3c1f5
2017-11-12 08:38:56 +09:00
Masayuki Nakano 806984a06a Bug 1417492 - HTMLEditRules::TryToJoinBlocks() should no do nothing when left list node and right list node are not descendant of each other r=m_kato
We hit assertion which were added by bug 1414713.  That tells us an ancient bug.

There is comment which claims that we should move all list items in the right
list node to left list node if the list nodes should be merged.  However, this
has never been done actually since 2002.  The code tried to move *some* list
items in the right list node to the list list node.  However, retrieving first
list item at an offset almost always failed because the offset variable has
never been initialized.

If we believe the comment, we should move all children of the right list node
to the left list node.  However, until we get a testcase to reach this case,
we should keep current behavior, i.e., do nothing, for unexpected regression.

MozReview-Commit-ID: 1r81q1m44oW

--HG--
extra : rebase_source : fc02520f76440d5900fec0517aa6bcd188e1a14f
2017-11-18 16:12:44 +09:00
Makoto Kato 9761443d2a Bug 1417400 - Get rid of nsIContentFilter. r=masayuki
m-c, c-c and bluegriffon don't use this interface. So we should remove this.

MozReview-Commit-ID: 92VwGKlrOw5

--HG--
extra : rebase_source : 003763c6abc1406bcffabbffc3fe0696985ee97a
2017-11-16 13:36:10 +09:00
Makoto Kato 090fe8ebd5 Bug 1417344 - Clean up HTMLEditor::InsertBR. r=masayuki on a CLOSED TREE
--HG--
extra : amend_source : bae27242fcf6e011ba4d1b5e11b5e02a1ddd3bb9
2017-11-17 14:10:07 +02:00
Bogdan Tara b33ee612be Backed out 1 changesets (bug 1417344) for failing test_appinfo.py TestAppInfo.test_invalid_properties r=backout on a CLOSED TREE
Backed out changeset 0d56e0d42f4a (bug 1417344)
2017-11-17 09:44:19 +02:00
Makoto Kato d85b9324d9 Bug 1417344 - Clean up HTMLEditor::InsertBR. r=masayuki
No one uses out parameter of InsertBR, so we should remove it.  Also, CreateBR
has direction parameter for selection, so we should use it.

MozReview-Commit-ID: 8heqaXpR9He

--HG--
extra : rebase_source : 27b952f080a70fe039c9b43d7ae9f1394d4de01e
2017-11-16 13:59:14 +09:00
Makoto Kato afef034e5f Bug 1417320 - ReturnInParagraph should have Element parameter instead of nsINode. r=masayuki
ReturnInListItem and ReturnInHeader uses Element as parameter, but
ReturnInParagraph doesn't use Element parameter even if it is Element.

So we should use Element for parameter.

MozReview-Commit-ID: 35JJTETFK45

--HG--
extra : rebase_source : aa101c921d176b7ae7807c461bca1c4a51f9aecc
2017-11-15 15:35:17 +09:00
Nicholas Nethercote 20ffb0878f Bug 1416622 - Tighten up libpref's process checking. r=glandium
libpref only allows pref modifications in the parent process. This patch
tightens up the checking, which is a bit inconsistent.

- It removes ENSURE_MAIN_PROCESS_WITH_WARNING, which does NS_WARNING on
  failure, and replaces its uses with ENSURE_MAIN_PROCESS, which does NS_ERROR
  on failure. This required adding an XRE_IsParentProcess() check to one place
  in editor/.

- It converts XRE_IsContentProcess() tests to !XRE_IsParentProcess(), because
  we now have multiple kinds of non-parent process.

- It uses ENSURE_MAIN_PROCESS to replace other checking code in a few places.

- It improves a comment in HandleDirty().

MozReview-Commit-ID: D8znQWH7ery

--HG--
extra : rebase_source : ea0fc095b31525bde82a1be217923512d030b76d
2017-11-13 09:19:55 +11:00
Masayuki Nakano 13f0d7e107 Bug 1416099 - part 7: Make HTMLEditRules::ReturnInParagraph() use start of selection to split parent block instead of receiving the point from arguments r=m_kato
Now, we know HTMLEditRules::ReturnInParagraph() always splits the parent block
at start of selection.  So, it doesn't need to receive the position from the
caller because the cost to get start of selection from first range of Selection
is really cheap.

MozReview-Commit-ID: EvNb6lUBLdt

--HG--
extra : rebase_source : 448fcb4e3a3c6df777825e8747839d6cd9ee2d56
2017-11-10 16:51:24 +09:00
Masayuki Nakano a9b50a718e Bug 1416099 - part 6: Make HTMLEditRules::WillInsertBreak() use EditorDOMPoint to store selection start r=m_kato
The only caller of HTMLEditRules::ReturnInParagraph() is
HTMLEditRules::WillInsertBreak().  It should use EditorDOMPoint for storing
selection start.

Then, this patch makes what is set to ReturnInParagraph() clear.  So, the
point ReturnInParagraph() is always start of selection.

MozReview-Commit-ID: 6X0P5gpwXKr

--HG--
extra : rebase_source : d1814e5b7c8e4005886607691b37fe6a83e8e5be
2017-11-10 16:10:06 +09:00
Masayuki Nakano 0483ace6db Bug 1416099 - part 5: Rename |selNode|, |selOffset| and |newSelNode| in HTMLEditRules::ReturnInParagraph() to proper names r=m_kato
|selNode| and |selOffset| in HTMLEditRules::ReturnInParagraph() store the
point to split |aParentDivOrP|.  So, they should be |containerAtSplitPoint|
and |offsetAtSplitPoint|.

Then, |newSelNode| can be renamed to |splitAfterNewBR|.

MozReview-Commit-ID: 1DcmLNx1Cff

--HG--
extra : rebase_source : 38e7e1ec68c060da3ea31f694243adc004eeece7
2017-11-10 17:44:03 +09:00
Masayuki Nakano 71cdd5a933 Bug 1416099 - part 4: Make HTMLEditRules::ReturnInParagraph() use EditorRawDOMPoint to store point to insert new <br> element before splitting the parent block r=m_kato
HTMLEditRules::ReturnInParagraph() stores point to insert new <br> element with
a set of |parent|, |node| and |offset|.  Their names are really unclear and
they're really messy.

So, let's use new local variable, |EditorRawDOMPoint pointToInsertBR|.  This is
set only when new <br> element is necessary.  So, we can get rid of
|newBRneeded| too.

MozReview-Commit-ID: EdnhnlokurN

--HG--
extra : rebase_source : d97a985d71a7b4552ccdeedde55f8b7fcb0be590
2017-11-10 17:24:39 +09:00
Masayuki Nakano aee5a42ba9 Bug 1416099 - part 3: Rename aPara of HTMLEditRules::ReturnInParagraph() to aParentDivOrP and make it and aSelection as references r=m_kato
This cleans up |aSelection| and |aPara| of HTMLEditRules::ReturnInParagraph().

|aSelection| should be reference for avoiding nullptr check.

|aPara| is so too.  Additionally, the name is not clear.  We should rename it
to |aParentDivOrP| because it's a block parent of the point and has to be
<div> or <p> element.

MozReview-Commit-ID: 8LbKGlrvaIj

--HG--
extra : rebase_source : e0593c916791ec5b39b4138e21b6ce8c680dc4d8
2017-11-10 14:58:53 +09:00
Masayuki Nakano 77dd49f0f4 Bug 1416099 - part 2: Rename |sibling| in HTMLEditRules::ReturnInParagraph() to |brNode| r=m_kato
The local variable |sibling| in HTMLEditRules::ReturnInParagraph() is set to
aBRNode of SplitParagraph().  So, the name should be renamed to |brNode|.

Then, the |brNode| should be cleared if it's not a <br> node actually.  However,
SplitParagraph() doesn't allow aBRNode to be nullptr.  aBRNode is only used to
remove it from the document if it's not necessary.  So, it should be able to be
nullptr.  Therefore, this patch changes SplitParagraph() too.

Note that SplitParagrah() is called only by ReturnInParagraph().  So, we don't
need to worry about other callers.

MozReview-Commit-ID: 7Ynk9m5F8Mi

--HG--
extra : rebase_source : e2583c70ad274fe74f48df687796ed71a66bdf98
2017-11-10 14:43:13 +09:00
Masayuki Nakano 69c8b0b603 Bug 1416099 - part 1: Make HTMLEditRules::ReturnInParagraph() use EditActionResult r=m_kato
For reducing the number of arguments of HTMLEditRules::ReturnInParagraph(),
let's make it return EditActionResult and get rid of |aCancel| and |aHandled|.

MozReview-Commit-ID: HU1SthEjonn

--HG--
extra : rebase_source : 072865996aaccc63924c34f91014b41b64aa1a16
2017-11-10 14:17:54 +09:00
Ryan VanderMeulen ef843a0e30 Merge m-c to inbound. a=merge 2017-11-10 16:14:16 -05:00
Kyle Machulis f25f505bc5 Bug 1415747 - Remove nsIDOMHTMLScriptElement; r=bz
MozReview-Commit-ID: 3I7qVTsKFJC
2017-11-10 13:10:00 -08:00
Masayuki Nakano 68294ac1d3 Bug 1415445 - part 4: EditorBase::CreateNode() should take EditorRawDOMPoint as insertion point instead of a set of container, child and offset of the child in the container r=m_kato
EditorBase::CreateNode() should take EditorRawDOMPoint as insertion point of
the new element instead of a set of container, child and offset of the child
in the container.

This patch initializes EditorRawDOMPoint with original 3 arguments as far as
possible.  If the relation of them are broken, MOZ_ASSERT in RawRangeBoundary
constructor detects existing bugs.

MozReview-Commit-ID: 2N55S6pRv7k

--HG--
extra : rebase_source : 2b14a7715815ca0007635b8f791ca9edbe5b65f1
2017-11-08 20:23:10 +09:00
Masayuki Nakano 82358b9f2e Bug 1415445 - part 3: nsIEditActionListener's WillCreateElement() and DidCreateElement() should take child node at insertion point or new node itself rather than the container node and offset in it r=m_kato
nsIEditActionListener::WillCreateElement() and
nsIEditActionListener::DidCreateElement() are implemented only by m-c.

So, we can remove a set of container node and offset in it from their argument.
Instead, WillCreateElement() should take a node which will be next sibling of
the new node.

Note that only implementation of them is, HTMLEditRules::DidCreateElement().
So, we can get rid of them and can call HTMLEditRules::DidCreateElement()
directly from EditorBase::CreateNode().  However, such change should be done
in another bug which checks all nsIEditActionListener method implementations.

MozReview-Commit-ID: 4LQEs2WwrVC

--HG--
extra : rebase_source : ee1bee1413c578b2873a291c712b8ef46221db0f
2017-11-08 18:16:46 +09:00
Masayuki Nakano 9dd0af5112 Bug 1415445 - part 2: EditorBase::CreateTxnForCreateElement() should take EditorRawDOMPoint for insertion point r=m_kato
The constructor of CreateElementTransaction now takes EditorRawDOMPoint instead
of a set of container node and offset in it.  So, its only user,
EditorBase::CreateTxnForCreateElement(), should take EditorRawDOMPoint too.

MozReview-Commit-ID: A8QfPM3LRii

--HG--
extra : rebase_source : 4a99e5cb58230649d19faca788a330fe02eb6bb1
2017-11-08 17:23:28 +09:00
Masayuki Nakano ae419aa495 Bug 1415445 - part 1: CreateElementTransaction should use EditorRawDOMPoint and RangeBoundary r=m_kato
The constructor of CreateElementTransaction should use EditorRawDOMPoint to
receive insertion point of the new element.  Then, it should be stored with
RangeBoundary.  With this change, CreateElementTransaction doesn't need to
compute child node at insertion point.

Additionally, this creates InsertNode() method.  Current code works differently
when DoTransaction() is called and RedoTransaction() is called.

MozReview-Commit-ID: 8ujhmzn65Wg

--HG--
extra : rebase_source : 30cc045a30a3836f211d11e5f70a85804f44a72a
2017-11-08 16:49:06 +09:00
Masayuki Nakano 7c53b094a1 Bug 1415414 - Make DeleteRangeTransaction::CreateTxnsToDeleteBetween() and DeleteRangeTransaction::CreateTxnsToDeleteContent() use RawRangeBoundary as their arguments r=m_kato
By the fix of bug 1407352, DeleteRangeTransaction::CreateTxnsToDeleteBetween()
starts to use child node instead of a set of container node and offset in it.
However, this is ugly and using RawRangeBoundary may reduce computing offset
more.  So, they should use RawRangeBoundary to refer delete points.

MozReview-Commit-ID: pwDHOxpz0E

--HG--
extra : rebase_source : 3871ba4fa3cfb174d5dac57822ae69c40a305323
2017-11-08 15:01:23 +09:00
Masayuki Nakano 806668b21a Bug 1415062 - part 2: Editor should use Selection::Collapse(const RawRangeBoundary&) as far as possible r=m_kato
In some places, editor computes index from child node for collapsing selection
at the child node.  However, it's expensive.  Therefore, editor should use
Selection::Collapse(const RawRangeBoundary&) as far as possible.

MozReview-Commit-ID: LF2MwASuXzZ

--HG--
extra : rebase_source : b7afc35c0d9d88845391b6f18de57cbff1935ae4
2017-11-07 19:50:25 +09:00
Narcis Beleuzu 218e1676cb Merge inbound to mozilla-central r=merge a=merge 2017-11-08 12:51:09 +02:00
Makoto Kato 5edeee8f72 Bug 1414581 - Part 2. Add crashtest. r=masayuki
MozReview-Commit-ID: 3H4DSubkt0q

--HG--
extra : rebase_source : e34e609f0056398f799dc6dbdf769cca89a412df
2017-11-06 17:06:09 +09:00
Makoto Kato 44e777349b Bug 1414581 - Part 1. Require more nullptr check of parent node. r=masayuki
Bug 1402904 added nullptr check for parent node, but I forgot to add this
nullptr check of selected node for outdent command.
So I need to add more nullptr check.

MozReview-Commit-ID: Au9wrG6htk8

--HG--
extra : rebase_source : bd73b1b667b6dc869ebcea3fdfbe1eb3b04a8cde
2017-11-06 17:05:37 +09:00
Margareta Eliza Balazs 130574a8e2 Merge mozilla-central to mozilla-inbound. r=merge a=merge CLOSED TREE 2017-11-08 00:09:29 +02:00
Boris Zbarsky 1d9f0307ac Bug 1413253. Make sure to make it clear that we'd report a JS exception on the ErrorResult in InsertNodeTransaction::DoTransaction. r=peterv
MozReview-Commit-ID: 2DEPzwwXbX9
2017-11-07 15:36:41 -05:00
Masayuki Nakano 365f79c262 Bug 1414713 - EditorUtils::IsDescendantOf() should take EditorDOMPoint and EditorRawDOMPoint as out param r=catalinb,m_kato
EditorUtils::IsDescendantOf() current takes a pointer to offset or a pointer to
child content if the caller needs to know the child of the most ancestor node.

However, some callers should get a child as EditorDOMPoint or EditorRawDOMPoint.
Then, they can be used for some editor methods which need to take child node
for performance optimization.

This patch makes EditorUtils::IsDescendantOf() as only two overloads.  One takes
pointer to EditorRawDOMPoint as optional out argument.  The other takes pointer
to EditorDOMPoint as an out param.

Additionally, this creates new constructor of AutoTrackDOMPoint for making it
can treat EditorDOMPoint directly.

MozReview-Commit-ID: IsAGTUvKI19

--HG--
extra : rebase_source : 97469a21b974c6a1dd515ab472bbc4a88c1899c8
2017-11-06 17:01:33 +09:00
Dão Gottwald e57bb9cb2e Bug 464450 - Get rid of the padded class and clean up related styling. r=mak
MozReview-Commit-ID: KYKqH9vLQ3x

--HG--
extra : rebase_source : 6242214b0c8efd8fde15714d53dd7fd63c082835
2017-11-07 14:15:19 +01:00
Masayuki Nakano 45ce515072 Bug 1408544 - part 2: RangeBoundaryBase shouldn't compute mRef when mOffset is specified r=catalinb
RangeBoundaryBase shouldn't compute mRef when it's initialized with offset.
E.g., some users of the template class may initialize it with a container and
offset in it but it may not refer mRef or may refer after modifying offset.

On the other hand, RangeBoundaryBase::InvalidateOffset() is a special method.
It assumes that mRef is always initialized when it's called but can be
invalidate mOffset until retrieved actually.  This is necessary for
nsRange::mStart and nsRange::mEnd since the offset may be changed when
some nodes are inserted before the referring node.

So, now, InvalidateOffset() should be a protected method and make nsRange a
friend class of RangeBoundaryBase.  Then, when nsRange sets mStart and/or mEnd,
nsRange itself should guarantee that their mRefs are initialized.

MozReview-Commit-ID: Alr4YkDXIND

--HG--
extra : rebase_source : 7e6828374db7989ae91b9e485571ec553f7435af
2017-11-02 21:25:14 +09:00
Masayuki Nakano 8b6c211c36 Bug 1408544 - part 1: Reimplement EditorDOMPoint as a subclass of RangeBoundary r=catalinb,m_kato
A lot of methods in editor returns a child offset with an out param when it
returns its container and offset in the container.  This is ugly hack for
performance of nsINode::IndexOf().  However, there are a lot of regression
since the relation between offset and child node can be broken really easily.

So, we should make EditorDOMPoint as a subclass of RangeBoundary and manage
a set of container, reference child and its offset in it (e.g.,
SetNextSibling() added by this patch).

Note that RangeBoundary's performance is not good for temporary use if we set
a point with offset, it immediately retrieves mRef.  The following patch will
improve this performance.

MozReview-Commit-ID: 7mcJ1P1OjVr

--HG--
rename : editor/libeditor/EditorUtils.h => editor/libeditor/EditorDOMPoint.h
extra : rebase_source : 785094fcfc592d9e5b48cbc36ed225dbb8bb4111
2017-11-01 14:41:03 +09:00
Phil Ringnalda 202bbba5f7 Backed out changeset aa14c955261c (bug 464450) for Win10 debug non-e10s failures in editor reftests
MozReview-Commit-ID: J83gCo2oGUh
2017-11-06 19:55:01 -08:00
Dão Gottwald 7ca44028ae Bug 464450 - Get rid of the padded class and clean up related styling. r=mak
MozReview-Commit-ID: 5uPRgLiSu0Q

--HG--
extra : rebase_source : 4a271f0eb515546586918412c062c3ea853c3844
2017-10-18 14:49:00 +02:00
Xidorn Quan 488a55e50a Bug 1411460 - Sync input.css with style in textbox.css. r=dao
MozReview-Commit-ID: 63Fl0jtMPXc

--HG--
extra : rebase_source : 554537da9f696073f8d38ad064d365c36840e2a5
2017-11-02 11:32:45 +11:00
Sebastian Hengst 4ff29d14f8 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: GSDYk9wLOAM

--HG--
rename : browser/base/content/test/general/browser_bug561636.js => browser/modules/test/browser/formValidation/browser_form_validation.js
rename : browser/base/content/test/general/browser_bug595507.js => browser/modules/test/browser/formValidation/browser_validation_iframe.js
rename : browser/modules/test/browser/browser_bug1319078.js => browser/modules/test/browser/formValidation/browser_validation_invisible.js
2017-11-01 22:55:12 +01:00
Nika Layzell b5701b1266 Bug 1401379 - Part 2: Add more cycle collector edges for nsDocShell, r=smaug
MozReview-Commit-ID: 3j9jfLv7MO2
2017-11-01 11:06:26 -04:00
Masayuki Nakano b327dea259 Bug 1411345 - HTMLEditRules::GetHighestInlineParent() shouldn't return editing host even when it's the highest inline parent of aNode r=m_kato
HTMLEditRules::BustUpInlinesAtRangeEndpoints() tries to split all inline nodes
at range start and range end.  It uses EditorBase::SplitNodeDeep() to split
the nodes and HTMLEditRules::GetHighestInlineParent() to retrieve the highest
inline parent of them.

Currently, HTMLEditRules::GetHighestInlineParent() may return editing host or
ancestor of it if active editing host is not block.  Then, it may cause
splitting editing host or its parents and following methods of HTMLEditRules
will fail to modify the nodes created outside the editing host.

So, HTMLEditRules::GetHighestInlineParent() should return only one of the
descendants of active editing host.

Unfortunately, even if just adding the test case as a crash test, I cannot
reproduce the crash with automated tests.  Therefore, this patch doesn't
include any automated tests.

And this patch changes a crash test, 1402196.html, which expects that an inline
editing host is split by execCommand("insertOrderedList").  However, this patch
fixes this wrong behavior.  Therefore, this patch changes the event target of
event listener from <p> inside the editing host to the editing host itself.

MozReview-Commit-ID: 8i5ci1fcrDd

--HG--
extra : rebase_source : 572a7b22550a38ca71c954f62eefa695addd53c2
2017-10-31 01:14:58 +09:00
Marco Castelluccio f19a57edb0 Bug 1413013 - Remove unused nsITransactionList. r=masayuki
--HG--
extra : rebase_source : de3c858298d63d5658f38fc135ab1f2955dc834a
2017-10-30 20:35:00 +00:00
Chris Peterson 1df202b177 Bug 1412048 - Replace NS_RUNTIMEABORT("...") with MOZ_CRASH("..."). r=froydnj
And remove unreachable code after MOZ_CRASH().

MozReview-Commit-ID: 6ShBtPRKYlF

--HG--
extra : rebase_source : 0fe45a59411bda663828336e2686707b550144ae
extra : source : 8473fd7333d2abe1ea1cc176510c292a5b34df45
2017-10-24 23:30:31 -07:00
Masayuki Nakano f802692190 Bug 1411687 - part 2: Rewrite the check to insert a <br> element in HTMLEditRules::WillInsertBreak() r=m_kato
Currently, HTMLEditRules::WillInsertBreak() checks if the editing host can
contain a <p> element as a child or a descendant.  However, this is not enough.
If an inline element has a block element which can contain a <p> element,
current implementation considers to insert a <br>.  This is possible when
* The editing host is an unknown element including user defined element.
* The editing host is an inline element and its children and/or descendants
  were added by JS.  E.g., <span contenteditable> element can have <div>
  element.

I think that we should consider to insert a <br> element when:
- There is no block ancestors in the editing host.
- The editing host is the only block element and it cannot contain <p> element
  or the default paragraph separator is <br> element.
- The nearest block ancestor isn't a single-line container declared in the
  execCommand spec and there are no block elements which can contain <p>
  element.

Note that Chromium checks if CSS box of ancestors is block too.  However,
it must be out of scope of this bug.

MozReview-Commit-ID: HdjU9t83Nd1

--HG--
extra : rebase_source : 7030671268a610613359b5d8ae5d126e120f59bd
2017-10-27 01:27:44 +09:00
Masayuki Nakano 2b96b7532a Bug 1411687 - part 1: HTMLEditor::GetBlockNodeParent() and HTMLEditor::GetBlock() should take an ancestor limiter node optionally r=m_kato
Perhaps, most callers don't need parent block outside active editing host.
Therefore, callers of these methods should be able to specify the editing
host for making those methods stop looking for a block ancestor.

Then, callers can avoid using EditorUtils::IsDescendantOf() and
nsContentUtils::IsContentDescendantOf().

MozReview-Commit-ID: 7IK4gAVHY5d

--HG--
extra : rebase_source : 31cd55026f0ce005d906499de4ebe5d1c39555e9
2017-10-26 22:54:30 +09:00
Masayuki Nakano bb82521595 Bug 1411687 - part 0: Get rid of HTMLEditor::GetBlockNodeParent(nsIDOMNode*) r=m_kato
Currently, HTMLEditor::GetBlockNodeParent(nsIDOMNode*) is used only by
HTMLEditor::DoInsertHTMLWithContext() and there is a variable of nsINode*.

So, we don't need to keep it anymore.

MozReview-Commit-ID: LEWaiR5BEB9

--HG--
extra : rebase_source : 64ef772f3b7883bd4aae48dec737663e6036553b
2017-10-26 22:37:45 +09:00
Makoto Kato 146232dd0d Bug 748315 - Part 5. Update browserscope test result. r=masayuki
MozReview-Commit-ID: KIC7OcDe2i6

--HG--
extra : rebase_source : 8a7dbd1467b975f4adb5b35ea854d7035900c96a
2017-10-25 16:13:10 +09:00
Makoto Kato 0bb92c4869 Bug 748315 - Part 3. Use SetAttributeOrEquivalent even if HTMLEditor::IsCSSEnabled() is false. r=masayuki
SetAttributeOrEquivalent can remove CSS property that is same behaviour by
part 2.  So we should use it instead of SetAttribute.

MozReview-Commit-ID: InCZQVdbDRm

--HG--
extra : rebase_source : d746b07bcfffc752ad90b9e1504e2f0afc23d457
2017-10-29 23:05:16 +09:00
Makoto Kato 390c0cb048 Bug 748315 - Part 2. SetAttributeOrEquivalent should remove CSS property when HTMLEditor::IsCSSEnabled() is false. r=masayuki
SetAttributeOrEquivalent sets element's attribute when
HTMLEditor::IsCSSEnabled() is false.  It should remove the CSS property that is
same behaviour too.

MozReview-Commit-ID: ChKjlB7wI0Z

--HG--
extra : rebase_source : c31b940394750757b2393a6876534590410d9398
2017-10-25 16:13:09 +09:00
Makoto Kato ec0a31ac6a Bug 748315 - Part 1. Consider text-align property even if HTMLEditor::IsCSSEnabled() is false. r=masayuki
Actually, we don't consider CSS property to get alignment when IsCSSEnabled()
is false. For WebKit and Blink compatibility, we should consider this situation.

MozReview-Commit-ID: 9ORntUmbIbf

--HG--
extra : rebase_source : 21d27f34cf1331bd2fee097c5c445dc16c453d4e
2017-10-25 16:13:02 +09:00
Emilio Cobos Álvarez d454491418 Bug 1410074: Load input.css from a chrome uri, so windows reftests can use system metric media queries. r=bz,xidorn
This requires exposing the reftest chrome package to content, but that should be
OK, and this seems to work...

MozReview-Commit-ID: EWkwqTHW3dg

--HG--
extra : rebase_source : 12cabe4389375ac4c3abd0a9327baf268aab7c1a
2017-10-06 20:16:43 +02:00
Emilio Cobos Álvarez dd634e3981 Bug 1411612: Kill nsINode::eCONTENT. r=bz
MozReview-Commit-ID: ESlOqlwhcHI

--HG--
extra : rebase_source : fe6a02469dca1e50c24ba166e15e39160ab4551b
2017-10-25 17:19:11 +02:00
Xidorn Quan b5008d1736 Bug 1408811 followup 2 - Swap the annotation of empty-1.xul.
MozReview-Commit-ID: 70FJ2D8HrAY
2017-10-25 14:47:11 +11:00
Xidorn Quan 44b3247164 Bug 1408811 followup - Disable empty-1.xul for stylo windows.
MozReview-Commit-ID: Cx6rhArQm2j
2017-10-25 11:01:50 +11:00
Sebastian Hengst 24b7b2eb7c merge mozilla-central to autoland. r=merge a=merge 2017-10-24 23:59:14 +02:00
Xidorn Quan 2797a4fa56 Bug 1408811 - Update test expectation for this bug. r=emilio
on a CLOSED TREE

MozReview-Commit-ID: H4glCWmL2vc
2017-10-24 21:16:52 +02:00
Masayuki Nakano d7d7a3bbb9 Bug 1409520 - part 1: WSRunObject::InsertText() should update aInOutChildAtOffset after it might be modified r=m_kato
WSRunObject::InsertText() may delete given child node at offset with calling
DeleteChars() or CheckLeadingNBSP() before calling HTMLEditor::InsertTextImpl().

Therefore, even though using nsINode::GetChildAt() is slow, it needs to update
aInOutChildAtOffset after calling them.

MozReview-Commit-ID: AbTTfNAjMIK

--HG--
extra : rebase_source : b4282e8dc6e395acc89d7c155bfeae46e7c41e4a
2017-10-23 21:47:56 +09:00
Masayuki Nakano 558978b80b Bug 1409520 - part 0: Add automated test r=m_kato
The bug is a report for hitting MOZ_ASSERT, but we should also check the result
of the call of execCommand.

MozReview-Commit-ID: FydZKAjI2Rl

--HG--
extra : rebase_source : 327988cea366474cbe659a3b80c09ce7ceef0005
2017-10-23 22:01:58 +09:00
Sebastian Hengst 57cc14513b Backed out changeset 3aff5bcb5816 (bug 1402196) for misconfig in editor/libeditor/crashtests/crashtests.list line 91: unknown test type 1402196.html. r=backout
--HG--
extra : amend_source : 436179c20baf507bbcad66a6983c8b1cbba64859
2017-10-24 09:42:17 +02:00
Sebastian Hengst deaafcf713 Backed out changeset 10e5f407149d (bug 1402196) 2017-10-24 09:42:12 +02:00
Makoto Kato 49057375bb Bug 1402196 - Part 2. Add crashtest. r=masayuki
MozReview-Commit-ID: IF6UsY3QR1A

--HG--
extra : rebase_source : b1642b53a11c4b696b52c36264c9f4550131811a
2017-10-23 12:24:04 +09:00
Makoto Kato 719f303c40 Bug 1402196 - Part 1. Don't add null range to aArrayOfRanges. r=masayuki
RangeItem::GetRange can return null, so we shouldn't add null range to
aArrayOfRanges.

MozReview-Commit-ID: Ci5VHeqE8km

--HG--
extra : rebase_source : 83abb5f4ea405c360e63b7ed73530a7321a2a1e5
2017-10-23 12:22:45 +09:00
Makoto Kato 6190312b6f Bug 1402196 - Part 2. Add crashtest. r=masayuki
MozReview-Commit-ID: IF6UsY3QR1A

--HG--
extra : rebase_source : 9369e9888d436881e5d718666d2c560707f92f57
2017-10-23 12:24:04 +09:00
Makoto Kato 9a392d11a1 Bug 1402196 - Part 1. Don't add null range to aArrayOfRanges. r=masayuki
RangeItem::GetRange can return null, so we shouldn't add null range to
aArrayOfRanges.

MozReview-Commit-ID: Ci5VHeqE8km

--HG--
extra : rebase_source : 34f5e98de680ffe588d64244592f775450ce98cf
2017-10-23 12:22:45 +09:00
Masayuki Nakano c94238ae4f Bug 1415231 - Add crash tests for a regression of bug 1406482 which has been fixed by bug 1415509 r=m_kato
This crash test can cause crash before landing the patches for bug 1415509.
So, let's take this for regression test.

MozReview-Commit-ID: 652wi49e720

--HG--
extra : rebase_source : a7a897670220e4f14df91c4093e65aa7da7f6015
2017-11-10 10:58:33 +09:00
Masayuki Nakano 5253a1dd31 Bug 1415800 - part 5: Redesign HTMLEditRules::FindNearSelectableNode() r=m_kato
First, the method name is not correct.  It tries to find an editable node near
the given DOM point.  Therefore, it should be FindNearEditableNode().

Next, the implementation did something odd.  E.g., in the first |if| block,
when |nearNode| is nullptr, it returns nullptr.  However, following |if| block
does something only when |nearNode| is nullptr.  So, we can get rid of the
second |if| block.  Then, nobody will change aDirection.  So, we can make it
not a reference now.

Similarly, in |while| block, if |nearNode| becomes nullptr, it returns error.
However, following block checks if |nearNode| is NOT nullptr.  So, we can get
rid of this |if| statement and outdent its block.

Additionally, |curNode| isn't necessary.  It only increments the refcount
redundantly.  So, we can get rid of it.

Finally, FindNearEditableNode() can return found node directly instead of
error code because error code doesn't make sense.  Not found an editable
node is not illegal.  And also it can take EditorRawDOMPoint instead of
a set of container, child and offset of the child in the container.

MozReview-Commit-ID: CTI581PhJMd

--HG--
extra : rebase_source : 7e05998721ce96727d40dda1be5e7e36b090bcd3
2017-11-10 01:35:10 +09:00
Masayuki Nakano f2b15687ad Bug 1415800 - part 4: Redesign HTMLEditor::GetNextHTMLNode() same as similar to EditorBase::GetNext*() r=m_kato
HTMLEditor::GetNextHTMLNode() should be redesigned as
HTMLEditor::GetNextEditableHTMLNode(nsINode&),
HTMLEditor::GetNextEditableHTMLNodeInBlock(nsINode&),
HTMLEditor::GetNextEditableHTMLNode(const EditorRawDOMPoint&) and
HTMLEditor::GetNextEditableHTMLNodeInBlock(const EditorRawDOMPoint&).

Same as GetPreviousEditableHTMLNode*(), we don't need the methods to find
non-editable nodes too.

MozReview-Commit-ID: JjZauCMblp4

--HG--
extra : rebase_source : 1e650d79bc21d7f920b3f46f4a2f208ac23cc0a6
2017-11-10 00:12:22 +09:00
Masayuki Nakano 44f51bc127 Bug 1415800 - part 3: Redesign HTMLEditor::GetPriorHTMLNode() as similar to EditorBase::GetPrevious*() r=m_kato
HTMLEditor::GetPriorHTMLNode() methods are similar to EditorBase::GetPriorNode()
which was redesigned with the previous patch.

So, it should be redesigned as
HTMLEditor::GetPreviousEditableHTMLNode(nsINode&),
HTMLEditor::GetPreviousEditableHTMLNode(const EditorRawDOMPoint&),
HTMLEditor::GetPreviousEditableHTMLNodeInBlock(nsINode&) and
HTMLEditor::GetPreviousEditableHTMLNodeInBlock(const EditorRawDOMPoint&).

Note that HTMLEditor::GetPriorHTMLNode() are always return editable node.
So, we don't need to create non-editable node methods for them.

Although, I don't like the word "HTMLNode" because this can return SVG element
or something too.  The additional feature of those methods is just checking
given node is in active editing host.  So, they are for HTML editor, but not
returning only HTML nodes.  However, I have no better idea with shorter name.

MozReview-Commit-ID: 3J4IaBOFjzj

--HG--
extra : rebase_source : 712bc8676fcdc37f38fd46083df177c0fe6bd408
2017-11-09 23:31:59 +09:00
Masayuki Nakano 88120b8907 Bug 1415800 - part 2: Redesign EditorBase::GetNextNode() with EditorRawDOMPoint r=m_kato
An overload of EditorBase::GetNextNode() takes a set of container, child node
and offset of the child in the container.  Replacing it with EditorRawDOMPoint
makes the caller simpler.

Additionally, it has two bool arguments, one is for searching if editable node,
the other is for searching if in same block.  So, they can be hidden with
some human readable inline methods.

When I was creating this patch, I realized that
GetNextNodeInternal(const EditorRawDOMPoint& aPoint) may return
aPoint.GetChildAtOffset().  I.e., it starts to search from the specified point
rather than next node.  On the other hand, GetNextNodeInternal(nsINode& aNode)
never returns aNode itself.  So, it there is better name instead of "Next",
we should take it.  But I have no better idea.  So, this patch just explains
the difference with comments in EditorBase.h.

MozReview-Commit-ID: 4Lb6o9SJuhy

--HG--
extra : rebase_source : d20d728eae69659ef448b6679ae8f73d64c2d7e9
2017-11-09 17:57:00 +09:00
Masayuki Nakano e28ddd6ec3 Bug 1415800 - part 1: Redesign EditorBase::GetPriorNode() with EditorRawDOMPoint r=m_kato
An overload of EditorBase::GetPriorNode() takes a set of container, child node
and offset of the child in the container.  Replacing it with EditorRawDOMPoint
makes the caller simpler.

Additionally, it has two bool arguments, one is for searching if editable node,
the other is for searching if in same block.  So, they can be hidden with
some human readable inline methods.

Finally, "Prior" isn't a term of DOM.  So, let's use "Previous" instead.

MozReview-Commit-ID: A9uKzHaikY9

--HG--
extra : rebase_source : 15bfdfde0ad89a5331d6c8a24351741eeef476d5
2017-11-09 17:08:10 +09:00
Masayuki Nakano 456157300a Bug 1415509 - part 3: WSRunObject::InsertText() should take |const EditorRawDOMPoint&| as input argument and |EditorRawDOMPoint*| as out argument instead of a set of container, child and offset of the child in the container as in/out argument r=m_kato
Like EditorBase::InsertTextImpl(), WSRunObject::InsertText() is really messy.
So, it should take same arguments as EditorBase::InsertTextImpl().

MozReview-Commit-ID: 5uKGaxKheRv

--HG--
extra : rebase_source : 49ce0eb7ea25b397b6b1a19f1bc21d711740c043
2017-11-09 13:24:06 +09:00
Masayuki Nakano a3fa902a2d Bug 1415509 - part 2: EditorBase::InsertTextImpl() should take |const EditorRawDOMPoint&| argument as input and |EditorRawDOMPoint*| as out argument instead of a set of container, child and offset of the child in the container as in/out argument r=m_kato
EditorBase::InsertTextImpl() takes |nsCOMPtr<nsINode>*|, |nsCOMPtr<nsIContent>*|
and |int32_t| as in/out arguments for container, child and offset of the child
in the container.  But this makes the callers really hard to read and ugly.

So, we should make the method take |const EditorRawDOMPoint&| argument as input
and |EditorRawDOMPoint*| as out argument.

MozReview-Commit-ID: 2ijIfGl4Zo7

--HG--
extra : rebase_source : b309d9bdc04aac620f138769ba18ad7e4597fe6c
2017-11-09 01:00:36 +09:00
Masayuki Nakano 7adce402c2 Bug 1415509 - part 1: EditorBase::FindBetterInsertionPoint() should take an EditorRawDOMPoint argument for input and return EditorRawDOMPoint for the result r=m_kato
EditorBase::FindBetterInsertionPoint() now use 3 in/out arguments.  This is
really ugly and making the callers hard to read.  So, let's make it take an
argument whose type is |const EditorRawDOMPoint&| and return other
EditorRawDOMPoint instance.

Additionally, this fixes bugs of text node length checks in the method.
Basically, this shouldn't affect to any actual behavior, though.  That is
because text node shouldn't be able to have string longer than INT32_MAX.

MozReview-Commit-ID: FClUQSJzd8c

--HG--
extra : rebase_source : 3e2fbd345015f7068c7e35a94c31731e7936009f
2017-11-08 21:55:10 +09:00
Masatoshi Kimura dbd92543c6 Bug 1313150 - Remove |weak| parameter from nsIMutableArray methods. r=froydnj
MozReview-Commit-ID: 7JoD4VYzZp3

--HG--
extra : rebase_source : 5db437f1c34608aa223916874d62b48c59baeae8
2017-10-21 23:53:02 +09:00
Makoto Kato 4324707ac3 Bug 1394649 - Use nsGkAtoms on nsTextServiceDocument. r=masayuki
It is no reason to use custom atom instead of nsGkAtoms now, so we should
use nsGkAtoms instead.

MozReview-Commit-ID: 9slsZtLDNKH

--HG--
extra : histedit_source : 8ad70ff1adfa145bc0e8da3c6f43f3dba9b558f1
2017-10-23 13:09:49 +09:00
Nicholas Nethercote 21e7dce1a2 Bug 1410294 (part 3) - Overhaul static atom macros. r=froydnj.
There are four things that must be provided for every static atom, two of which
have a macro:
- the atom pointer declaration (no macro);
- the atom pointer definition (no macro);
- the atom char buffer (NS_STATIC_ATOM_BUFFER);
- the StaticAtomSetup struct (NS_STATIC_ATOM_SETUP).

This patch introduces new macros for the first two things: NS_STATIC_ATOM_DECL
and NS_STATIC_ATOM_DEFN, and changes the arguments of the existing two macros
to make them easier to use (e.g. all the '##' concatenation now happens within
the macros).

One consequence of the change is that all static atoms must be within a class,
so the patch adds a couple of classes where necessary (DefaultAtoms, TSAtoms).

The patch also adds a big comment explaining how the macros are used, and what
their expansion looks like. This makes it a lot easier to understand how static
atoms work. Correspondingly, the patch removes some small comments scattered
around the macro use points.

MozReview-Commit-ID: wpRyrEOTHE

--HG--
extra : rebase_source : 9f85d477b4d06c9a9e710c757de1f1476edb6efe
2017-10-22 08:50:25 +11:00
Nicholas Nethercote ed06034e3c Bug 1410294 (part 2) - Use a macro to declare the atoms in nsTextServicesDocument. r=froydnj.
MozReview-Commit-ID: LZjDrROmPC7

--HG--
extra : rebase_source : 8da8ecc8a0a24c212d1528bf8d23fbbf0942f757
2017-10-20 14:04:52 +11:00
Nicholas Nethercote 074a872086 Bug 1410294 (part 1) - Rename nsStaticAtom as nsStaticAtomSetup. r=froydnj.
Because it's the type we use to set up static atoms at startup, not the static
atom itself.

The patch accordingly renames some parameters, variables, and NS_STATIC_ATOM,
for consistency.

MozReview-Commit-ID: 1a0KvhYNNw2

--HG--
extra : rebase_source : 5c66e5b2dfe053a368bf3584d957198aec4cce91
2017-10-20 14:04:47 +11:00
Jason Kratzer 735da145f2 Bug 1344097 - Add crashtest. r=me
--HG--
extra : rebase_source : 9789bb530c86279907b5abbd8fd1c8e1929e5af1
2017-10-20 08:36:12 -04:00
Masayuki Nakano eb5a65e869 Bug 1407966 - part 2: EditorBase::InsertTextImpl() shouldn't assume that aInOutChildAtOffset is never nullptr r=m_kato
Since if the container is not a container node like a text node or the offset
is same as the length, child at the offset can be nullptr.

MozReview-Commit-ID: DCnFwUjNgk7

--HG--
extra : rebase_source : 48823390645d79db391dcaf64dab59e754b680a5
2017-10-17 01:59:28 +09:00
Masayuki Nakano 33a8e2ee5e Bug 1407966 - part 1: Update |selChild| when HTMLEditRules::WillInsertText() updates |curNode| and |curOffset| r=m_kato
|selChild| should be a node which is at |curOffset| in |curNode|, however,
it's not updated when |curOffset| is updated by a call of CreateBRImpl().  So,
it should be next sibling of the created br node.

MozReview-Commit-ID: IVfTjVMp3lB

--HG--
extra : rebase_source : fbc355e3c0425a495c78c3c028308dac26617283
2017-10-17 01:17:07 +09:00
Boris Zbarsky 661d20b507 Bug 1409162. Make nsTableCellFrame::GetColIndex/GetRowIndex faster. r=mats 2017-10-17 15:39:36 -04:00
Sebastian Hengst 32f7c8fec3 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: 1h3kZyrtqSt
2017-10-17 11:45:16 +02:00
Kris Maglione 4a767c7e6e Bug 1404198: Part 2j - Switch to NS_NewTimer* everywhere else. r=njn
MozReview-Commit-ID: LmGIgfmNSmk

--HG--
extra : rebase_source : bf34e852beb0c8f6eafd09184c2e0cda95f95f83
2017-09-24 19:57:48 -07:00
Makoto Kato 52ae993a2a Bug 1407924 - Avoid conversion from nsAtom to string if possible. r=masayuki
Editor sometimes extracts atom to string to compare element name.
It is unnecessary to use atom directly.

MozReview-Commit-ID: FEvyiIeaozs

--HG--
extra : rebase_source : 4418d0c82fa4fedd814b914f2cf3a86d74ad9835
2017-10-12 16:28:28 +09:00
Sebastian Hengst caf5b99a30 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: 8Qk2qoQvP0g
2017-10-14 11:49:31 +02:00
Kyle Machulis 1cc8b01353 Bug 1406224 - Remove nsIDOMHTMLImageElement; r=bz
MozReview-Commit-ID: GCATWRt6qMo

--HG--
extra : rebase_source : 29854f1374c6ad318da0b5b68be23507667c3be4
2017-10-06 13:27:23 -07:00
Sebastian Hengst 8975678533 Backed out changeset febed94fa592 (bug 1408227) for asserting at editor/libeditor/EditorBase.cpp:2513 during execution of web-platform-test /editing/run/inserttext.html. r=backout on a CLOSED TREE 2017-10-13 19:48:22 +02:00
Ryan VanderMeulen a74ce78a81 Bug 1407866 - Update test_bug1385905.html to work whether editor.use_div_for_default_newlines is set or not. r=masayuki 2017-10-13 12:48:06 -04:00
Ehsan Akhgari 5e34d765c7 Bug 1408227 - Correctly update the child at offset pointer across calls to WSRunObject::InsertBreak(); r=masayuki 2017-10-13 10:42:27 -04:00
Ehsan Akhgari b62ea76a52 Bug 1408290 - Avoid calling nsINode::IndexOf() in HTMLEditRules::CheckForInvisibleBR(); r=masayuki 2017-10-13 10:28:50 -04:00
Ehsan Akhgari 62a148cc7c Bug 1408286 - Avoid calling nsINode::IndexOf() for block parents whose grant parents are lists in HTMLEditRules::CheckForEmptyBlock(); r=masayuki 2017-10-13 10:25:21 -04:00
Ehsan Akhgari 8dc357ab3c Bug 1408285 - Avoid calling nsINode::IndexOf() for list items in HTMLEditRules::CheckForEmptyBlock(); r=masayuki 2017-10-13 10:23:20 -04:00
Ehsan Akhgari 1349bede70 Bug 1408170 - Set child correctly in HTMLEditRules::GetPromotedPoint(); r=masayuki 2017-10-13 02:23:12 -04:00
Jesse Schwartzentruber beb397098f Bug 1274050 - Add crashtest. r=me 2017-10-12 22:41:14 -04:00
Sebastian Hengst c2f23c4622 merge mozilla-central to mozilla-inbound. r=merge a=merge
--HG--
rename : browser/base/content/test/general/browser_bug585558.js => browser/base/content/test/tabs/browser_positional_attributes.js
rename : devtools/client/webconsole/new-console-output/test/mochitest/browser_webconsole_jsterm_dollar.js => devtools/client/webconsole/new-console-output/test/mochitest/browser_jsterm_dollar.js
rename : devtools/client/webconsole/new-console-output/test/mochitest/test-bug-621644-jsterm-dollar.html => devtools/client/webconsole/new-console-output/test/mochitest/test-jsterm-dollar.html
rename : dom/media/doctor/DDLogClass.cpp => dom/media/doctor/DDLogCategory.cpp
rename : dom/media/doctor/DDLogClass.h => dom/media/doctor/DDLogCategory.h
rename : mobile/android/app/src/main/res/drawable-hdpi/find_prev.png => mobile/android/app/src/photon/res/drawable-hdpi/find_prev.png
rename : mobile/android/app/src/main/res/drawable-hdpi/url_bar_entry_default.9.png => mobile/android/app/src/photon/res/drawable-hdpi/url_bar_entry_default.9.png
rename : mobile/android/app/src/main/res/drawable-hdpi/url_bar_entry_default_pb.9.png => mobile/android/app/src/photon/res/drawable-hdpi/url_bar_entry_default_pb.9.png
rename : mobile/android/app/src/main/res/drawable-hdpi/url_bar_entry_pressed.9.png => mobile/android/app/src/photon/res/drawable-hdpi/url_bar_entry_pressed.9.png
rename : mobile/android/app/src/main/res/drawable-hdpi/url_bar_entry_pressed_pb.9.png => mobile/android/app/src/photon/res/drawable-hdpi/url_bar_entry_pressed_pb.9.png
rename : mobile/android/app/src/main/res/drawable-large-hdpi-v11/url_bar_entry_default.9.png => mobile/android/app/src/photon/res/drawable-large-hdpi-v11/url_bar_entry_default.9.png
rename : mobile/android/app/src/main/res/drawable-large-hdpi-v11/url_bar_entry_default_pb.9.png => mobile/android/app/src/photon/res/drawable-large-hdpi-v11/url_bar_entry_default_pb.9.png
rename : mobile/android/app/src/main/res/drawable-large-hdpi-v11/url_bar_entry_pressed.9.png => mobile/android/app/src/photon/res/drawable-large-hdpi-v11/url_bar_entry_pressed.9.png
rename : mobile/android/app/src/main/res/drawable-large-hdpi-v11/url_bar_entry_pressed_pb.9.png => mobile/android/app/src/photon/res/drawable-large-hdpi-v11/url_bar_entry_pressed_pb.9.png
rename : mobile/android/app/src/main/res/drawable-large-xhdpi-v11/url_bar_entry_default.9.png => mobile/android/app/src/photon/res/drawable-large-xhdpi-v11/url_bar_entry_default.9.png
rename : mobile/android/app/src/main/res/drawable-large-xhdpi-v11/url_bar_entry_default_pb.9.png => mobile/android/app/src/photon/res/drawable-large-xhdpi-v11/url_bar_entry_default_pb.9.png
rename : mobile/android/app/src/main/res/drawable-large-xhdpi-v11/url_bar_entry_pressed.9.png => mobile/android/app/src/photon/res/drawable-large-xhdpi-v11/url_bar_entry_pressed.9.png
rename : mobile/android/app/src/main/res/drawable-large-xhdpi-v11/url_bar_entry_pressed_pb.9.png => mobile/android/app/src/photon/res/drawable-large-xhdpi-v11/url_bar_entry_pressed_pb.9.png
rename : mobile/android/app/src/main/res/drawable-large-xxhdpi-v11/url_bar_entry_default.9.png => mobile/android/app/src/photon/res/drawable-large-xxhdpi-v11/url_bar_entry_default.9.png
rename : mobile/android/app/src/main/res/drawable-large-xxhdpi-v11/url_bar_entry_default_pb.9.png => mobile/android/app/src/photon/res/drawable-large-xxhdpi-v11/url_bar_entry_default_pb.9.png
rename : mobile/android/app/src/main/res/drawable-large-xxhdpi-v11/url_bar_entry_pressed.9.png => mobile/android/app/src/photon/res/drawable-large-xxhdpi-v11/url_bar_entry_pressed.9.png
rename : mobile/android/app/src/main/res/drawable-large-xxhdpi-v11/url_bar_entry_pressed_pb.9.png => mobile/android/app/src/photon/res/drawable-large-xxhdpi-v11/url_bar_entry_pressed_pb.9.png
rename : mobile/android/app/src/main/res/drawable-xhdpi/find_prev.png => mobile/android/app/src/photon/res/drawable-xhdpi/find_prev.png
rename : mobile/android/app/src/main/res/drawable-xhdpi/url_bar_entry_default.9.png => mobile/android/app/src/photon/res/drawable-xhdpi/url_bar_entry_default.9.png
rename : mobile/android/app/src/main/res/drawable-xhdpi/url_bar_entry_default_pb.9.png => mobile/android/app/src/photon/res/drawable-xhdpi/url_bar_entry_default_pb.9.png
rename : mobile/android/app/src/main/res/drawable-xhdpi/url_bar_entry_pressed.9.png => mobile/android/app/src/photon/res/drawable-xhdpi/url_bar_entry_pressed.9.png
rename : mobile/android/app/src/main/res/drawable-xhdpi/url_bar_entry_pressed_pb.9.png => mobile/android/app/src/photon/res/drawable-xhdpi/url_bar_entry_pressed_pb.9.png
rename : mobile/android/app/src/main/res/drawable-xxhdpi/url_bar_entry_default.9.png => mobile/android/app/src/photon/res/drawable-xxhdpi/url_bar_entry_default.9.png
rename : mobile/android/app/src/main/res/drawable-xxhdpi/url_bar_entry_default_pb.9.png => mobile/android/app/src/photon/res/drawable-xxhdpi/url_bar_entry_default_pb.9.png
rename : mobile/android/app/src/main/res/drawable-xxhdpi/url_bar_entry_pressed.9.png => mobile/android/app/src/photon/res/drawable-xxhdpi/url_bar_entry_pressed.9.png
rename : mobile/android/app/src/main/res/drawable-xxhdpi/url_bar_entry_pressed_pb.9.png => mobile/android/app/src/photon/res/drawable-xxhdpi/url_bar_entry_pressed_pb.9.png
extra : rebase_source : 0cff6fa99d9ea3c6ce0bfb1604d4e9533f63ce63
2017-10-13 00:55:27 +02:00
Sebastian Hengst 5c00b8540d merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: AlcL6XYDkf
2017-10-12 23:58:31 +02:00
Sebastian Hengst f7efb5fc2c Merge mozilla-central to mozilla-inbound. r=merge a=merge on a CLOSED TREE 2017-10-12 12:03:15 +02:00
Ehsan Akhgari 0e0b35e1aa Bug 1407854 - Part 3: Pass the child node at the offset as an extra argument where possible to CreateNode(); r=masayuki
This patch converts almost all of the call sites over to passing
the extra argument explicitly.
2017-10-12 17:13:56 -04:00
Ehsan Akhgari bf1f474a3d Bug 1407854 - Part 2: Add an optional argument to CreateNode() to allow callers to pass the child node when they know it; r=masayuki 2017-10-12 17:13:55 -04:00
Ehsan Akhgari e9a78d5b18 Bug 1407854 - Part 1: Remove nsIEditor.createNode(); r=masayuki 2017-10-12 17:13:55 -04:00
Makoto Kato 4afdbeeecb Bug 1364133 - Part 2. Add test. r=masayuki
MozReview-Commit-ID: 5v1LXlWIRPB

--HG--
extra : rebase_source : b201da76921c032cdf18093d385e7fa48c6bdb4c
2017-10-11 17:59:02 +09:00
Makoto Kato 1e88ad2842 Bug 1364133 - Part 1. Check whether SplitNode returns error. r=masayuki
When SplitNode returns nullptr, GetAsText causes crash.  So we should check
error before casting by GetAsText.

MozReview-Commit-ID: 8E1OPSRZ2x5

--HG--
extra : rebase_source : 48a067bd080e7a68e9d469c07d3b744508dae91f
2017-10-11 17:58:24 +09:00
Ryan VanderMeulen 6090989771 Bug 1393171 - Add crashtest. r=me
--HG--
extra : rebase_source : 76957b4f171ebf0de582eeffc73330b71425f363
2017-10-11 19:54:10 -04:00
Ryan VanderMeulen fee107246e Bug 1383763 - Add crashtest. r=me
--HG--
extra : rebase_source : 64f0ebc53170c3b8871f77365829bbdbc5c094eb
2017-10-11 19:54:09 -04:00
Ryan VanderMeulen 2517ed2733 Bug 1384161 - Add crashtest. r=me
--HG--
extra : rebase_source : 2916754a521a451766b1b154c8f80e91dca8ab88
2017-10-11 19:54:09 -04:00
Ryan VanderMeulen fa5fde2e25 Bug 1383747 - Add crashtest. r=me
--HG--
extra : rebase_source : 82d9e01850c972d5228accacd90cf38e407136c8
2017-10-11 19:54:08 -04:00
Emilio Cobos Álvarez 29b6fbc81f Bug 1405311: Remove uses of :-moz-system-metric. r=xidorn,dao
MozReview-Commit-ID: 1Yqy6KgMUB1
2017-10-12 14:47:06 +02:00
Sebastian Hengst 89ddab8643 Backed out changeset d59889304b3f (bug 1408125) for asserting in clipboard test editor/libeditor/tests/test_bug1306532.html. r=backout on a CLOSED TREE
--HG--
extra : amend_source : 2ec45a81dd0ad22bbaf9df23de6b323b235714b3
2017-10-14 00:05:15 +02:00
Sebastian Hengst 5e217241d6 Backed out changeset 19fee71d7e27 (bug 1408125) 2017-10-14 00:05:10 +02:00
Ehsan Akhgari 1d4fb2453d Bug 1408125 - Part 2: Pass the child node at the offset as an extra argument where possible to InsertNode(); r=masayuki
This patch converts almost all of the call sites over to passing
the extra argument explicitly.
2017-10-13 16:23:24 -04:00
Ehsan Akhgari ffd4e9aa37 Bug 1408125 - Part 1: Add an optional argument to InsertNode() to allow callers to pass the child node when they know it; r=masayuki 2017-10-13 16:23:19 -04:00
Ehsan Akhgari 6aadc3345b Bug 1407309 - Part 2: Remove some dead code; r=masayuki 2017-10-13 16:06:08 -04:00
Ehsan Akhgari efeb8d0cb6 Bug 1407309 - Part 1: Rewrite HTMLEditor::CopyLastEditableChildStyles() to use internal DOM APIs; r=masayuki 2017-10-13 16:06:08 -04:00
Ehsan Akhgari 1bba75e15f Bug 1406482 - Avoid using nsINode::GetChildAt() in EditorBase::InsertTextImpl(); r=masayuki 2017-10-11 13:12:00 -04:00
Ryan VanderMeulen 9344c09f7c Bug 1388075 - Add crashtest. r=me
--HG--
extra : rebase_source : 70738bf0b3995786e9a472b268d2a0e9745c4160
2017-10-11 11:52:40 -04:00
Ehsan Akhgari 6a2135a0bb Bug 1407305 - Part 4: Avoid using GetChildAt() in EditorBase::GetNextNode(); r=masayuki 2017-10-11 11:27:57 -04:00
Ehsan Akhgari 40afcd0316 Bug 1407305 - Part 3: Avoid using GetChildAt() in EditorBase::GetPriorNode(); r=masayuki 2017-10-11 11:27:55 -04:00
Ehsan Akhgari 85ece51460 Bug 1407305 - Part 2: Add a aChildAtOffset argument to HTMLEditor::GetNextHTMLNode(); r=masayuki 2017-10-11 11:27:53 -04:00
Ehsan Akhgari 58fedc900c Bug 1407305 - Part 1: Add a aChildAtOffset argument to HTMLEditor::GetPriorHTMLNode(); r=masayuki 2017-10-11 11:27:51 -04:00
Ehsan Akhgari 08f095eab1 Bug 1407353 - Remove one of the nsINode::GetChildAt() calls in EditorBase::JoinNodeDeep(); r=masayuki 2017-10-11 02:00:36 -04:00
Ehsan Akhgari 959b55b795 Bug 1407352 - Avoid calling GetChildAt() in DeleteRangeTransaction::CreateTxnsToDeleteBetween(); r=masayuki 2017-10-11 01:49:55 -04:00
Ehsan Akhgari e72bd8ae0d Bug 1406577 - Part 2: Remove some dead code; r=masayuki 2017-10-10 11:21:59 -04:00
Ehsan Akhgari f0705cd727 Bug 1406577 - Part 1: Rewrite HTMLEditRules::FindNearSelectableNode() to use internal DOM APIs; r=masayuki 2017-10-10 11:21:57 -04:00
Ehsan Akhgari 16c54559ca Bug 1408049 - Remove an unneeded call to nsINode::IndexOf() from EditorBase::BeginningOfDocument(); r=masayuki 2017-10-12 14:27:22 -04:00
Ehsan Akhgari 92a2acc32a Bug 1407447 - Part 2: Remove some dead code; r=masayuki 2017-10-12 10:49:14 -04:00
Ehsan Akhgari 91afad1234 Bug 1407447 - Part 1: Remove the call to nsINode::GetChildAt() from HTMLEditor::DoInsertHTMLWithContext(); r=masayuki 2017-10-12 10:49:14 -04:00
Makoto Kato 59c8e03ca6 Bug 1402904 - Part 2. Add crash tests. r=masayuki
1405747.html is kind of same issue.  But when editing 1405747.html, the crash doesn't occur.  So I keep original HTML by jsfuzzy.

MozReview-Commit-ID: 9BcUkWeBlr5

--HG--
extra : rebase_source : 1bac60293d3b4997a380cf625c6492db22f60160
extra : histedit_source : eae38e2d69e0705545acf1ef1f2d04e7977b8899
2017-10-05 14:23:12 +09:00
Makoto Kato 129db593cd Bug 1402904 - Part 1. Some operations should check whether parent node of each selected node is null. r=masayuki
GetNodesForOperation returns node array from current selection.  So some nodes in this array might have no parent node.  We should ignore such as orphans.

MozReview-Commit-ID: 3OK0CUv5QOe

--HG--
extra : rebase_source : 59636177113ad5d3f9789ca22a6a96938e4cf486
extra : histedit_source : fd4fd140a24a8dc5a63fceeb25faba827c317683%2C6ed479239be0a9043d05170231c6613b04cb0d26
2017-10-10 13:41:28 +09:00
Phil Ringnalda 63a7c915ff Backed out changeset 8cce0046e302 (bug 1406482) for mozilla::EditorBase::InsertTextImpl crashes
MozReview-Commit-ID: G9jW217fO0v
2017-10-09 21:33:53 -07:00