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

60 Коммитов

Автор SHA1 Сообщение Дата
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 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
Adrian Wielgosik be0c1a4f55 Bug 1481645 - Remove some redundant uses of do_QueryInterface. r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D2893

--HG--
extra : moz-landing-system : lando
2018-08-13 09:05:19 +00:00
Chris Peterson 2afd829d0f Bug 1469769 - Part 6: Replace non-failing NS_NOTREACHED with MOZ_ASSERT_UNREACHABLE. r=froydnj
This patch is an automatic replacement of s/NS_NOTREACHED/MOZ_ASSERT_UNREACHABLE/. Reindenting long lines and whitespace fixups follow in patch 6b.

MozReview-Commit-ID: 5UQVHElSpCr

--HG--
extra : rebase_source : 4c1b2fc32b269342f07639266b64941e2270e9c4
extra : source : 907543f6eae716f23a6de52b1ffb1c82908d158a
2018-06-17 22:43:11 -07: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 9748db120d Bug 1455676 part 8. Remove nsIDOMNode usage from layout/. r=qdot 2018-05-29 22:58:48 -04:00
Adrian Wielgosik f1457c6874 Bug 1460940 - Remove nsIDOMDocument uses in layout/. r=bz
MozReview-Commit-ID: KixJ5edlCjl

--HG--
extra : rebase_source : 677049bc7eb131dc86ed468eb8a6b06085f2c17d
2018-05-11 19:46:15 +02:00
Boris Zbarsky 1fb03996f4 Bug 1387143 part 29. Remove nsISelection. r=mats 2018-05-08 13:52:42 -04:00
Boris Zbarsky a44e6132ff Bug 1387143 part 28. Remove nsISelection::AsSelection(). r=mats 2018-05-08 13:52:42 -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 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 081d926e7b Bug 1457026: Teach nsDocumentEncoder about display: contents. r=mats
MozReview-Commit-ID: 5F3qurRHMNM
2018-04-26 18:06:37 +02:00
Emilio Cobos Álvarez c0f2f96f66 Bug 1303605: Remove the undisplayed maps. r=bz,mats
This is mostly code removal, changing GetDisplayContentsStyle(..) checks by an
FFI call to Servo.

The tricky parts are:

 * MaybeCreateLazily, which I fixed to avoid setting bits under display: none
   stuff. This was a pre-existing problem, which was wallpapered by the
   sc->IsInDisplayNoneSubtree() check, which effectively made the whole
   assertion useless (see bug 1381017 for the only crashtest that hit this
   though).

 * ContentRemoved, where we can no longer know for sure whether the element is
   actually display: contents if we're removing it as a response to a style
   change. See the comment there. That kinda sucks, but that case is relatively
   weird, and it's better than adding tons of complexity to handle that.

 * GetParentComputedStyle, which also has a comment there. Also, this function
   has only one caller now, so we should maybe try to remove it.

The different assertions after DestroyFramesForAndRestyle are changed for a
single assertion in the function itself, and the node bit used as an
optimization to avoid hashtable lookups is taken back.

MozReview-Commit-ID: AZm822QnhF9
2018-04-07 15:21:56 +02: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 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 a8a190f4e1 Bug 1447889 part 14. Remove mention of nsIDOMRange from layout/. r=mystor
MozReview-Commit-ID: JWJWGzY45ac
2018-03-27 00:35:22 -04:00
Boris Zbarsky 86c4629290 Bug 1447889 part 10. Remove nsIDOMRange::DeleteContents. r=mystor
MozReview-Commit-ID: IoXz0pS6zAa
2018-03-27 00:35:21 -04:00
Emilio Cobos Álvarez e341b20ec4 Bug 1447483: Merge nsStyleContext and ServoStyleContext, rename to ComputedStyle. r=jwatt on a CLOSED TREE
MozReview-Commit-ID: JPopq0LudD
2018-03-22 20:06:24 +01:00
Emilio Cobos Álvarez 5dd797f154 Back out changeset b683bb3f22a1 (Bug 1447483) for not landing with all the files. r=me on a CLOSED TREE
This reverts commit 1808914126bb9f9e4a82d2c3d7ac961885fe7d62.

