Skip to content
Snippets Groups Projects
  1. Nov 14, 2018
    • Mike Hommey's avatar
      Bug 1496503 - Move MOZ_CrashOOL to Assertions.h. r=froydnj · 9ccfce71
      Mike Hommey authored
      Ideally, we'd want the function to stay in Assertions.cpp, but that's
      only part of MFBT proper, and that doesn't have access to WalkTheStack
      like MOZ_CRASH has from being in Assertion.h, when included from Gecko
      code. Moving WalkTheStack to mozglue, putting it close together with
      MozStackWalk would be prefered, but that causes problems linking MFBT
      tests (which don't have access to mozglue), and other things.
      
      Overall, this was too deep a rabbit hole, and moving MOZ_CrashOOL to
      Assertions.h is much simpler. Since it's essentially the same as
      MOZ_CRASH, except it allows non-literal strings, we can make it inlined,
      and leave it to the compiler to drop the filename argument when it's not
      used.
      
      Differential Revision: https://phabricator.services.mozilla.com/D11718
      
      --HG--
      extra : moz-landing-system : lando
      9ccfce71
  2. Nov 13, 2018
  3. Nov 14, 2018
  4. Nov 08, 2018
  5. Nov 14, 2018
  6. Nov 13, 2018
    • Mike Hommey's avatar
      Bug 1496503 - Install the rust panic hook early. r=froydnj · dfc58833
      Mike Hommey authored
      Previously, our panic hook was only really useful when the crash
      reporter is used, because all it did apart from calling rust's default
      panic handler was to keep a pointer to the panic message for the crash
      reporter.
      
      Now that it just redirects to the Gecko crash code, it doesn't need to
      be tied to the crash reporter. In fact, to ensure it's consistently used
      in all cases, we ought to install it early on. Use a static initializer
      for that.
      
      Depends on D11720
      
      Differential Revision: https://phabricator.services.mozilla.com/D11721
      
      --HG--
      extra : moz-landing-system : lando
      dfc58833
    • Mike Hommey's avatar
      Bug 1496503 - Change the rust panic hook to delegate to Gecko's crash code. r=froydnj · 38dc94b5
      Mike Hommey authored
      The current rust panic hook keeps a string for the crash reporter, and
      goes on calling the default rust panic hook, which prints out a crash
      stack...  when RUST_BOOTSTRAP is set *and* when that works. Notably, on
      both mac and Windows, it only really works for local builds, but fails
      for debug builds from automation, although on automation itself, we also
      do stackwalk from crash minidumps, which alleviates the problem.
      Artifact debug builds are affected, though.
      
      More importantly, C++ calls to e.g. MOZ_CRASH have a similar but
      different behavior, in that they dump a stack trace on debug builds, by
      default (with exceptions, see below for one). The format of those stack
      traces is understood by the various fix*stack*py scripts under
      tools/rb/, that are used by the various test harnesses both on
      automation and locally.
      
      Additionally, the current rust panic hook, as it calls the default rust
      panic hook, ends up calling abort() on non-Windows platforms, which ends
      up being verbosely redirected to mozalloc_abort per
      https://dxr.mozilla.org/mozilla-central/rev/237e4c0633fda8e227b2ab3ab57e417c980a2811/memory/mozalloc/mozalloc_abort.cpp#79
      which then calls MOZ_CRASH. Theoretically, /that/ would also print a
      stack trace, but doesn't because currently the stack trace printing code
      lives in libxul, and MOZ_CRASH only calls it when compiled from
      libxul-code, which mozalloc_abort is not part of.
      
      With this change, we make the rust panic handler call back into
      MOZ_CRASH directly. This has multiple advantages:
      - This is more consistent cross-platforms (Windows is not special
      anymore).
      - This is more consistent between C++ and rust (stack traces all look
      the same, and can all be post-processed by fix*stack*py if need be)
      - This is more consistent in behavior, where debug builds will show
      those stack traces without caring about environment variables.
      - It demangles C++ symbols in rust-initiated stack traces (for some
      reason that didn't happen with the rust panic handler)
      
      A few downsides:
      - the loss of demangling for some rust symbols.
      - the loss of addresses in the stacks, although they're not entirely
      useful
      - extra empty lines.
      
      The first should be fixable later one. The latter two are arguably
      something that should be consistent across C++ and rust, and should be
      changed if necessary, independently of this patch.
      
      Depends on D11719
      
      Differential Revision: https://phabricator.services.mozilla.com/D11720
      
      --HG--
      extra : moz-landing-system : lando
      38dc94b5
    • Mike Hommey's avatar
      Bug 1496503 - Use MOZ_CrashOOL in MOZ_CrashPrintf. r=froydnj · 661cef9f
      Mike Hommey authored
      Because we don't really need all this repetition.
      
      Depends on D11718
      
      Differential Revision: https://phabricator.services.mozilla.com/D11719
      
      --HG--
      extra : moz-landing-system : lando
      661cef9f
    • Mike Hommey's avatar
      Bug 1496503 - Move MOZ_CrashOOL to Assertions.h. r=froydnj · 5934f74c
      Mike Hommey authored
      Ideally, we'd want the function to stay in Assertions.cpp, but that's
      only part of MFBT proper, and that doesn't have access to WalkTheStack
      like MOZ_CRASH has from being in Assertion.h, when included from Gecko
      code. Moving WalkTheStack to mozglue, putting it close together with
      MozStackWalk would be prefered, but that causes problems linking MFBT
      tests (which don't have access to mozglue), and other things.
      
      Overall, this was too deep a rabbit hole, and moving MOZ_CrashOOL to
      Assertions.h is much simpler. Since it's essentially the same as
      MOZ_CRASH, except it allows non-literal strings, we can make it inlined,
      and leave it to the compiler to drop the filename argument when it's not
      used.
      
      Differential Revision: https://phabricator.services.mozilla.com/D11718
      
      --HG--
      extra : moz-landing-system : lando
      5934f74c
    • Cameron McCormack's avatar
      Bug 1506760 - Store variable references with a boxed slice rather than a... · d3bc43cc
      Cameron McCormack authored
      Bug 1506760 - Store variable references with a boxed slice rather than a PrecomputedHashSet r=emilio
      
      Once we've parsed the variable references, there is no need to keep an entire HashSet
      object around, as all we do is iterate over the values.
      
      Differential Revision: https://phabricator.services.mozilla.com/D11735
      
      --HG--
      extra : moz-landing-system : lando
      d3bc43cc
  7. Nov 14, 2018
  8. Nov 13, 2018
  9. Nov 14, 2018
    • Dana Keeler's avatar
      bug 1502841 - fix a deadlock by not holding the DataStorageSharedThread lock... · d7917233
      Dana Keeler authored
      bug 1502841 - fix a deadlock by not holding the DataStorageSharedThread lock while shutting the thread down r=jcj
      
      Judging by some stack traces we've received in crash reports, while shutting
      down the DataStorageSharedThread, it is possible to process an event on that
      thread that causes an attempt to re-initialize DataStorage. This wouldn't be a
      problem because we have a shutdown sentinel boolean and we exit early if it is
      true. However, checking the boolean involves acquiring the static lock for the
      thread, which means we can't be holding the lock while we're shutting down the
      thread.
      
      Differential Revision: https://phabricator.services.mozilla.com/D11708
      
      --HG--
      extra : moz-landing-system : lando
      d7917233
  10. Nov 13, 2018
  11. Nov 09, 2018
  12. Nov 10, 2018
  13. Nov 13, 2018
    • Nils Ohlmeier [:drno]'s avatar
      Bug 1456417: made MLineIndex nullable. r=bwc,smaug · d0376dda
      Nils Ohlmeier [:drno] authored
      Differential Revision: https://phabricator.services.mozilla.com/D10807
      
      --HG--
      extra : moz-landing-system : lando
      d0376dda
    • Matt Woodrow's avatar
      Bug 1506748 - Record profiler markers for scene building and blob rasterization. r=mstange · 2344e26c
      Matt Woodrow authored
      MozReview-Commit-ID: IA2ooFX5jtA
      
      Differential Revision: https://phabricator.services.mozilla.com/D11723
      
      --HG--
      extra : moz-landing-system : lando
      2344e26c
    • Mark Hammond's avatar
      Bug 1506271 - BrowserGlue._setSyncAutoconnectDelay() now checks win.gBrowser... · d984ada1
      Mark Hammond authored
      Bug 1506271 - BrowserGlue._setSyncAutoconnectDelay() now checks win.gBrowser before using it. r=MattN
      
      Differential Revision: https://phabricator.services.mozilla.com/D11817
      
      --HG--
      extra : moz-landing-system : lando
      d984ada1
    • timdream's avatar
      Bug 1504418 - Access to nsIDateTimeInputArea interface implemented by XBL from... · 80827187
      timdream authored
      Bug 1504418 - Access to nsIDateTimeInputArea interface implemented by XBL from chrome via wrappedJSObject r=mconley
      
      Part I of bug 1496242 was not implemented correctly as it accesses the
      nsIDateTimeInputArea methods directly on the <datetimebox> element object.
      This won't work because the XBL binding is run in a non-chrome scope.
      The methods it implemented are exposed thus had to be accessed via
      wrappedJSObject.
      
      Object pass to setValueFromPicker() therefore has to clone into the content scope.
      
      We can be sure that the methods called are implemented by the XBL binding,
      because the web content should not have access to <datetimebox>, which is a NAC.
      
      A small clean-up is included in the patch also, removing the useless 3rd argument
      to the CustomEvent constructor.
      
      Tests related to the datetime input is duplicated and run with UA Widget disabled
      to ensure the XBL binding continue to work.
      
      Differential Revision: https://phabricator.services.mozilla.com/D10947
      
      --HG--
      rename : dom/html/test/forms/chrome.ini => dom/html/test/forms/xbl/chrome.ini
      rename : dom/html/test/forms/mochitest.ini => dom/html/test/forms/xbl/mochitest.ini
      rename : dom/html/test/forms/test_autocompleteinfo.html => dom/html/test/forms/xbl/test_autocompleteinfo.html
      rename : dom/html/test/forms/test_input_attributes_reflection.html => dom/html/test/forms/xbl/test_input_attributes_reflection.html
      rename : dom/html/test/forms/test_input_date_bad_input.html => dom/html/test/forms/xbl/test_input_date_bad_input.html
      rename : dom/html/test/forms/test_input_date_key_events.html => dom/html/test/forms/xbl/test_input_date_key_events.html
      rename : dom/html/test/forms/test_input_datetime_focus_blur.html => dom/html/test/forms/xbl/test_input_datetime_focus_blur.html
      rename : dom/html/test/forms/test_input_datetime_focus_blur_events.html => dom/html/test/forms/xbl/test_input_datetime_focus_blur_events.html
      rename : dom/html/test/forms/test_input_datetime_focus_state.html => dom/html/test/forms/xbl/test_input_datetime_focus_state.html
      rename : dom/html/test/forms/test_input_datetime_input_change_events.html => dom/html/test/forms/xbl/test_input_datetime_input_change_events.html
      rename : dom/html/test/forms/test_input_datetime_tabindex.html => dom/html/test/forms/xbl/test_input_datetime_tabindex.html
      rename : dom/html/test/forms/test_input_defaultValue.html => dom/html/test/forms/xbl/test_input_defaultValue.html
      rename : dom/html/test/forms/test_input_sanitization.html => dom/html/test/forms/xbl/test_input_sanitization.html
      rename : dom/html/test/forms/test_input_textarea_set_value_no_scroll.html => dom/html/test/forms/xbl/test_input_textarea_set_value_no_scroll.html
      rename : dom/html/test/forms/test_input_time_key_events.html => dom/html/test/forms/xbl/test_input_time_key_events.html
      rename : dom/html/test/forms/test_input_time_sec_millisec_field.html => dom/html/test/forms/xbl/test_input_time_sec_millisec_field.html
      rename : dom/html/test/forms/test_input_types_pref.html => dom/html/test/forms/xbl/test_input_types_pref.html
      rename : dom/html/test/forms/test_input_typing_sanitization.html => dom/html/test/forms/xbl/test_input_typing_sanitization.html
      rename : dom/html/test/forms/test_label_input_controls.html => dom/html/test/forms/xbl/test_label_input_controls.html
      rename : dom/html/test/forms/test_max_attribute.html => dom/html/test/forms/xbl/test_max_attribute.html
      rename : dom/html/test/forms/test_min_attribute.html => dom/html/test/forms/xbl/test_min_attribute.html
      rename : dom/html/test/forms/test_mozistextfield.html => dom/html/test/forms/xbl/test_mozistextfield.html
      rename : dom/html/test/forms/test_novalidate_attribute.html => dom/html/test/forms/xbl/test_novalidate_attribute.html
      rename : dom/html/test/forms/test_pattern_attribute.html => dom/html/test/forms/xbl/test_pattern_attribute.html
      rename : dom/html/test/forms/test_required_attribute.html => dom/html/test/forms/xbl/test_required_attribute.html
      rename : dom/html/test/forms/test_step_attribute.html => dom/html/test/forms/xbl/test_step_attribute.html
      rename : dom/html/test/forms/test_stepup_stepdown.html => dom/html/test/forms/xbl/test_stepup_stepdown.html
      rename : dom/html/test/forms/test_textarea_attributes_reflection.html => dom/html/test/forms/xbl/test_textarea_attributes_reflection.html
      rename : dom/html/test/forms/test_validation.html => dom/html/test/forms/xbl/test_validation.html
      rename : dom/html/test/forms/test_validation_not_in_doc.html => dom/html/test/forms/xbl/test_validation_not_in_doc.html
      rename : dom/html/test/forms/test_valueAsDate_pref.html => dom/html/test/forms/xbl/test_valueAsDate_pref.html
      rename : dom/html/test/forms/test_valueasdate_attribute.html => dom/html/test/forms/xbl/test_valueasdate_attribute.html
      rename : dom/html/test/forms/test_valueasnumber_attribute.html => dom/html/test/forms/xbl/test_valueasnumber_attribute.html
      rename : toolkit/content/tests/browser/browser_datetime_datepicker.js => toolkit/content/tests/browser/xbl/browser_datetime_datepicker.js
      extra : moz-landing-system : lando
      80827187
    • Bogdan Tara's avatar
    • Dana Keeler's avatar
      bug 1499882 - remove HSTS holepunch for chart.apis.google.com because it now... · 862b60c8
      Dana Keeler authored
      bug 1499882 - remove HSTS holepunch for chart.apis.google.com because it now has a valid certificate r=franziskus
      
      Differential Revision: https://phabricator.services.mozilla.com/D11695
      
      --HG--
      extra : moz-landing-system : lando
      862b60c8
    • Gurzau Raul's avatar
      dcee77ca
    • Matt Woodrow's avatar
      Bug 1506748 - Record profiler markers for scene building and blob rasterization. r=mstange · a80a7d22
      Matt Woodrow authored
      MozReview-Commit-ID: IA2ooFX5jtA
      
      Differential Revision: https://phabricator.services.mozilla.com/D11723
      
      --HG--
      extra : moz-landing-system : lando
      a80a7d22
Loading