Now that fields are packed nicely, we can take advantage of the
contiguous layout of POD fields and read/write all the POD fields of a
given size in a single read/write call. For many structs, this should
have little or no effect, but for large structs such as LoadInfoArgs,
this reduces the number of function calls by ~50%.
Differential Revision: https://phabricator.services.mozilla.com/D22001
--HG--
extra : moz-landing-system : lando
We're about to start depending on how the fields are packed in a future
patch, so we should add some compile-time checking that our assertions
are correct.
Differential Revision: https://phabricator.services.mozilla.com/D22000
--HG--
extra : moz-landing-system : lando
We're going to read and write sentinels slightly differently for
bulk-writing adjacent fields, so let's factor out some reusable code for
doing so.
Differential Revision: https://phabricator.services.mozilla.com/D21999
--HG--
extra : moz-landing-system : lando
This patch changes the layout of IPDL-defined structs to order the POD
members by decreasing size, which ensures everything is packed well.
This optimization is only applied to the internal representation; the
external interface (e.g. constructors) is entirely unchaged.
Differential Revision: https://phabricator.services.mozilla.com/D21998
--HG--
extra : moz-landing-system : lando
This patch computes an ordering for the fields of an IPDL structure decl
such that they are packed well in memory. We'll take advantage of this
ordering in future patches.
Differential Revision: https://phabricator.services.mozilla.com/D21997
--HG--
extra : moz-landing-system : lando
We can totally get there with a negative percentage basis, see comment 0 for an
example.
We could keep the warning like:
NS_WARNING_ASSERTION(clamping_mode == StyleAllowedNumericType::All ||
basis >= 0, "nscoord overflow?");
Which will catch cases where the style system would refuse to parse a negative
<length-percentage>, but we got a negative percent basis, which would be weird.
But that's a bit misleading since right now at least we rely on the caller to do
the appropriate clamping. I also think that NS_WARNING_ASSERTION is not very
useful, since we're not very likely to catch stuff with it. But anyhow, your
call.
Differential Revision: https://phabricator.services.mozilla.com/D22328
--HG--
extra : moz-landing-system : lando
They're only used in CodeGenerator.cpp so we can now move some of the helper
classes and templates from the header file to the cpp file.
Differential Revision: https://phabricator.services.mozilla.com/D22278
--HG--
extra : moz-landing-system : lando
Add histograms to count fingerprinting and cryptomining blocking states per page load.
Differential Revision: https://phabricator.services.mozilla.com/D20389
--HG--
extra : moz-landing-system : lando
This is being changed in Firefox's build config rather than NSPR's
to avoid possibly introducing regressions into other NSPR users due
to bugs in MacOS's poll, such as the POLLPRI issue addressed in the
previous patch. (There is also a known bug when calling poll() with
zero descriptors, but PR_Poll already has code to call PR_Sleep instead
in that case.)
Depends on D21321
Differential Revision: https://phabricator.services.mozilla.com/D21322
--HG--
extra : moz-landing-system : lando
Necko uses a pipe-to-self pattern in its event loop, except that on
Windows the pipe is a socket, and we're checking for PR_POLL_EXCEPT for
Windows-specific reasons and treating it as an error. On Unix this
isn't necessary, and it causes interoperability problems with MacOS,
which asserts POLLPRI (which is what PR_POLL_EXCEPT maps to) as well
as POLLIN on pipes whenever normal data can be read. (This may be a
standards violation by MacOS, but it's simple enough to work around.)
Differential Revision: https://phabricator.services.mozilla.com/D21321
--HG--
extra : moz-landing-system : lando
Replaces all usages of nsXBLBinding::mUsingContentXBLScope with the assumption that it's always false and removes the property.
I've also removed the related method and property on nsXBLEventHandler, since that appeared to be dead code, too.
Differential Revision: https://phabricator.services.mozilla.com/D22276
--HG--
extra : moz-landing-system : lando
Nearly all dependencies except moznetwork and moztest already
support Python3. Lets make those releases the minimum allowed
version.
Differential Revision: https://phabricator.services.mozilla.com/D22105
--HG--
extra : moz-landing-system : lando