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

64 Коммитов

Автор SHA1 Сообщение Дата
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
Olli Pettay 51b6aa1b21 Bug 1066965, make contentEditable and spellchecking to work in ShadowDOM, r=mrbkap 2018-03-06 09:34:40 +09:00
Dorel Luca f41b03eca9 Backed out changeset 38577c007450 (bug 1424371) for Marionett test failure on testing/marionette/harness/marionette_harness/tests/unit/test_window_maximize.py. CLOSED TREE 2018-02-19 22:15:23 +02:00
Milan Sreckovic 7571df7e7c Bug 1424371: Use BaseRect access methods instead of member variables in dom/ r=qdot
MozReview-Commit-ID: HXWhggOMIEK

--HG--
extra : rebase_source : 9c9eacf80d2b7f78faa82a1549170b98d12cdaa8
2018-02-19 12:56:10 -05:00
Boris Zbarsky f60fd673d6 Bug 1432186 part 19. Remove the nsIDOMNode::*_NODE constants. r=mccr8
MozReview-Commit-ID: KvKjeKIOB9K
2018-01-29 23:10:53 -05:00
Andrea Marchesini b8bb98af8c Bug 1430997 - Rename nsINode::IndexOf to nsINode::ComputeIndexOf, r=catalinb 2018-01-23 14:30:18 +01:00
Andrea Marchesini a6e93a0711 Bug 1430516 - Fixing a regression when a table cell is selected, r=catalinb 2018-01-17 12:52:51 +01:00
Andrea Marchesini 7e9322fba6 Bug 1425440 - Get rid of GetChildAt_Deprecated in selection, r=catalinb 2018-01-12 15:33:13 +01:00
Olli Pettay 07e03ec714 Bug 1429244 - Make Selection to use main thread only AddRef/Release, r=mccr8 2018-01-10 09:47:07 +02:00
Botond Ballo 7e42a77d38 Bug 1425686 - Remove scroll input methods telemetry code. r=kats
MozReview-Commit-ID: 1PC4826SMvh

--HG--
extra : rebase_source : 0123b921159864518e92077dd81d5185816e063a
2017-12-20 15:16:18 -05:00
Andrea Marchesini 00e79ef07b Bug 1425321 - Renaming nsINode::GetChildAt to GetChildAt_Deprecated, r=catalinb
We want to deprecate nsINode::GetChildAt as the first step of removing DOM node
child array storage. See bug 651120.
2018-01-03 13:59:54 +01:00
Edgar Chen 5fedbb92b8 Bug 1422197 - Add fast path to get DocGroup in binding code for [CEReactions]; r=smaug
MozReview-Commit-ID: HgbFo9ddr0o

--HG--
extra : rebase_source : 04989782fc7c7ce79e0e65b3dc907c9e174a0809
2017-11-27 16:10:27 +08:00
Masayuki Nakano 0021ffcddf Bug 1423097 - part 1: Implement Selection::AnchorRef() and Selection::FocusRef() r=smaug
Some methods of editor retrieves anchor and focus of selection.  However, there
are no methods which directly access RangeBoundary of anchor and focus.

This patch adds it for making editor code simpler and avoiding unnecessary
child offset computation.

MozReview-Commit-ID: EvepQpFMi8S

--HG--
extra : rebase_source : 38f3c506db5c9d8790bbd625d552bfbc8d99cebc
2017-12-05 16:36:57 +09:00
Ting-Yu Lin 7326c2887e Bug 1417376 Part 2 - Pass nsPoint parameters by const references instead of references. r=mats
MozReview-Commit-ID: 6TveqwkOvc0

--HG--
extra : rebase_source : d4674181a6198279bedbfc2efe4e0b1715c91d51
2017-11-15 18:26:10 +08:00
Ting-Yu Lin 34d8925cd4 Bug 1417376 Part 1 - Change nsPoint parameter to pass by value for DoAutoScroll(). r=mats
This private method DoAutoScroll() modifies aPoint inside of it, and none of
other callers (StartAutoScrollTimer() and nsAutoScrollTimer::Notify()) read
aPoint afterwards, so we make aPoint pass by value rather than pass by
non-const-reference. This is necessary for later parts.

