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

103 Коммитов

Автор SHA1 Сообщение Дата
Masayuki Nakano 58ccd6c812 Bug 1488337 - Rename mozilla::dom::SelectionChangeListener to mozilla::SelectionChangeEventDispatcher r=smaug
SelectionChangeListener is too generic name but it just dispatches
selectionchange event when it's necessary.  So, it should be renamed to
SelectionChangeEventDispatcher. Additionally, it's in mozilla::dom namespace
but it does not represent any DOM object. So, it should be in mozilla namespace
instead.

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

--HG--
rename : dom/base/SelectionChangeListener.cpp => dom/base/SelectionChangeEventDispatcher.cpp
rename : dom/base/SelectionChangeListener.h => dom/base/SelectionChangeEventDispatcher.h
extra : moz-landing-system : lando
2018-09-04 11:18:03 +00:00
Masayuki Nakano 9ab2669f86 Bug 1487659 - Make Selection treat SelectionChangeListener as a concrete class rather than nsISelectionListener r=smaug
SelectionChangeListener is an nsISelectionListener class.  This is added only
to Selection for "normal" and added by nsFrameSelection::Init() after
AccessibleCaretEventHub.  So, we can make Selection directly treat
SelectionChangeListener.

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

--HG--
extra : moz-landing-system : lando
2018-08-31 21:22:57 +00:00
Masayuki Nakano 9c349ade9b Bug 1487591 - Make Selection treat AccessibleCaretEventHub as concrete class rather than nsISelectionListener r=smaug
AccessibleCaretEventHub is an nsISelectionListener of Selection whose type is
"normal".  This is added only when nsFrameSelection::Init() is called and
accessible caret is enabled.  Additionally, nsFrameSelection::Init() is
always called immediately after creating nsFrameSelection.

Therefore, when AccessibleCaretEventHub is installed to Selection, this is
always second selection listener and won't be installed multiple times.  So,
Selection can store pointer of AccessibleCaretEventHub directly only when
it's enabled and the Selection needs to notify it of selection change.

This patch makes Selection stores AccessibleCaretEventHub with RefPtr, then,
makes Selection::NotifySelectionListeners() call its OnSelectionChange()
immediately after AutoCopyListener.

Unfortunately, this patch includes making of MOZ_CAN_RUN_SCRIPT_BOUNDARY and
MOZ_CAN_RUN_SCRIPT a lot since some methods of AccessibleCaretEventHub are
marked as MOZ_CAN_RUN_SCRIPT and including AccessibleCaretEventHub.h into
Selection.h causes compile the compile errors.

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

--HG--
extra : moz-landing-system : lando
2018-08-31 21:19:44 +00:00
Masayuki Nakano 85dcb074f4 Bug 1487402 - Selection should stop notifying AutoCopyListener of selection changes after unlinked r=smaug
This is a regression of bug 1486370.

Unlink of Selection removes all nsISelectionListener first, then, it removes
all its ranges since it does not want to notify the changes anymore.

After bug 1486370, Selection starts to store only bool flag whether it should
notify AutoCopyListener of selection changes. So, unless it sets the bool flag
to false in Unlink, it'll notify selection change caused by Unlink.

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

--HG--
extra : moz-landing-system : lando
2018-08-30 23:47:25 +00:00
Masayuki Nakano be86e183fd Bug 1486370 - Change nsAutoCopyListener to a static class r=smaug
nsAutoCopyListener is a singleton class but refcountable and a selection
listener.  nsFrameSelection adds it to only normal Selection when it's on
macOS or it's enabled by the pref.  Additionally, it's always first selection
listener since it's added immediately after Selection instance is created.

So, we can make it a static class, and normal Selection instance should have
a bool to decide whether it should notify nsAutoCopyListener of its changes.
Then, we can save the cost of grabbing it with local RefPtr and the virtual
call.

Additionally, this patch renames nsAutoCopyListener to mozilla::AutoCopyListener
and optimizes constructor of nsFrameSelection (using bool var cache to retrieve
the pref, avoid retrieving the pref on macOS).

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

