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

41 Коммитов

Автор SHA1 Сообщение Дата
Emilio Cobos Álvarez 1e6e97fed1 Bug 1389743: Only reconstruct frames synchronously from ContentRemoved when called from frame construction. r=mats
There's only one case of sync frame construction from ContentRemoved now, and
it's not on the element being removed, but on the whitespace siblings if needed,
and _only_ when they don't support lazy frame construction.

Basically, this switches all the RecreateFramesForContent calls to use
`aAsyncInsert` (which I changed to an enum class for readability), except when
we're already reframing.

Also, it switches ReframeTextIfNeeded to opt-in into lazy frame construction,
since it's used only when aFlags == CONTENT_REMOVED.

This allows to simplify the DestroyFramesFor API (which I'm happy to rename to
something more meaningful, since now it's something like
DestroyFramesForAndRecreateThemAsync), and do some other consistency cleanups.

A bunch of the ContentRemoved callsites were pretty random at passing
aAsyncInsert, and that was some kind of a mess. This patch ensures consistency,
and makes it impossible to do O(n^2) work when removing DOM nodes, which is
nice.

The underlying reason for this is explained in the description of bug 1377848,
and basically allows us to remove a bunch of Servo hacks on the longer term (a
few of them are going away already, yay!).

MozReview-Commit-ID: 2DrUTxGV8RX

--HG--
extra : rebase_source : f428d839a5482477dea22c0fea600d54f3e8799c
2017-08-23 09:58:57 +02:00
Michael Kaply 73bafcec5e Bug 1389168 - Remove unnecessary IBM license text. r=gerv
MozReview-Commit-ID: 8HdaBppsJsc

--HG--
extra : rebase_source : 617c17b1162265e44810597fa69d533316da1a6b
2017-08-16 16:10:56 -05:00
Nicholas Nethercote 9ab2597a8d Bug 1387956 (part 2) - Overhaul handling of nsWindowSizes. r=mccr8.
This patch does the following.

- Moves nsWindowSizes from nsWindowMemoryReporter.h to its own file,
  nsWindowSizes.h, so it can be included more widely without exposing
  nsWindowMemoryReporter.

- Merges nsArenaMemoryStats.h (which defines nsTabSizes and nsArenaMemoryStats)
  into nsWindowSizes.h.

- Renames nsArenaMemoryStats as nsArenaSizes, and nsWindowSizes::mArenaStats as
  nsWindowSizes::mArenaSizes. This is the more usual naming scheme for such
  types.

- Renames FRAME_ID_STAT_FIELD as NS_ARENA_SIZES_FIELD.

- Passes nsWindowSizes to PresShell::AddSizeOfIncludingThis() and
  nsPresArena::AddSizeOfExcludingThis(), instead of a bunch of smaller things.
  One nice consequence is that the odd nsArenaMemoryStats::mOther field is no
  longer necessary, because we can update nsWindowSizes::mLayoutPresShellSize
  directly in nsPresArena::AddSizeOfExcludingThis().

- Adds |const| to a few methods.

MozReview-Commit-ID: EpgFWKFqy7Y
2017-08-10 14:14:09 +10:00
Ehsan Akhgari cf4e6a817c Bug 1386411 - Part 7: Inline EditorBase::GetSelection(); r=masayuki 2017-08-03 17:06:31 -04:00
Ehsan Akhgari dd8fbce0c9 Bug 1386411 - Part 6: Add a more efficient nsISelectionController::GetSelection() API for retrieving native Selection objects; r=bzbarsky
This API avoids needless refcounting and QueryInterface overhead.
2017-08-03 17:05:24 -04:00
Ryan Hunt 74d75aee90 Bug 1379280 - Move FocusTarget include from nsIPresShell to PresShell. r=smaug
FocusTarget used to be needed in nsIPresShell, but it was moved to PresShell.

MozReview-Commit-ID: HQFpT9OJaUz

--HG--
extra : rebase_source : ddc29462fc71f8a71dd2419823ddf6f7e92a60ce
2017-07-13 13:00:21 -05:00
Ryan Hunt f2d4d39378 Bug 1376538 - Transmit APZ focus target updates on empty transactions. r=kats
This commit also schedules empty transactions on input events that trigger a
focus sequence number update.

MozReview-Commit-ID: 1FWXfStLsGv