MozReview-Commit-ID: 5skESBseEvo
2018-03-22 20:05:22 +01:00
Emilio Cobos Álvarez ca5ac79cca Bug 1447483: Merge nsStyleContext and ServoStyleContext, rename to ComputedStyle. r=jwatt
MozReview-Commit-ID: JPopq0LudD
2018-03-22 19:48:42 +01:00
Boris Zbarsky df6c05a122 Bug 1442039 part 14. Remove nsDOMClassInfoID.h. r=peterv
MozReview-Commit-ID: 6pZs1XI1oSd
2018-03-21 23:13:30 -04:00
Boris Zbarsky 2a8f76304f Bug 1433566 part 12. Stop using nsIDOMText in layout. r=mystor
MozReview-Commit-ID: KliYtj5U8jK
2018-03-19 15:15:39 -04:00
Emilio Cobos Álvarez c976615ed6 Bug 1024082: Remove PresShell::FrameManager(), use PresShell::FrameConstructor instead. r=dholbert
Unfortunately this means that we need to export a couple more headers, but that
should be ok.

In particular, we have to export some headers that are #included by
nsCSSFrameConstructor.h, because nsCSSFrameConstructor.h itself will now be
included in more places outside of layout/, by .cpp files that don't necessarily
have the ability to indirectly #include its other headers, unless we export
them.

MozReview-Commit-ID: 2n9KHW6Yjrd
2018-03-07 10:17:52 +01: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
Jet Villegas 30f3f2231b Bug 1426869 - "td.contenteditable=true focus breaks text selection" [r=masayuki]
--HG--
extra : rebase_source : d2c2091bf4eba8420951b16d2be4f5d66e9c491f
2018-01-09 08:00:00 +02:00
Andrea Marchesini b8bb98af8c Bug 1430997 - Rename nsINode::IndexOf to nsINode::ComputeIndexOf, r=catalinb 2018-01-23 14:30:18 +01:00
Andrea Marchesini bdcf861cca Bug 1425440 - Get rid of GetChildAt_Deprecated in nsFrameSelection, r=catalinb 2018-01-12 15:33:14 +01: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
Emilio Cobos Álvarez 1cda1ad876 Bug 1427511: Make GetFlattenedTreeParent more straight-forward. r=smaug
Now that accessing nsIContent slots is not a blob of virtual function calls, we
should be able to unify logic here, and speed up the not-so-rare case for
chrome, while keeping the usual case fast.

MozReview-Commit-ID: 87iY5Cbhx4T
2018-01-02 18:00:25 +01:00
Ting-Yu Lin 264402226f Bug 1417376 Part 3 - Pass nsPoint parameters by const references instead of values. r=mats
It's good to save some copy constructor calls.

MozReview-Commit-ID: 6TveqwkOvc0

--HG--
extra : rebase_source : 02e678f985c074f6c972cf8478e233aa5e4607db
2017-11-15 17:55:36 +08: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
Jeremy Chen c4bc4498fd Bug 1387176 - move member initialization from the constructor to class definition for nsFrameSelection. r=TYLin
In this patch, we move the member assignments in nsFrameSelection's constructor
to nsFrameSelection's class definition. This is a pre-patch for switching
nsFrameSelection to use per-member defaults. With this patch, all the uninitialized
members can be tracked easily.

MozReview-Commit-ID: 1HhTDlV73QN

--HG--
extra : rebase_source : f97f7a46ba70e1f36f4812591d73b64061cf0c9e
2017-11-17 16:18:40 +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
Mats Palmgren 1c2b8c222e Bug 1414666 part 1 - Add nsIFrame::PresShell() for convenient access to the shell. r=emilio
MozReview-Commit-ID: 8FPTPKWyVtY
2017-11-09 03:00:48 +01:00
Daniel Holbert 680815cd6e Bug 1412346 part 5: (automated patch) Switch a bunch of C++ files in layout to use our standard mode lines. r=jfkthame
This patch was generated automatically by the "modeline.py" script, available
here: https://github.com/amccreight/moz-source-tools/blob/master/modeline.py