--HG--
rename : layout/generic/nsAutoCopyListener.h => layout/generic/AutoCopyListener.h
extra : moz-landing-system : lando
2018-08-30 07:36:23 +00:00
Ting-Yu Lin 48d02834a5 Bug 1482665 Part 2 - Remove nsPresContext::AppUnitsPerCSSPixel() and replace it with mozilla::AppUnitsPerCSSPixel(). r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D3155
2018-08-13 14:29:28 -07:00
Masayuki Nakano 0fadf6b9da Bug 1467796 - part 3: Make mozInlineSpellChecker::ReplaceWord() use TextEditor::ReplaceTextAsAction() r=m_kato,smaug
mozInlineSpellChecker::ReplaceWord() is used for replacing misspelled word
with a word.  So, this is necessary to be distinguished from insertText
command when we implement InputEvent.inputType.  So, we should make it
use TextEditor::ReplaceTextAsAction() instead (same as autocomplete).

This patch makes TextEditor::ReplaceTextAsAction() take optional argument
to make callers can specify replace range.  Then, the range is a spellchecker
selection range if the caller is mozInlineSpellChecker::ReplaceWord().
Prior to this patch, it clones the range for normal selection, but it's
expensive and we may be able to reuse cached range of Selection in this case.
So, this patch makes Selection::AddRangeInternal() checks if given range is
in another Selection and use mCachedRange as far as possible.

MozReview-Commit-ID: JIOTTsxlj4Q

--HG--
extra : rebase_source : 7c26b0255f08608ebe8c7045c9bcdca1dc70cadf
2018-07-04 22:51:55 +09:00
Masayuki Nakano 2651346286 Bug 1479972 - nsRange should ignore mutations of the DOM tree while it's cached by Selection r=smaug
Selection caches an nsRange instance for saving re-allocation cost and AddMutationObserver() and RemoveMutationObserver()'s cost when its RemoveAllRangesTemporarily() is called.

Then, the instance is detached from the Selection but still referring editing point. E.g., the only text node in TextEditor when its value is set. Therefore, it'll receive character data change notification and need to check whether the point is still valid with new text.  However, the range will be always set new position later, i.e., immediately before going back to a part of Selection. Therefore, even if the point becomes invalid, nobody must not have any problems.

This patch makes Selection make the cached range not positioned, and makes nsRange ignore any mutations when it's not positioned.

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

--HG--
extra : moz-landing-system : lando
2018-08-01 12:25:25 +00:00
Jeff Gilbert 5b753da289 Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot
MozReview-Commit-ID: JtTcLL5OPF0
2018-06-26 17:05:01 -07:00
Emilio Cobos Álvarez c7d35aa526 Bug 1470930: Use enums for passing arguments for event dispatch. r=smaug
MozReview-Commit-ID: DsNuF7GAflJ
2018-06-26 18:22:06 +02:00
Emilio Cobos Álvarez fffb25b74f Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Boris Zbarsky bea3100e53 Bug 1455676 part 14. Remove most use of nsIDOMNode in dom/. r=qdot 2018-05-29 22:58:49 -04:00
Boris Zbarsky 2e09ba1f75 Bug 1377980 part 2. Remove most C++ use of nsIDOMRange. r=mccr8 2018-05-17 12:01:38 -04:00
Adrian Wielgosik f5e05d1158 Bug 1460940 - Convert nsIDocumentEncoder to use nsIDocument. r=bz
MozReview-Commit-ID: 1Nla9DnwFiu