--HG--
extra : rebase_source : 02c6f07287b6909493f6f88345a3cca93ab3e45b
2017-06-28 15:11:04 -04:00
Ryan Hunt 99499fb9d6 Bug 1351783 part 7 - Create FocusState and FocusTarget types. r=kats,botond
This commit begins the work needed for tracking focus by creating two new classes,
FocusTarget and FocusState. FocusState is created and used by APZCTreeManager to
track the global focus information, while FocusTarget is created per layer tree and
sent to APZ with local focus information. Between the two we are able to figure out
what the correct scrollable layer is to use in response to a keyboard scroll.

See the comment in `FocusState.h` for more details on the architecture and things
needed in future patches to complete this.

MozReview-Commit-ID: F75VZv3i9U2

--HG--
extra : rebase_source : 3d04bced8e13a9884f0c1b320bad8ba2205d7011
2017-06-05 19:12:22 -05:00
Alexis Beingessner adb013669b Bug 1088760 - Remove nsRenderingContext, replacing all of its uses with gfxContext. r=jwatt,jrmuizel
MozReview-Commit-ID: K1WUIOnvazF
2017-06-13 11:00:10 -04:00
Sebastian Hengst f3bf820bfd Backed out changeset 3d1ce85e6348 (bug 1088760) for bustage, at least on Android at layout/generic/nsPluginFrame.cpp:1612. r=backout 2017-06-13 00:30:03 +02:00
Alexis Beingessner c75211cb95 Bug 1088760 - Remove nsRenderingContext, replacing all of its uses with gfxContext. r=jwatt,jrmuizel
MozReview-Commit-ID: K1WUIOnvazF
2017-06-12 17:32:48 -04:00
Mats Palmgren 357e4b9560 bug 1368547 part 2 - Remove nsFrameManager/PresShell methods dealing with placeholders and introduce a nsIFrame::GetPlaceholderFrame() convenience method. r=jfkthame
MozReview-Commit-ID: GBUiUBqJxhQ
2017-05-31 21:29:49 +02:00
Jonathan Kew 20b8376ffd Bug 1368654 - pt 1 - Implement memory reporter support for FrameProperties. r=mats 2017-05-31 19:52:47 +01:00
Emilio Cobos Álvarez 69601ee10e Bug 1367553: Provide the kind of change that the stylesheet suffered to RecordStyleSheetChange. r=heycam
I plan to use it for now to force a full document restyle when a standalone rule
changes or something like that.

In practice, we can do better sometimes, and we may just want to propagate to
the StyleSet all the style change notifications in order to have access to the
rule that changed and all that...

But for now this seemed easier than adding other four or five functions to
StyleSetHandle.

MozReview-Commit-ID: 2BEIliGu4mO

--HG--
extra : rebase_source : 386a1b9fe5ffc5fefbf20678068573ea195043f0
2017-05-24 04:28:58 +02:00
Phil Ringnalda 4dcbd3095c Backed out 2 changesets (bug 1367553) for build bustage
CLOSED TREE

Backed out changeset 3e6c9a752596 (bug 1367553)
Backed out changeset 1ee24478fa16 (bug 1367553)

MozReview-Commit-ID: B805jBJYcqL
2017-05-25 06:13:01 -07:00
Emilio Cobos Álvarez 38735b0dbd Bug 1367553: Provide the kind of change that the stylesheet suffered to RecordStyleSheetChange. r=heycam
I plan to use it for now to force a full document restyle when a standalone rule
changes or something like that.

In practice, we can do better sometimes, and we may just want to propagate to
the StyleSet all the style change notifications in order to have access to the
rule that changed and all that...

But for now this seemed easier than adding other four or five functions to
StyleSetHandle.

MozReview-Commit-ID: 2BEIliGu4mO

--HG--
extra : rebase_source : 926f8442fbd17c7ffa7f72b6b4a515a28b9aa18b
2017-05-24 04:28:58 +02:00
Mats Palmgren 5f995975b4 Bug 1359341 part 1 - Make PresShell::GetPlaceholderFrameFor return a nsPlaceholderFrame. r=jfkthame
MozReview-Commit-ID: AvfQcCtVMta
2017-05-23 19:09:26 +02:00
Chris H-C c2c97d341c bug 1357457 - Report non-overlapping Input Responses to Telemetry. r=bsmedberg,masayuki data-r=bsmedberg
Say there's a single lag event, a GC or a busy loop, during which the user
types several characters.

Is this one (lag) event? Several (input) events?

We have INPUT_EVENT_RESPONSE_MS which will accumulate several lagged events in
this case. However, that is more of an indication of how users use Firefox than
how good we've been at eliminating sources of lag.