For every file that is modified in this patch, the changes are as follows:
 (1) The patch changes the file to use the exact C++ mode lines from the
     Mozilla coding style guide, available here:
https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Coding_Style#Mode_Line

 (2) The patch deletes any blank lines between the mode line & the MPL
     boilerplate comment.

 (3) If the file previously had the mode lines and MPL boilerplate in a
     single contiguous C++ comment, then the patch splits them into
     separate C++ comments, to match the boilerplate in the coding style.

MozReview-Commit-ID: EuRsDue63tK

--HG--
extra : rebase_source : 3356d4b80ff6213935192e87cdbc9103fec6084c
2017-10-27 10:33:53 -07:00
Boris Zbarsky 661d20b507 Bug 1409162. Make nsTableCellFrame::GetColIndex/GetRowIndex faster. r=mats 2017-10-17 15:39:36 -04:00
Nicholas Nethercote d225f7151b Bug 1400460 - Rename nsIAtom as nsAtom. r=hiro.
(Path is actually r=froydnj.)

Bug 1400459 devirtualized nsIAtom so that it is no longer a subclass of
nsISupports. This means that nsAtom is now a better name for it than nsIAtom.

MozReview-Commit-ID: 91U22X2NydP

--HG--
rename : xpcom/ds/nsIAtom.h => xpcom/ds/nsAtom.h
extra : rebase_source : ac3e904a21b8b48e74534fff964f1623ee937c67
2017-10-03 09:05:19 +11:00
Lorena Diaconescu 40a6d7faec Bug 1361548 - Removed unreachable isCollapsed if condition. r=mats
MozReview-Commit-ID: EinCtNyaK6e

--HG--
extra : rebase_source : 55f08ef227bc96e31dbb83c597448274a7836a35
2017-09-06 15:48:20 -04:00
Masayuki Nakano 5e251e26e0 Bug 1393348 - part3: Converting SelectionType to index of Selection array in nsFrameSelection should use array instead of switch statement r=smaug
GetIndexFromSelectionType() in nsFrameSelection.cpp or
nsFrameSelection::GetSelection() appears in profile of attachment 8848015.  So,
it should not use switch statement due to really hot path.

With the previous patch, we can make it use array to retrieve the index from
SelectionType with static_cast<int8_t>.

MozReview-Commit-ID: 8jvIF5buTyT

--HG--
extra : rebase_source : ccb9c855caa6688e45097f67de3160860339d281
2017-08-24 20:01:20 +09:00
Masayuki Nakano 3bd4299525 Bug 1393348 - part2: nsISelectionController::SELECTION_* should be sequential integer values r=smaug
nsISelectionController::SELECTION_* are declared as bit-mask.  However, no
methods of nsISelectionController treat them as bit-mask and these
values need a switch statement in nsFrameSelection to convert SelectionType to
array index of nsFrameSelection::mDOMSelections because it's too big to create
an array to do it.  Additionally, this conversion appears profile of
attachment 8848015.

So, now, we should declare these values as sequential integer values.

However, only nsTextFrame uses these values as bit-mask.  Therefore, this patch
adds new type, SelectionTypeMask and creates new inline method,
ToSelectionTypeMask(SelectionType), to retrieve mask value for a SelectionType.

MozReview-Commit-ID: 5Za8mA6iu4

--HG--
extra : rebase_source : 86617c1f5fa23166458f4353cb834f9e7c5b131b
2017-08-24 19:14:04 +09: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
Ehsan Akhgari 22c17c93c9 Bug 1386472 - Only register the AccessibleCaretEventHub when the accessible caret is enabled; r=bzbarsky 2017-08-03 23:06:15 -04:00
Ehsan Akhgari 064dd8f2a2 Bug 1386468 - Only register SelectionChangeListener for plaintext controls when dom.select_events.textcontrols.enabled is turned on; r=mystor 2017-08-03 17:01:40 -04:00