--HG--
extra : rebase_source : e019c8370f453c6794052e441dc76fc98d603510
2018-05-11 19:46:15 +02:00
Boris Zbarsky 7ee1a709e8 Bug 1387143 followup. Remove assertion that does not seem to hold and causes a CLOSED TREE. r=bzbarsky 2018-05-08 15:04:53 -04:00
Boris Zbarsky 1fb03996f4 Bug 1387143 part 29. Remove nsISelection. r=mats 2018-05-08 13:52:42 -04:00
Boris Zbarsky 21aa32be26 Bug 1387143 part 27. Remove some unused nsISelection methods. r=mats 2018-05-08 13:52:42 -04:00
Boris Zbarsky 63c4927445 Bug 1387143 part 26. Remove nsISelection::Modify. r=mats 2018-05-08 13:52:42 -04:00
Boris Zbarsky 11a1d5dd24 Bug 1387143 part 25. Remove nsISelection::DeleteFromDocument. r=mats 2018-05-08 13:52:42 -04:00
Boris Zbarsky 30e5cc5d8b Bug 1387143 part 24. Remove nsISelection::ContainsNode. r=mats 2018-05-08 13:52:42 -04:00
Boris Zbarsky b47b72dae9 Bug 1387143 part 23. Remove nsISelection collapse* methods. r=mats 2018-05-08 13:52:41 -04:00
Boris Zbarsky f992e7ed0d Bug 1387143 part 22. Remove nsISelection isCollapsed/collapsed bits. r=mats 2018-05-08 13:52:39 -04:00
Boris Zbarsky f7d68d6078 Bug 1387143 part 21. Remove nsISelection getters for anchor and focus points. r=mats
Instead of copying spec-duplicating comments from nsISelection.idl to
Selection.webidl, this just points the latter to the right spec.
2018-05-08 13:52:38 -04:00
Boris Zbarsky 1ff99d888e Bug 1387143 part 20. Remove nsISelectionPrivate. r=mats 2018-05-08 13:52:38 -04:00
Boris Zbarsky 40b8e1ed5e Bug 1387143 part 19. Remove remaining methods from nsISelectionPrivate. r=mats 2018-05-08 13:52:38 -04:00
Boris Zbarsky a72615f753 Bug 1387143 part 18. Remove ScrollIntoView bits from nsISelectionPrivate. r=mats 2018-05-08 13:52:38 -04:00
Boris Zbarsky 14a9b75c96 Bug 1387143 part 17. Remove GetRangesForInterval bits from nsISelectionPrivate. r=mats 2018-05-08 13:52:38 -04:00
Boris Zbarsky 5453e2995c Bug 1387143 part 16. Remove nsISelectionPrivate::GetType. r=mats 2018-05-08 13:52:38 -04:00
Boris Zbarsky 7fe6dda3aa Bug 1387143 part 15. Remove nsISelectionPrivate::Get/SetSelectionDirection. r=mats 2018-05-08 13:52:38 -04:00
Boris Zbarsky b904b76fa3 Bug 1387143 part 14. Remove nsISelectionPrivate::GetCachedFrameOffset. r=mats. 2018-05-08 13:52:37 -04:00
Boris Zbarsky 9fd43d1a19 Bug 1387143 part 13. Remove nsISelectionPrivate::Get/SetCanCacheFrameOffset. r=mats 2018-05-08 13:52:37 -04:00
Boris Zbarsky 3e7d2d87cf Bug 1387143 part 12. Remove nsISelectionPrivate::Add/RemoveSelectionListener. r=mats
None of the C++ callers of RemoveSelectionListener care about whether the
listener was already-added, and the only JS caller is in a test and knows the
listener was added.  So the behavior change to no-op instead of throwing when
trying to remove a nonexistent listener is OK.  Furthermore, the removal is
null-safe, so there's no point to explicitly failing if null is passed (which
it never is).

Since content can't directly add selection listeners, we can just use an
infallible append instead of returning errors callers don't check for anyway.

Also, no one passes null to AddSelectionListener, so we don't have to worry
about that part.
2018-05-08 13:52:37 -04:00
Boris Zbarsky 1cddc3228a Bug 1387143 part 10. Remove toString bits from nsISelection and nsISelectionPrivate. r=mats. 2018-05-08 13:52:37 -04:00
Boris Zbarsky a36e7f946e Bug 1387143 part 9. Remove nsISelectionPrivate::Get/SetAncestorLimiter. r=mats 2018-05-08 13:52:37 -04:00
Boris Zbarsky 2abc41a969 Bug 1387143 part 8. Remove nsISelectionPrivate::Get/SetInterlinePosition. r=mats 2018-05-08 13:52:37 -04:00
Boris Zbarsky abdd178705 Bug 1387143 part 7. Move the TABLESELECTION_* constants from nsISelectionPrivate to a TableSelection enum. r=mats 2018-05-08 13:52:36 -04:00
Boris Zbarsky b23f25078d Bug 1387143 part 1. Stop using nsISelection in nsISelectionListener. r=mats 2018-05-08 13:52:35 -04:00
Chris Peterson 71422dcaa9 Bug 1457813 - Part 2: Replace non-asserting NS_PRECONDITIONs with MOZ_ASSERTs. r=froydnj
s/NS_PRECONDITION/MOZ_ASSERT/ and reindent

