Skip to content
Snippets Groups Projects
  1. Sep 18, 2017
  2. Sep 15, 2017
  3. Sep 14, 2017
    • Ted Mielczarek's avatar
      bug 1399877 - Globally define DLL_PREFIX/DLL_SUFFIX. r=gps · b8176d94
      Ted Mielczarek authored
      Several source files use DLL_PREFIX/DLL_SUFFIX defines, and they all
      set them in moz.build using `DEFINES`. This is problematic for the WSL build
      because the quoting gets lost somewhere between bash and cl.exe. This patch
      makes them set globally in moz.configure with `set_define`. There was an
      existing global `MOZ_DLL_SUFFIX` define that was only used in one place, so
      that has been removed in favor of simply `DLL_SUFFIX`.
      
      MozReview-Commit-ID: 4ZQiqMK8Dgu
      
      --HG--
      extra : rebase_source : f85cbb4b9e6dc69881f312182cd4e37985baf22e
      b8176d94
  4. Sep 15, 2017
    • Nathan Froyd's avatar
      Bug 1397823 - part 4 - reduce codesize for IPDL IPC::Message creation; r=kanru · 37cbcb45
      Nathan Froyd authored
      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.
      37cbcb45
    • Nathan Froyd's avatar
      Bug 1397823 - part 3 - do a better job setting IPC::Message flags; r=kanru · a697f87d
      Nathan Froyd authored
      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.
      a697f87d
    • Nathan Froyd's avatar
      Bug 1397823 - part 2 - tidy _generateMessageConstructor enums a little; r=kanru · c7261250
      Nathan Froyd authored
      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.
      c7261250
    • Nathan Froyd's avatar
      Bug 1397823 - part 1 - move work into _generateMessageConstructor; r=kanru · f4a054ab
      Nathan Froyd authored
      _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.
      f4a054ab
  5. Sep 12, 2017
  6. Sep 13, 2017
  7. Sep 09, 2017
  8. Sep 13, 2017
    • Kartikaya Gupta's avatar
      Bug 1390488 - Pass the childProcessTmpDir from the parent process to the GPU process. r=froydnj · b4ad327a
      Kartikaya Gupta authored
      The GPU process doesn't have the directory service enabled, so it can't find
      a tmp dir to put its .extra files for crash reports. Even if we do enable the
      directory service, we still don't get the correct "content process tmp dir" in
      the GPU process, because the UUID baked into that folder is passed via the
      preferences service, and that isn't initialized in the GPU process either.
      Rather than unneccessarily initialize all this stuff in the GPU process just
      to get one folder name, we can pass that folder name directly in the argv list.
      
      See comments 12-19 on the bug for further discussion of the various solutions
      attempted/explored.
      
      MozReview-Commit-ID: 1sFg27hIe7S
      
      --HG--
      extra : rebase_source : 78eb600a58fed45800b9df8303cc4d6898d96ae9
      b4ad327a
    • Kartikaya Gupta's avatar
      Bug 1390488 - Clean up ifdef indenting and balancing comments, no functional changes. r=froydnj · 2d2252c7
      Kartikaya Gupta authored
      This function is very large and has many nested ifdefs. Without this cleanup
      it was really hard to figure out where all I needed to add code.
      
      MozReview-Commit-ID: IeA0AWW62Mn
      
      --HG--
      extra : rebase_source : a8447df42c60da79f1c982111c8f65bd0175f1de
      2d2252c7
  9. Sep 05, 2017
    • J.C. Jones's avatar
      Bug 1245527 - Remove NSS U2F SoftToken. r=ttaubert, r=jed · 9ade50e6
      J.C. Jones authored
      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
      9ade50e6
  10. Sep 02, 2017
    • Jeff Hajewski's avatar
      Bug 1383816 - Adds IPC Read and Write methods for FocusTarget and NoFocusState... · 91957254
      Jeff Hajewski authored
      Bug 1383816 - Adds IPC Read and Write methods for FocusTarget and NoFocusState structs and creates EmptyStructSerializer helper class; r=botond
      
      Since NoFocusState is am empty struct used in the |mData| variant in
      FocusTarget, we need to add a Reader and a Writer for IPC for NoFocusState so we
      can properly read and write the |mData| variant. The NoFocusState Read and Write
      methods do not read or write anything, since NoFocusState does not contain any
      data. This is done by creating a helper class EmptyStructSerliazer and
      inheritting from EmptyStructSerializer for the NoFocusState specialization.
      
      The |Read| and |Write| methods for FocusTarget are updated by removing the read
      and write code for the individual types of |mData| and instead makes use of the
      IPC read and write methods for Variant.
      
      MozReview-Commit-ID: 3159sp6FLek
      
      --HG--
      extra : rebase_source : ff82797c26abffbd8bbcc465dc40c621be3257d0
      91957254
  11. Sep 03, 2017
    • Jeff Hajewski's avatar
      Bug 1383816 - Fixes several minor errors in Variant's IPC implementation. r=botond · 4a5af78b
      Jeff Hajewski authored
      * VariantWriter construction switched to use aggregate initialization
      * Call to AsVariant was inappropriately called via |paramType| when it should
        have been called via |mozilla|
      * |Next::Read| call in VariantReader specialization was missing the |result|
        argument
      
      MozReview-Commit-ID: Izany7iDX0k
      
      --HG--
      extra : rebase_source : 7387e72100c7d2ba8fcfd1e5a3b6d0ce6be6c740
      4a5af78b
  12. Sep 08, 2017
    • Bill McCloskey's avatar
      Bug 1397506 - IPDL unit test fix (r=kmag) · 95968309
      Bill McCloskey authored
      MozReview-Commit-ID: 96el4jm6WBS
      95968309
    • Bill McCloskey's avatar
      Bug 1396155 - Change MessageChannel ordering assertion (r=froydnj) · 505889db
      Bill McCloskey authored
      MozReview-Commit-ID: 9MS9svUAeYR
      505889db
    • Bill McCloskey's avatar
      Bug 1397468 - Shmem creation/destruction messages should not be SystemGroup (r=dvander) · ae0dd13f
      Bill McCloskey authored
      It's important that shmem creation/destruction messages be ordered
      correctly with respect to other messages that use shmems. For example,
      if we create a shmem with ID 10 and then send a message that
      references shmem 10, then the creation message must be handled before
      the referencing message. If shmem creation/destruction messages go in
      a separate queue from other messages, this ordering may not be
      preserved.
      
      Leaving shmem creation/destruction unlabeled will give us the correct
      ordering. Eventually, though, we'll need to provide a solution that
      doesn't bottleneck the event queue.
      
      MozReview-Commit-ID: 88MrslRrfnh
      ae0dd13f
    • Doug Thayer's avatar
      Bug 1397376 - Avoid copying on initializing histogram ranges r=gfritzsche · d01cafd3
      Doug Thayer authored
      Since LinearHistogram and its descendants inherit ranges_ from
      Histogram, and we wanted to replace the copying into a std::vec
      for Histogram, the simplest approach seemed to just be to
      precompute ranges for all histograms, exponential or otherwise.
      This should have the added benefit of reducing the memory
      footprint for those histograms, since they will benefit from the
      deduplication work that the precomputing script already does.
      
      MozReview-Commit-ID: JTV5Dej5ZIb
      
      --HG--
      extra : rebase_source : de942d54b3475be54c70d43d2fa8e772ee2e18c4
      d01cafd3
  13. Sep 11, 2017
  14. Sep 06, 2017
    • Kris Maglione's avatar
      Bug 1396856: Part 2 - Add top outer window ID to LoadInfo. r=ehsan · c7905960
      Kris Maglione authored
      The WebRequest API needs to know if a given window ID is at the top level, for
      various reasons. It currently figures this out by mapping a channel's load
      context to a <browser> element, which tracks its current top outer window ID.
      But this is inefficient, and not friendly to C++ callers.
      
      Adding the top window ID to the load info simplifies things considerably.
      
      MozReview-Commit-ID: Fy0gxTqQZMZ
      
      --HG--
      extra : rebase_source : bb5b1e1b3294004ca5e713fc88c4e20652296e53
      c7905960
  15. Aug 28, 2017
  16. Sep 01, 2017
  17. Aug 30, 2017
  18. Sep 01, 2017
  19. Aug 31, 2017
  20. Aug 23, 2017
  21. Aug 29, 2017
  22. Aug 28, 2017
  23. Aug 25, 2017
    • Cervantes Yu's avatar
      Bug 1390143 - Generate the parent minidump synchronously to keep parent... · 7d0d416f
      Cervantes Yu authored
      Bug 1390143 - Generate the parent minidump synchronously to keep parent process's stack when creating paired minidumps. r=gsvelto
      
      Bug 1360308 offloads IO operations from the main thread when we create paired minidumps.
      This breaks the symmetry of paired minidumps: the thread stacks of the parent minidump
      doesn't correspond to the thread stacks in the child minidumps and renders the parent
      stack useless. This patch moves generation of the parent minidump back to the main
      thread to keep the context of the parent process when creating paired minidumps. Child
      minidump is still created asynchronously.
      
      MozReview-Commit-ID: 9RmBAuXMPSX
      7d0d416f
  24. Aug 17, 2017
  25. Aug 21, 2017
  26. Aug 22, 2017
Loading