MozReview-Commit-ID: 9PtxFXIka7X

--HG--
extra : rebase_source : 3bd47f071b3cecdc439ebc3b56c6a4f7ef56eff8
2017-11-16 10:32:22 +08:00
Ting-Yu Lin dfca359d6e Bug 1416699 - Add a space between #include and comment. r=jeremychen
Skip files under intl/icu/ because they're imported from third party.

DONTBUILD because this is a whitespace-only change.

MozReview-Commit-ID: GSd6oeFSTO7

--HG--
extra : rebase_source : 38c20bf6099c18b2fcb4c324d470b279addf8891
2017-11-13 17:54:18 +08:00
Masayuki Nakano 898bbb3137 Bug 1415062 - part 1: Selection should have Collapse(const RawRangeBoundary&) and Collapse(const RawRangeBoundary&, ErrorResult&) for avoiding computing offset of child node in container r=smaug
Selection should have Collapse() methods which take RawRangeBoundary instead of
a set of container and offset in it.  Then, if caller know only child node but
doesn't know offset in the container, neither callers, Selections nor nsRange
needs to compute offset.  This makes them avoid calling expensive method,
nsINode::IndexOf().

MozReview-Commit-ID: 79IRajLe1FE

--HG--
extra : rebase_source : a8ce52ff1654974461d5ecfed98b73d9cca34133
2017-11-07 15:29:15 +09:00
Andrew McCreight 298aa82710 Bug 1412125, part 2 - Fix dom/ mode lines. r=qdot
This was automatically generated by the script modeline.py.

MozReview-Commit-ID: BgulzkGteAL

--HG--
extra : rebase_source : a4b9d16a4c06c4e85d7d85f485221b1e4ebdfede
2017-10-26 15:08:41 -07:00
Kris Maglione 60d080b412 Bug 1404198: Part 2i - Switch to NS_NewTimer* in dom. r=njn
MozReview-Commit-ID: 8Oei6TuXNbu

--HG--
extra : rebase_source : 31c583c699790cbcf302064146d313ee8126ef0c
2017-10-15 23:15:40 -07:00
Ehsan Akhgari a3b87e2b92 Bug 1405039 - Avoid using nsINode::GetChildAt() in HTMLEditor::GetSelectedElement(); r=masayuki 2017-10-02 14:22:57 -04:00
Makoto Kato b7d709c044 Bug 1397791 - Move StartBatchChanges and EndBatchChanges from nsISelectionPrivate to Selection. r=smaug
There is no reason to keep StartBatchChanges and EndBatchChanges in nsISelectionPrivate since this is noscript method.  And if moving it to Selection, we can remove virtual keyword.

MozReview-Commit-ID: Go6njiW3r2x

--HG--
extra : rebase_source : cb5bfce8312de7d49496e5f841e9786ff16102f6
2017-09-08 12:10:44 +09:00
Masayuki Nakano 4ce89d8f61 Bug 1369072 - part3: nsXBLPrototypeHandler::DispatchXBLCommand() should use controller of visible window r=smaug
With previous change, KeyboardEvent is dispatched even when invisible window
has focus.  However, nsRootWindow::GetControllerForCommand() returns controller
for focused window even when the window is invisible because it uses
nsFocusManager::GetFocusedDescendant() to retrieve focused window.

Perhaps, we can assume that users won't expect to do something with invisible
window when they type some keys.  Then, nsRootWindow::GetControllerForCommand()
should return controller for visible ancestor window if focused window is
invisible.

This patch makes nsFocusManager::GetFocusedDescendant() can return only visible
descendants.  However, it already has a bool argument.  Therefore, it should
have a flag instead of adding new flag.  Most changes of this patch is replacing
its callers.

Then, nsRootWindow::GetControllerForCommand() and nsRootWindow::GetControllers()
should have a bool flag if it should return controller(s) for visible window.
This patch adds a bool flag for it.  Fortunately, the interface isn't scriptable.