INPUT_EVENT_RESPONSE_COALESCED_MS records the coalesced time spend waiting for
responses to input events. So in this case it will record one value for the
entire duration of the lag.

MozReview-Commit-ID: H5rYnhwF0q3

--HG--
extra : rebase_source : b9be179dac6c6a007d2835b909ec4ce71a3f1c90
2017-04-19 15:53:30 -04:00
Emilio Cobos Álvarez d2f3dc13ec Bug 1357142: Kill PresShell::RecreateFramesFor. r=bz
It's not only inefficient, but also prone to buggyness. Since styles may not be
up-to-date when it happens.

Post a reconstruct instead, which ensures a style flush happens before running
frame construction.

MozReview-Commit-ID: DrakHsJv5fY
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>

--HG--
extra : rebase_source : 11900af908654336cc2391ab9480542c5474e38f
2017-04-17 18:01:37 +02:00
Chris H-C 7553f146c1 bug 1357742 - Drop INPUT_EVENT_RESPONSE_MS measurements across sleep/wake r=smaug
It is possible that events created before the OS goes to sleep will remain
unhandled until after the OS wakes. They will have long response times on
platforms where TimeStamp increments during sleep (like Windows) even though
they really shouldn't. (and the user likely doesn't care if they do).

So don't record those.

MozReview-Commit-ID: 4ybjF8gjkae

--HG--
extra : rebase_source : ff48923c6589d9cbac3284dd81f28598677ca449
2017-04-19 11:17:20 -04:00
Emilio Cobos Álvarez 401a3ef429 Bug 1296516: Cleanup infallible or unchecked nsCSSFrameConstructor methods. r=heycam
MozReview-Commit-ID: IoMOQyAhadv
2017-03-20 22:28:16 +01:00
Cameron McCormack 6a09f48246 Bug 1337258 - Support ServoStyleSheets in nsStyleSheetService. r=xidorn
MozReview-Commit-ID: 4vaHzDBZHFg

--HG--
extra : rebase_source : cb6e075e88c66a89bf6711db4ba913d62fd421ad
2017-02-21 10:42:27 +08:00
Wes Kocher a85d979e21 Merge m-c to inbound, a=merge
MozReview-Commit-ID: 18xg2cleATb
2017-02-17 13:51:01 -08:00
Boris Zbarsky 25937fe5a8 Bug 1339891 part 2. Make FlushPendingNotifications on a presshell quickly no-op if there is nothing to flush. r=heycam 2017-02-17 13:38:44 -05:00
Jeff Walden cdee578059 Bug 1287006 - Don't pass Maybe (or any class containing a Maybe member) by value, only by reference or pointer, in layout/-related code. r=bz
--HG--
extra : rebase_source : 94377970d6ec591044a10dab1aa5568e4a051837
2017-02-13 09:07:40 -08:00
Cameron McCormack 414df18eb5 Bug 1340090 - Make nsStyleSheetService notify PresShells directly instead of using the observer service. r=bz
MozReview-Commit-ID: 4xz422B6GSv

--HG--
extra : rebase_source : 5b6c132c5dcace04a6d1c3a6ba05a4b207f6bbba
2017-02-17 15:56:28 +08:00
Matt Woodrow ba6e966a12 Bug 1302071 - Part 1: Remove AddPresShellToInvalidateIfHidden since it doesn't appear to be necessary. r=tnikkel
We added this so that MozAfterPaint events would be delivered to hidden documents as part of bug 539356, but I don't remember what needed it.
It doesn't appear to be necessary for any tests any more, so let's just get rid of it

MozReview-Commit-ID: HcmIjstZyLQ

--HG--
extra : rebase_source : 3f58129b3b1588e5d39e00c157e4bdba1afeed0c
2017-02-17 11:49:29 +13:00
Jessica Jong ed17f6c827 Bug 1316330 - Cancel delayed keypress events if last keydown was canceled. r=smaug
--HG--
extra : histedit_source : 7d2215d9c049b01b883e194e0efd0e61845223a3%2C135d6e6cef429efc19bba2c03a0f73fc6441d3a1
2017-02-03 05:16:00 -05:00
Ehsan Akhgari b583e128e0 Bug 1335070 - Switch the PresShell::Paint profiler marker to use GetPrimaryContentDocument to annotate using the content document; r=tn 2017-02-02 18:22:53 -05:00
L. David Baron b0cf27878d Bug 1333951 - Unbreak dumping of style contexts. r=bzbarsky
Prior to this patch, dumping of style contexts in the layout
debugger would only dump the subtree associated with the root
frame, which just covers the viewport, canvas, and associated
scrollbars.