MozReview-Commit-ID: KuUsnVe2h8L

--HG--
extra : source : c14655ab3df2c9b1465dd8102b9d25683359a37b
2018-04-28 12:50:58 -07:00
Emilio Cobos Álvarez 788397fa22 Bug 1458016: Fix bad cast to Text. r=bz
I think it's harmless security-wise, since Text and char data are both
nsIContent, so the vtable offset should be the same.

I could also just do AsContent(), which may be cleaner but involve a virtual
call, or add AsCharacterData(), just let me know.

MozReview-Commit-ID: 79I9CuCmioF

--HG--
extra : rebase_source : 59bcd64ee4ae4d444a4dbeed9b5ecf97455c4422
2018-04-30 22:03:33 +02:00
Boris Zbarsky 8a0b50bea8 Bug 1456588 part 1. Change nsIFocusManager::SetFocus to take Element. r=enndeakin 2018-04-26 10:37:46 -04:00
Emilio Cobos Álvarez 45787fc53f Bug 1454241: Remove nsINode::eDATA_NODE. r=bz
MozReview-Commit-ID: 6HQDAwiGgIo
2018-04-20 03:58:00 +02:00
Andrew McCreight 3f7472aec1 Bug 1449670, part 1 - Convert IsNodeOfType(nsINode::eTEXT) to IsText(). r=bz
This method is not a virtual call, and also looks nicer.

This patch was mostly generated by a Python script, but I manually
cleaned up the code in a few places where statements didn't need to be
split across multiple lines any more.

MozReview-Commit-ID: 8JExxqSRc59

--HG--
extra : rebase_source : df6330a89e8d65dfe7a6fda0c8cb9f9732302efc
2018-04-12 15:41:00 -07:00
Boris Zbarsky df07d2d834 Bug 1447890 part 5. Remove nsISelection::RemoveAllRanges. r=mystor
MozReview-Commit-ID: EeMje9KW6An
2018-03-27 00:35:23 -04:00
Boris Zbarsky 24781001eb Bug 1447890 part 4. Remove nsISelection::GetRangeCount. r=mystor
MozReview-Commit-ID: FypNZE0oQiW
2018-03-27 00:35:22 -04:00
Boris Zbarsky eefd412514 Bug 1447890 part 3. Remove nsISelection::GetRangeAt. r=mystor
MozReview-Commit-ID: GhtZwsciRL4
2018-03-27 00:35:22 -04:00
Boris Zbarsky 74e28b0d19 Bug 1447890 part 2. Remove nsISelection::RemoveRange. r=mystor
MozReview-Commit-ID: JXq5FYNNXPJ
2018-03-27 00:35:22 -04:00
Boris Zbarsky 54d1f87ff4 Bug 1447890 part 1. Remove nsISelection::AddRange. r=mystor
MozReview-Commit-ID: 1JNLZp7tbII
2018-03-27 00:35:22 -04:00
Boris Zbarsky 5abddeaf58 Bug 1447889 part 2. Remove the XPCOM goop for creating Selection. r=mystor
It's unused; we never create these things by contract or classid.

MozReview-Commit-ID: 3Jsyb6QHlJt
2018-03-27 00:35:20 -04:00
Boris Zbarsky 46cdbdc51b Bug 1433566 part 13. Remove nsIDOMText. r=mystor
MozReview-Commit-ID: DvaZ96j5exf
2018-03-19 15:15:39 -04:00
Emilio Cobos Álvarez 043503a6d4 Bug 1024082: Remove most of the nsIPresShell::FrameManager calls. r=dholbert
Most of them just want GetRootFrame(), and there's no need to explicitly go
through the frame manager for that, we have a handy alias in the shell.

MozReview-Commit-ID: GriEqkasidY
2018-03-07 10:17:49 +01:00