Finally, this patch makes nsXBLPrototypeHandler::DispatchXBLCommand() and
EventStateManager::DoContentCommandEvent() retrieve controller for visible
window since they are always handles user input.

MozReview-Commit-ID: GygttTHuKRm

--HG--
extra : rebase_source : 1341273c4606298cb9b890b9312d9f5c8a75d144
2017-09-07 22:54:49 +09:00
Ehsan Akhgari 2231e4a948 Bug 1397577 - Avoid using GetChildAt() in HTMLEditor::GetSelectedOrParentTableElement(); r=smaug 2017-09-07 10:29:02 -04:00
Masayuki Nakano 1c17ef6f96 Bug 1393816 - part2: Selection::SetBaseAndExtent() should use mCachedRange if it's available r=smaug
Similar to Selection::Collapse(), if mCachedRange is available,
Selection::SetBaseAndExtent() should use it rather than creating new nsRange
instance.

Then, it can reduce the allocation cost and may reduce some other cost, e.g.,
adding it to mutation observer.

MozReview-Commit-ID: InQQusw2KMc

--HG--
extra : rebase_source : 967f0d4ad2b7bc706e417af547bbbb21e5f54306
2017-08-26 00:12:38 +09:00
Masayuki Nakano 5c2c570f9b Bug 1393816 - part1: Cache a range until new range is created in Selection r=smaug
When setting value of <input type="text">, nsTextEditorState removes all
ranges of normal selection first.  Then, TextEditor sets the value.  Finally,
TextEditor collapses the selection at the end of the text.

In bug 1386471, we got that there are some problems to remove the call of
Selection::RemoveAllRanges() in nsTextEditorState.  Therefore, we need another
approach to improve Selection::Collapse().

The approach of this patch is, when removing all ranges from normal selection,
Selection can cache an nsRange instance if there is an instance which is not
referenced from other than the Selection (i.e., it'll be removed when
Selection::Clear() is called).  Then, Selection::Collapse() can reuse it.  With
this fix, Selection::Collapse() can reduce allocation cost and may reduce some
other cost like adding it to mutation observer.

However, keeping nsRange instance may cause increasing mutation observer's cost
since nsRange will be adjusted its start node/offset and end node/offset with
mutation observer to guarantee that the range is always valid.  So, we can
cache such range only when the caller (or its callee) will set selection range
later.  Therefore, this patch adds Selection::RemoveAllRangesTemporarily()
and make only nsTextEditorState::SetValue() and
ContentEventHandler::OnSelectionEvent() use it.

MozReview-Commit-ID: FjWrbz4S1ld

--HG--
extra : rebase_source : 83677640525e0b1a84bdd7fce63ff4704b9cc22b
2017-08-25 19:21:39 +09:00
Makoto Kato 3422cf2abc Bug 1393171 - More safety check for focus node. r=smaug
MozReview-Commit-ID: 9Byl7RXQivN
2017-08-25 23:54:46 +09:00
Makoto Kato 5bd44e5cfd Bug 1393355 - Move SetTextRangeStyle from nsISelectionPrivate to Selection. r=masayuki
There is no reason that SetTextRangeStyle is defined at nsISelectionPrivate.  Also, SetTextRangeStyle isn't scriptable, and is called from CompositionTransaction::SetIMESelection only.  So we should move this to Selection.

MozReview-Commit-ID: FCOA6wVhvYZ

--HG--
extra : rebase_source : 64eb9e5fb973195b2c87ab4eb296685c8a4d0319
2017-08-24 16:56:12 +09:00
Sebastian Hengst 99e5cb9c14 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: GSKVB94r7Kk
2017-08-23 16:29:51 +02:00
Makoto Kato fa46fdd1ad Bug 1348073 - Part 1. MoveCaret should move caret when focus node is whitespace only even if it is no frame. r=jfkthame
When enabling lazy frame construction, whitespace only node might not have frame.  So editor/libeditor/tests/test_bug1315065.html is failure because nsFrameSelection::MoveCaret returns error since focus node is whitespace only node that has no frame.

So if focus node is whitespace only, we should promote to parent to get primary frame then try again.

MozReview-Commit-ID: K83T2LP3Pc5