I think this has been broken since bug 236921 (2004) and
bug 378693 (2007) properly disconnected the root element from the
styles for the viewport and canvas.

This patch just manually dumps the root frame and the root
element's frame, since the style set no longer maintains a list
of all of the style context roots.

MozReview-Commit-ID: 5LEnbNtngN2

--HG--
extra : transplant_source : v%BB%09%C8M8%FE%25%A9%A6%3D%EA%BD%BE%DF7%08%9A%85m
2017-01-25 22:05:16 -08:00
Julian Seward ebea2b59c1 Bug 1232696 - Remove NS_DECL_AND_IMPL_ZEROING_OPERATOR_NEW as it causes segfaulting for GCC 6 builds (3 of 5, fixes for layout/). r=dholbert. 2017-01-24 17:11:13 +01:00
Carsten "Tomcat" Book 0367e7729d Backout bug 1316330 on developers request 2017-01-20 14:16:13 +01:00
Jessica Jong 4d95d705cd Bug 1316330 - Cancel delayed keypress events if last keydown was canceled. r=smaug
--HG--
extra : rebase_source : 77456a1ef26a765d7710d51317e547495ac00993
2016-12-02 15:35:28 +08:00
Cameron McCormack babad063ff Bug 1328832 - Part 2: Rename mozFlushType to mozilla::FlushType and make it an enum class. r=bzbarsky
MozReview-Commit-ID: D3fIngSHSsl
2017-01-05 15:31:56 +08:00
Michelangelo De Simone 682555bbc4 Bug 1313169 - Remove dom/inputmethod/ and related code. r=Ehsan
MozReview-Commit-ID: 5jkBVon3ZSz

--HG--
extra : rebase_source : e13a061650abe81ea58ffca22f74e3ec6122fede
2016-12-20 16:32:12 -08:00
Masayuki Nakano 91321b54b4 Bug 1322736 part.4 Remove pref to enable BeforeAfterKeyboardEvent and permission to allow to handle the event r=smaug
MozReview-Commit-ID: BcYcN4soTvg

--HG--
extra : rebase_source : e0695f539426dfb39180a45c7fc0d64ba8d644f3
2016-12-16 16:50:17 +09:00
Masayuki Nakano e0dcff15d2 Bug 1322736 part.3 Remove dom::BeforeAfterKeyboardEvent and InternalBeforeAfterKeyboardEvent r=smaug
MozReview-Commit-ID: Eyz2HjIdQEW

--HG--
extra : rebase_source : 182f4f8236dcfb83f8725a9c66cc46dedbb14f2c
2016-12-16 16:25:22 +09:00
Masayuki Nakano d48cef4255 Bug 1322736 part.2 Remove "after keydown" and "after keyup" events r=smaug
MozReview-Commit-ID: ICFPyDhgfh7

--HG--
extra : rebase_source : 6d3a9d227ac99710ac2daa036e1e169d31ae9e6a
2016-12-16 16:01:51 +09:00
Masayuki Nakano abc299239b Bug 1322736 part.1 Remove "before keydown" and "before keyup" events r=smaug
MozReview-Commit-ID: 3umPBwTowLc

--HG--
extra : rebase_source : c77a7f4b9334f261623d655edb3bf50377d1804d
2016-12-16 15:59:25 +09:00
Ting-Yu Lin 3a0b73989e Bug 1304598 Part 4 - Sort #include statements in TouchManager.cpp and PresShell.h. r=dholbert
Need to add #includes "nsPresContext.h" and "nsThreadUtils.h" in
PresShell.h, and "nsViewportInfo.h" in MobileViewportManager.h to compile.

MozReview-Commit-ID: F8bmOwllOiH

--HG--
extra : rebase_source : cacbb30d854c68ea720f849d03b649bbd3c5da03
2016-11-30 11:14:28 +08:00
Ting-Yu Lin 4174a3a87e Bug 1304598 Part 3 - Rename nsPresShell.h/cpp to PresShell.h/cpp, and move exported header to mozilla/ subdir. r=dholbert
The class PresShell doesn't have ns-prefix, so it's better to drop ns-prefix
in the file names to avoid confusion.

MozReview-Commit-ID: IljxsF5CVjh

--HG--
rename : layout/base/nsPresShell.cpp => layout/base/PresShell.cpp
rename : layout/base/nsPresShell.h => layout/base/PresShell.h
extra : rebase_source : e73a6873f360a7223d87bd22d9854fc9603c499f
2016-11-30 11:14:28 +08:00