Commit Graph

974 Commits

Author SHA1 Message Date
sotaro
8d85c3d52b Bug 1405952 - Remove PWebRenderBridge::SetDisplayListSync r=kats,kanru 2017-10-20 19:48:57 +09:00
Nicholas Nethercote
8a68e6fb83 Bug 1403868 (part 4) - Reduce tools/profiler/public/*.h to almost nothing in non-MOZ_GECKO_PROFILER builds. r=mstange.
Currently the Gecko Profiler defines a moderate amount of stuff when
MOZ_GECKO_PROFILER is undefined. It also #includes various headers, including
JS ones. This is making it difficult to separate Gecko's media stack for
inclusion in Servo.

This patch greatly simplifies how things are exposed. The starting point is:

- GeckoProfiler.h can be #included unconditionally;

- everything else from the profiler must be guarded by MOZ_GECKO_PROFILER.

In practice this introduces way too many #ifdefs, so the patch loosens it by
adding no-op macros for a number of the most common operations.

The net result is that #ifdefs and macros are used a bit more, but almost
nothing is exposed in non-MOZ_GECKO_PROFILER builds (including
ProfilerMarkerPayload.h and GeckoProfiler.h), and understanding what is exposed
is much simpler than before.

Note also that in BHR, ThreadStackHelper is now entirely absent in
non-MOZ_GECKO_PROFILER builds.
2017-10-04 09:11:18 +11:00
Gian-Carlo Pascutto
bc7dfc9353 Bug 1382323 - Remote OSProtocolHandlerExists. r=jld,smaug
MozReview-Commit-ID: Gml7cjbgUvK

--HG--
extra : rebase_source : 6ee7dfc8b5c05aec1ed268011fbec2ef64760554
2017-09-04 21:48:59 +02:00
Benjamin Smedberg
ce00e2cd37 Bug 1352567 - Remove plugin IPC code to support stream types other than NP_NORMAL (seekable and/or file streams), r=jimm
MozReview-Commit-ID: FWl2gcpKy6D
2017-10-02 14:54:22 -07:00
Kan-Ru Chen
9016ef6cef Bug 1397456 - Always use static name for ipc messages r=billm
Never store names in Message. One can get string names from
Message::name() or use IPC::StringFromIPCMessageType() when only
message id is available.

MozReview-Commit-ID: 15ksx6SE90c

--HG--
extra : rebase_source : 1a041dc365b7f42edd540d8c7a4dfd8912e48921
2017-09-14 16:08:57 +08:00
Nathan Froyd
37cbcb454b Bug 1397823 - part 4 - reduce codesize for IPDL IPC::Message creation; r=kanru
Each protocol in IPDL has a bunch of autogenerated functions that
instantiate IPC::Message with various parameters.  Each of these
functions, then:

1) Pays the cost of calling malloc()
2) Setting up various parameters
3) Calling IPC::Message()

There's no reason that we should be duplicating 1) across all of these
autogenerated functions.  In step 2), several of the parameters we're
setting up are common across all or nearly all calls: the message
segment size is almost always zero, and we're always indicating that
IPDL-generated messages should be recorded in telemetry.

Instead of duplicating that code several thousand times, we can add a
small helper function that takes the only interesting parameters for an
IPDL message.  This helper function can then deal with calling malloc in
a single place and setting up the common parameters.  For messages that
require a custom segment size, we'll have to use the old scheme, but
such messages are uncommon.

The previous changes are not required for this scheme to work, but they
do help significantly, as the helper function (Message::IPDLMessage) can
now take four parameters, which ensures that its arguments are passed
solely in registers on Win64 and ARM.  The wins from this change are
also larger than they would be without the previous parts: ~100K on
x86-64 Linux (!)  and ~80K on ARM Android.
2017-09-15 08:06:11 -04:00
Nathan Froyd
a697f87d36 Bug 1397823 - part 3 - do a better job setting IPC::Message flags; r=kanru
The current IPC::Message constructor takes a large number of arguments,
three of which--the nesting level, the priority, and the
compression--are almost always constant by virtue of the vast majority
of Message construction being done by auto-generated IPDL code.  But
then we take these constant values into the Message constructor, we
check them for various values, and then based on those values, we
perform a bunch of bitfield operations to store flags based on those
values.  This is wasted work.

Furthermore, for replies to IPDL messages, we'll construct a Message
object, and then call mutating setters on the Message object that will
perform even more bitfield manipulations.  Again, these operations are
performing tasks at runtime that are the same every single time, and use
information we already have at compile time.

The impact of these extra operations is not large, maybe 15-30K of extra
code, depending on platform.  Nonetheless, we can easily make them go
away, and make everything cleaner to boot.

This patch adds a HeaderFlags class that encapsulates all the knowledge
about the various kinds of flags Message needs to know about.  We can
construct HeaderFlags objects with strongly-typed enum arguments for the
various kinds of flags, and the compiler can take care of folding all of
those flags together into a constant when possible (and it is possible
for all the IPDL-generated code that instantiates Messages).  The upshot
is that we do no unnecessary work in the Message constructor itself.  We
can also remove various mutating operations on Message, as those
operations were only there to support post-constructor flag twiddling,
which is no longer necessary.
2017-09-15 08:06:11 -04:00
Nathan Froyd
c726125099 Bug 1397823 - part 2 - tidy _generateMessageConstructor enums a little; r=kanru
There's no need to be repeating 'IPC::Message::' prefixes or spreading
around more ExprVar calls than we need here.  Let's try to improve the
signal-to-noise ratio of this code by introducing a helper function to
inject some of the boilerplate for us.
2017-09-15 08:06:11 -04:00
Nathan Froyd
f4a054ab8d Bug 1397823 - part 1 - move work into _generateMessageConstructor; r=kanru
_generateMessageConstructor takes a lot of `md.FOO`-style parameters,
which could be derived inside the function by simply passing `md`.
Especially with the upcoming changes to calculate things like reply-ness
of messages, sync-ness, etc, we'd be wanting to pass even more
parameters like `md.FOO`.  So let's just pass `md` in, and then we can
make all the necessary future changes in a single place.
2017-09-15 08:06:11 -04:00
J.C. Jones
554acaea86 Bug 1245527 - Remove NSS U2F SoftToken. r=ttaubert, r=jed
The nsIU2FToken and its implementors are no longer needed; the soft token was
re-implemented into dom/webauthn/U2FSoftTokenManager.cpp during the WebAuthn
implementation. When the dom/u2f/ code changed to the implementation from
WebAuthn, the old synchronous version became dead code.

This patch removes the dead code.

MozReview-Commit-ID: 2yDD0tccgZr

--HG--
extra : rebase_source : 0f14d8de8f62599a41c13aa4d8fc9cdbc1fd79c7
2017-09-05 12:32:42 -07:00
Phil Ringnalda
2dba33e427 Backed out 3 changesets (bug 1245527) for ASan browser-chrome leaks and Android mochitest bustage
Backed out changeset 8ee1f7aebd62 (bug 1245527)
Backed out changeset e6a5de8d1246 (bug 1245527)
Backed out changeset be63e73426b4 (bug 1245527)

MozReview-Commit-ID: AU22LgPh9iB
2017-09-09 00:09:21 -07:00
J.C. Jones
9ade50e63c Bug 1245527 - Remove NSS U2F SoftToken. r=ttaubert, r=jed
The nsIU2FToken and its implementors are no longer needed; the soft token was
re-implemented into dom/webauthn/U2FSoftTokenManager.cpp during the WebAuthn
implementation. When the dom/u2f/ code changed to the implementation from
WebAuthn, the old synchronous version became dead code.

This patch removes the dead code.

MozReview-Commit-ID: 2yDD0tccgZr

--HG--
extra : transplant_source : %B3%96Te%E7%02%08%98%1A%B2%FA%1C%40%C4J%BC%B2%85j%81
2017-09-05 12:32:42 -07:00
Bill McCloskey
95968309c5 Bug 1397506 - IPDL unit test fix (r=kmag)
MozReview-Commit-ID: 96el4jm6WBS
2017-09-07 22:31:34 -07:00
Nicolas Silva
09e43ac029 Bug 1393031 - Expose webrender transactions at the ipc boundary. r=jrmuizel, r=kanru 2017-09-04 13:59:26 +02:00
Kris Maglione
616f60eb84 Bug 1255894: Part 9 - Allow returning non-copyable types in async IPDL methods. r=kanru
Certain types (such as Shmem and Endpoint types) cannot be copied, and need to
be moved when passed around. When used with MozPromises, that means that the
promise needs to be non-shareable, and the resolve functions need to use the
correct ref qualifiers.

MozReview-Commit-ID: Kt4WZNsDErK

--HG--
extra : rebase_source : 5a96f9844df1646482aa223edf5081de9d5fc976
2017-08-27 18:57:30 -07:00
Henry Chang
25f77bb74d Bug 1349255 - Part 1: Make PBrowser.NotifyIMEFocus async to avoid UI jank. r=kanru,masayuki
Telemetry and some performance profiles show that Msg_NotifyIMEFocus can take
a few seconds to complete, and jank the browser. With bug 1217700, it removes
the necessity of sync Msg_NotifyIMEFocus, so in this patch we make this async
for performance improvement.

MozReview-Commit-ID: 15eUwMJ2Q7H

--HG--
extra : rebase_source : b463e6e881ca5ebec00d0f76e29ca103059b3ddd
2017-05-08 19:07:56 +08:00
Stone Shih
de7f705042 Bug 1351148 Part2: Add a priority queue for input events. r=smaug.
MozReview-Commit-ID: 5ud1Ex9UNVo
2017-03-21 15:44:12 +08:00
Stone Shih
7de447a25a Backed out changeset 46d8f42863af (bug 1351148) 2017-08-11 15:19:44 +08:00
Stone Shih
9d1d77d849 Bug 1351148 Part2: Add a priority queue for input events. r=smaug.
MozReview-Commit-ID: 5ud1Ex9UNVo
2017-03-21 15:44:12 +08:00
Jan Varga
ceff0f7d8f Bug 1350637 - Part 1: Move PStorage stubs from PContent to PBackground; r=asuth r=billm
--HG--
rename : dom/storage/PStorage.ipdl => dom/storage/PBackgroundStorage.ipdl
2017-08-08 22:56:49 +02:00
Nicholas Nethercote
96045fda51 Bug 1382955 (part 3) - Remove a bunch of unused HAL stuff. r=gsvelto,kanru. 2017-08-02 10:09:32 +10:00
Carsten "Tomcat" Book
28bdd40776 Merge mozilla-central to mozilla-inbound 2017-07-28 09:48:24 +02:00
Carsten "Tomcat" Book
de369deb98 Backed out changeset 284af26c1b53 (bug 1351148) 2017-07-28 09:20:27 +02:00
Nathan Froyd
f8bedda41c Bug 1384713 - remove unused *MsgStartChild constants; r=billm
We only ever use these for passing them into Endpoint construction.
Let's remove them.  Removing them also shows that the corresponding
field in Endpoint is essentially read-only, so we can completely avoid
passing in protocol IDs to Endpoint.
2017-07-27 13:32:15 -04:00
Kyle Machulis
2c4c8a9654 Bug 1382788 - Remove GetBlocklistState IPC message; r=bsmedberg
We removed all uses of GetBlocklistState in bug 1350640. This patch
removes the message and supporting functions from the PContent IPDL.

MozReview-Commit-ID: 4JtGAWZ0nPu

--HG--
extra : rebase_source : 4eb3c21e3768e9d8284d4eec129e099be5ef17d0
2017-07-20 12:57:01 -07:00
Andrew McCreight
5729273ca7 Bug 1383881 - Fix sync message whitelist for PTestPriority. r=billm
This protocol was changed in bug 1351148, but the whitelist was not
updated.

MozReview-Commit-ID: Btl5633et9T

--HG--
extra : rebase_source : 0ce70a649c83213a8a47e1b08c06d7d5743a9842
2017-07-24 13:19:03 -07:00
Henry Chang
53ee190096 Bug 1380974 - Use custom size for small frequent messages. r=billm
Since the default size is 64, we only care about message size which is > 64 bytes.

MozReview-Commit-ID: 2vUpcaUjlNP

--HG--
extra : rebase_source : 946ae82f8fc2febd05d8fc4323145643ec97b306
2017-07-20 11:37:09 +08:00
Ryan VanderMeulen
f4e3a91992 Merge m-c to inbound. a=merge 2017-07-21 09:40:28 -04:00
Samael Wang
e90e4d4b15 Bug 1350643 - Part 7: Remove sync GetDPI/DefaultScale/WidgetRounding. Use primary screen's value until RecvShow. r=kanru
MozReview-Commit-ID: GlDMNecWp3j

--HG--
extra : rebase_source : 1f8573df8845c100172f41febc5a84bbcd069769
2017-05-19 18:20:18 +08:00
Kevin Chen
91dc0db35c Bug 1364563 - Add a path for content process only device reset. r=dvander 2017-07-18 23:09:00 -04:00
dan1bh
de45c53ef7 Bug 1352559 - Remove support for plugin-provided streams; NPN_NewStream, PPluginStream and other supporting machinery, r=bsmedberg
Removed API List:
* NPN_NewStream
* NPN_Write
* NPN_DestroyStream
* nsNPAPIStreamWrapper
* nsPluginStreamToFile
* PPluginStream.ipdl

MozReview-Commit-ID: 61dKGct3qGW

--HG--
extra : source : 999aa7b6683d7f0cf481f8dd0e8a9ba3dade4a05
extra : intermediate-source : cb1548354e0cf582dca6b0ab0d27712d01a4c819
2017-07-11 14:27:25 -04:00
Nicholas Nethercote
7f215371c0 Backed out changeset cb1548354e0c (bug 1352559, part 3) for causing *many* crashes in Nightly. r=backout 2017-07-17 09:41:29 +10:00
Stone Shih
9573b6e439 Bug 1351148 Part2: Add a priority queue for input events. r=smaug.
MozReview-Commit-ID: 5ud1Ex9UNVo
2017-03-21 15:44:12 +08:00
Wes Kocher
33c2277e1f Merge m-c to inbound, a=merge
MozReview-Commit-ID: 7rfXDtMWy2C
2017-07-12 18:26:46 -07:00
dan1bh
b62787e960 Bug 1352559 - Remove support for plugin-provided streams; NPN_NewStream, PPluginStream and other supporting machinery, r=bsmedberg
Removed API List:
* NPN_NewStream
* NPN_Write
* NPN_DestroyStream
* nsNPAPIStreamWrapper
* nsPluginStreamToFile
* PPluginStream.ipdl

MozReview-Commit-ID: 61dKGct3qGW

--HG--
extra : rebase_source : 1567d89d0735ca23c964a0c6691f9a117305641f
extra : source : 999aa7b6683d7f0cf481f8dd0e8a9ba3dade4a05
2017-07-11 14:27:25 -04:00
Sebastian Hengst
849284daf4 Backed out changeset 999aa7b6683d (bug 1352559) 2017-07-12 19:10:50 +02:00
dan1bh
88039d6fa3 Bug 1352559 - Remove support for plugin-provided streams; NPN_NewStream, PPluginStream and other supporting machinery, r=bsmedberg
Removed API List:
* NPN_NewStream
* NPN_Write
* NPN_DestroyStream
* nsNPAPIStreamWrapper
* nsPluginStreamToFile
* PPluginStream.ipdl

MozReview-Commit-ID: 61dKGct3qGW

--HG--
extra : rebase_source : 0e9be256f97be62efe376a3f70d579859592901f
2017-07-11 14:27:25 -04:00
Henry Chang
6d648badcb Bug 1348591 - Support custom default segment buffer list size. r=billm
MozReview-Commit-ID: 2Nkj6RPx62f

--HG--
extra : rebase_source : 4e763563e3f9e9927314e804ba4e0fbd291fc9e8
2017-06-21 17:55:13 +08:00
Sylvestre Ledru
4e9cf83ee8 Bug 1378712 - Remove all trailing whitespaces r=Ehsan
MozReview-Commit-ID: Kdz2xtTF9EG

--HG--
extra : rebase_source : 7235b3802f25bab29a8c6ba40a181a722f3df0ce
2017-07-06 14:00:35 +02:00
sotaro
1deee6448b Bug 1377024 - Add support of device reset test from about:support r=kats,dvander 2017-06-29 11:46:36 -07:00
Carsten "Tomcat" Book
5f00ae3a8b merge mozilla-inbound to mozilla-central a=merge 2017-06-29 15:47:04 +02:00
Carsten "Tomcat" Book
257a632d4b Merge mozilla-central to autoland on a CLOSED TREE 2017-06-28 16:33:00 +02:00
Carsten "Tomcat" Book
ba466337dd Backed out changeset 4364536ae549 (bug 1343728) 2017-06-28 15:52:04 +02:00
Carsten "Tomcat" Book
6365f16e57 Backed out changeset a1e773337202 (bug 1350633) 2017-06-28 15:52:01 +02:00
Carsten "Tomcat" Book
45f2e51f0a Merge mozilla-central to autoland 2017-06-28 13:47:29 +02:00
Michael Layzell
3c82b8c224 Bug 1350633 - Remove the Msg_GetWidgetNativeData sync IPC, r=billm, r=jimm
MozReview-Commit-ID: Bql29wgVDZ5
2017-06-27 16:24:48 -04:00
Michael Layzell
31e36ee704 Bug 1343728 - Part 4: Remove the window creation sync IPC calls, r=billm, r=smaug
MozReview-Commit-ID: IWayDUWuRrf
2017-06-27 16:24:48 -04:00
Kartikaya Gupta
83a30f9ca7 Bug 1375497 - Add the new IPDL messages to sync-messages.ini. r=dvander
MozReview-Commit-ID: 72xnGBwbFb8

--HG--
extra : rebase_source : a4dbba8e5f4e3c3c44ead892d71fc4019d4fe734
2017-06-27 20:29:06 -04:00
Ryan Hunt
db5f497c0f Bug 1351783 part 16 - Perform async scrolling for keyboard events when possible. r=kats,botond,dvander
This commit ties it all together by dispatching keyboard actions to scroll targets
in response to keyboard inputs when we have current and valid focus state.

MozReview-Commit-ID: G7rZiS3FH5e

--HG--
extra : rebase_source : 10129d417fe8ef576cac5bda3157dd8f65b5843a
extra : histedit_source : be651a33f787f68bc764988ddc073d346e854491
2017-06-05 19:46:06 -05:00
Ryan Hunt
c1312e5abc Bug 1351783 part 12 - Create and sync focus sequence numbers. r=kats,botond,dvander
Focus can change at any moment in a document. This causes non-determinism and
correctness problems for doing keyboard apz scrolling. To get around this, we
will maintain deterministic behavior for focus changes initiated by input events
and see if we can get away with more non-determinism for things like `setTimeout`

In order to do this, we disable async keyboard scrolling when an input event is
processed that could have a event listener. We then attach a sequence number to
that input event and dispatch it to content. In content, we record the highest
sequence number that we have processed from an event, and send that on each focus
update. Using this, we can determine in APZ if we have a current focus target or
if we are still waiting for an input event to be processed and focus to be
reconfirmed.

MozReview-Commit-ID: CWcu8YEFQz4

--HG--
extra : rebase_source : 8c54a619bd4f5ee892f0cc8768a10f3e1e4e0b59
extra : histedit_source : 601ca293a028787883841adc6b40e62c0cc829e5
2017-06-05 19:45:31 -05:00