--HG--
extra : rebase_source : 707584424e83574dd3151e12a915473f676ce5a0
2017-08-23 19:09:07 +09:00
Ehsan Akhgari 67ac6e84f7 Bug 1385530 - Avoid addrefing the presshell in Selection::ScrollIntoView() for the asynchronous scrolling case; r=mats 2017-08-22 19:33:13 -04:00
Ehsan Akhgari dea2e72d91 Bug 1390382 - Part 1: Inline Selection::IsCollapsed(); r=smaug 2017-08-15 18:57:14 -04:00
Ehsan Akhgari 604f6343ab Bug 1390626 - Part 2: Avoid using QueryInterface() to convert nsIDocument to nsIDOMDocument; r=smaug 2017-08-15 17:10:34 -04:00
Ehsan Akhgari 0b3dbd3a20 Bug 1390626 - Part 1: Bail out early if there are no selection listeners to notify; r=smaug 2017-08-15 17:10:34 -04:00
Milan Sreckovic 8ad3e52a49 Bug 1387514: Upgrade BaseRect (derived classes) width and height direct member variable use to instead use Width()/SetWidth() and Height()/SetHeight() in dom/*. r=overholt
MozReview-Commit-ID: B9YWmM3C1oX

--HG--
extra : rebase_source : d7c27de968295ee13ece8bda23798cb215d60a4b
2017-08-14 08:30:10 -04:00
Masayuki Nakano b11e66f8da Bug 1388004 - part1: Make nsContentUtils::GetHTMLEditor() return HTMLEditor* rather than nsIEditor* r=smaug
nsContentUtils::GetHTMLEditor() currently returns nsIEditor* since editor of doc shell may be any type of editors such as TextEditor or editor object which is implemented by JS.  However, nsIEditor is now a builtin class.  So, it can return HTMLEditor.

MozReview-Commit-ID: 3YoFOplZa7W

--HG--
extra : rebase_source : 46f42d23babd64bf0a5003e66e8fe3b9e0bd7166
2017-08-07 16:33:59 +09:00
Aryeh Gregor 99a150fe57 Bug 1359397 - Don't allow Selection in nodes not in the document; r=masayuki
This matches the spec and Chrome, and seems to bring us closer to Edge
and WebKit as well.  It also matches our own behavior for addRange(),
which was changed in bug 1341137.

For collapse and selectAllChildren, we match the tests and browsers, but
the spec is incorrect at the time of this writing:
https://github.com/w3c/selection-api/pull/86

The removeAllRanges test hadn't been updated for the spec change.

MozReview-Commit-ID: DTK8283k5IP

--HG--
extra : rebase_source : 54701e7136c33ebce651d5f74c3dc1d8b944f9a3
2017-08-10 15:02:08 +03:00
Makoto Kato 4418d7d986 Bug 1381710 - Selection.addRange will be failure with dynamic table insertion. r=tnikkel
When range is selected table element, Selection.addRange uses nsFrameSelection.  If frame isn't constructed yet, addRange throws NS_ERROR_FAILURE even if table element isn't editable element.

When getting nsITableCellLayout, we should flush frame to construct cell frame.

MozReview-Commit-ID: 9qWwW46RYNL

--HG--
extra : rebase_source : 708e78af457a28bc273b83015f78950a5bee232e
2017-07-18 16:54:31 +09:00
Wes Kocher db7d003ae0 Merge m-c to autoland a=merge CLOSED TREE
MozReview-Commit-ID: Ko3lhAvzMJN
2017-08-03 18:22:09 -07:00
Ehsan Akhgari 7fe0be04ed Bug 1386411 - Part 3: Inline some helper functions in Selection.cpp; r=bzbarsky 2017-08-03 17:05:19 -04:00
Aryeh Gregor ca4b09e233 Bug 1359157 - Support Selection.type from spec; r=smaug
All other browsers already support it, more or less interoperably.

MozReview-Commit-ID: 4VoOeqBoKI0

--HG--
extra : rebase_source : fdd5198cc5fe8c2175242ddcc170947e7ca592b9
2017-08-03 17:13:24 +03:00