Commit graph

1244 commits

Author SHA1 Message Date
Ciure Andrei
00dd87f6f4 Backed out changeset d407a28318e6 (bug 1609815) for causing windows ming bustages CLOSED TREE
--HG--
extra : histedit_source : b2c748e31e0f6ba8fcf9960a336e0bbd361b07e6
2020-02-27 07:05:19 +02:00
Andrew McCreight
b197e1f783 Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown
Patch by bhackett and jlaster. Also reviewed by mccr8.

Differential Revision: https://phabricator.services.mozilla.com/D60197

--HG--
extra : moz-landing-system : lando
2020-02-27 04:43:48 +00:00
Simon Giesecke
d94419173b Bug 1613985 - Use default for equivalent-to-default constructors/destructors in dom/base. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D63102

--HG--
extra : moz-landing-system : lando
2020-02-21 10:41:47 +00:00
Nazım Can Altınova
d8afe0647a Bug 1609708 - Rename PROFILER_TRACING to PROFILER_TRACING_MARKER. r=gerald
Depends on D60229

Differential Revision: https://phabricator.services.mozilla.com/D60231

--HG--
extra : moz-landing-system : lando
2020-01-17 21:29:15 +00:00
Chris Peterson
406763af7f Bug 1570499 - Part 1: Replace MOZ_FALLTHROUGH macro with C++17's [[fallthrough]] attribute. r=froydnj
This changeset is a simple find and replace of `MOZ_FALLTHROUGH` and `[[fallthrough]]`.

Unfortunately, the MOZ_FALLTHROUGH_ASSERT macro (to assert on case fallthrough in debug builds) is still necessary after switching from [[clang::fallthrough]] to [[fallthrough]] because:

* MOZ_ASSERT(false) followed by [[fallthrough]] triggers a -Wunreachable-code warning in DEBUG builds
* but MOZ_ASSERT(false) without [[fallthrough]] triggers a -Wimplicit-fallthrough warning in NDEBUG builds.

Differential Revision: https://phabricator.services.mozilla.com/D56440

--HG--
extra : moz-landing-system : lando
2019-12-20 07:16:43 +00:00
Jeff Walden
62a130ba0a Bug 1602882 - Move array operations to a new js/Array.h header. r=sfink,bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D56595

--HG--
extra : moz-landing-system : lando
2019-12-11 06:17:44 +00:00
Jon Coppeard
c64814f433 Bug 1600565 - Fix changes to CCRunnerFired made during previous refactoring r=mccr8
One thing I inadvertantly changed was that didDoWork gets set to true even if we don't call FireForgetSkippable and execute what was the third branch of the if statement:

https://searchfox.org/mozilla-central/rev/883d58bccf1a36465ef5ee14b62db0a9925ab85b/dom/base/nsJSEnvironment.cpp#1878-1883

Differential Revision: https://phabricator.services.mozilla.com/D56021

--HG--
extra : moz-landing-system : lando
2019-12-05 18:14:12 +00:00
Gabriele Svelto
ace6d1063f Bug 1600545 - Remove useless inclusions of header files generated from IDL files in dom/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

Differential Revision: https://phabricator.services.mozilla.com/D55442

--HG--
extra : moz-landing-system : lando
2019-12-06 09:24:56 +00:00
Dorel Luca
a381d5c96d Backed out changeset f6e53d1c6518 (bug 1600545) for Android build bustage. CLOSED TREE 2019-12-04 17:32:27 +02:00
Gabriele Svelto
bc9290f767 Bug 1600545 - Remove useless inclusions of header files generated from IDL files in dom/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

Differential Revision: https://phabricator.services.mozilla.com/D55442

--HG--
extra : moz-landing-system : lando
2019-12-04 15:01:19 +00:00
Jon Coppeard
59a54ab596 Bug 1599445 - Refactor CCRunnerFired function by writing it as a state machine r=mccr8
This makes the function into a state machine implemented with a switch statement and gets rid of the recursive call. This results in a little duplication of logic but hopefully it is easier to understand overall. What do you think?

Differential Revision: https://phabricator.services.mozilla.com/D54750

--HG--
extra : moz-landing-system : lando
2019-11-27 10:18:17 +00:00
Doug Thayer
97c5d40384 Bug 1586920 - Sometimes include dynamic string of label frames in BHR r=nika
This adds two AUTO_PROFILER_LABEL_DYNAMIC_... macros and updates select
usages of the old macros to use the new ones. These new macros cause
the dynamic string of the label to be included in BHR stacks.

We don't want to do this all of the time, as in many cases we may not
be interested enough in the dynamic string or it may be sensitive
information, but it is rather important information for certain cases.

This uses the same buffer that we use for the strings for JS frames,
and if we fail to fit into that buffer we just append the raw label.

If the string is too long for our static buffer (128 bytes), we just
leave it truncated, as it should be stable and we may be able to infer
from the truncated form what the full form would be.

Differential Revision: https://phabricator.services.mozilla.com/D51665

--HG--
extra : moz-landing-system : lando
2019-11-11 20:27:44 +00:00
Jon Coppeard
902b013ad7 Bug 1592598 - Ensure CC selected zones are scheduled for GC r=sfink,mccr8
The problem is that a GC can be triggered in a number of ways, so scheduling zones in nsJSContext::GarbageCollectNow is not effective. This patch schedules these zones in the GC callback, which is always called at the start of GC. This means we have to change the internal logic slightly to allow the GC callback to schedule addional zones; previously this state was saved and restored before/after running the callback.

Differential Revision: https://phabricator.services.mozilla.com/D51145

--HG--
extra : moz-landing-system : lando
2019-10-30 21:39:07 +00:00
Jon Coppeard
54bb6cf850 Bug 1585697 - Refactor nsJSContext::EndCycleCollectionCallback to split out telemetry and logging code into CycleCollectorStats methods r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D47922

--HG--
extra : moz-landing-system : lando
2019-10-02 17:19:24 +00:00
Jon Coppeard
0485aa7053 Bug 1585697 - Move forget skippable stats into CycleCollectorStats class r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D47920

--HG--
extra : moz-landing-system : lando
2019-10-02 17:19:09 +00:00
Jon Coppeard
53ac617cd2 Bug 1585697 - Make CycleCollectorStats instance static for consistency with other globals r=mccr8
I'm not sure what if there's a preference either way, but all the other globals in nsJSEnvironement.cpp are static so I made the CycleCollectorStats global static too.

Differential Revision: https://phabricator.services.mozilla.com/D47919

--HG--
extra : moz-landing-system : lando
2019-10-02 17:19:00 +00:00
Jon Coppeard
acce9ba546 Bug 1585697 - Move CycleCollectorStats definition to the top of the file r=mccr8
This needs to be defined before FireForgetSkippable for the subsequnt patches.

Differential Revision: https://phabricator.services.mozilla.com/D47918

--HG--
extra : moz-landing-system : lando
2019-10-02 17:18:44 +00:00
Jon Coppeard
7630259d43 Bug 1580883 - Use TimeDuration for CycleCollectorStats members r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D45697

--HG--
extra : moz-landing-system : lando
2019-09-18 12:48:46 +00:00
Jon Coppeard
f326bb945c Bug 1580883 - Use TimeDuration for remaining global in nsJSEnvironment.cpp r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D45696

--HG--
extra : moz-landing-system : lando
2019-09-18 12:48:32 +00:00
Jon Coppeard
99e7fae124 Bug 1580883 - Use TimeDuration for constants in nsJSEnvironment.cpp r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D45695

--HG--
extra : moz-landing-system : lando
2019-09-18 12:48:23 +00:00
Jon Coppeard
559e2c332d Bug 1580883 - Use TimeStamp/TimeDuration APIs instead of PRTime/PR_Now() in nsJSEnvironment.cpp r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D45693

--HG--
extra : moz-landing-system : lando
2019-09-18 12:48:09 +00:00
Karl Tomlinson
8361c71fb3 Bug 1578623 add stack support to AsyncErrorReporter r=bholley
Differential Revision: https://phabricator.services.mozilla.com/D44608

--HG--
extra : moz-landing-system : lando
2019-09-09 00:41:46 +00:00
Jon Coppeard
0de32dc6cd Bug 1580474 - Replace #defines with constants in nsJSEnvironment files r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D45531

--HG--
extra : moz-landing-system : lando
2019-09-12 09:56:52 +00:00
Noemi Erli
d988a687b9 Backed out 9 changesets (bug 1578623) for causing Windows build bustages CLOSED TREE
Backed out changeset 52a86c60c866 (bug 1578623)
Backed out changeset e4fddd3d24b4 (bug 1578623)
Backed out changeset 65a7c4daec27 (bug 1578623)
Backed out changeset 3badf9215788 (bug 1578623)
Backed out changeset 71e58ee8f684 (bug 1578623)
Backed out changeset 0128e12a910f (bug 1578623)
Backed out changeset 8242877392bd (bug 1578623)
Backed out changeset 6d7be8a22f8b (bug 1578623)
Backed out changeset 3be609a9be36 (bug 1578623)

--HG--
extra : amend_source : b76d374926d247982773b58d12cb26e33d9972e8
2019-09-09 03:37:09 +03:00
Karl Tomlinson
dcc752541e Bug 1578623 add stack support to AsyncErrorReporter r=bholley
Differential Revision: https://phabricator.services.mozilla.com/D44608

--HG--
extra : moz-landing-system : lando
2019-09-06 02:10:32 +00:00
Jon Coppeard
335ff4bf5d Bug 1518138 - Make RunNextCollectorTimer trigger full GCs to address out of memory errors running JS reftests r=smaug
This doesn't fix the underlying problem but makes RunNextCollectorTimer more aggressive in what it does. Testing shows this substantially reduces the max GC heap size while running these tests as well as vsize and RSS. Hopefully this will fix the problem with the tests failing while we work out a good solution for the underlying issue.

Differential Revision: https://phabricator.services.mozilla.com/D44378

--HG--
extra : moz-landing-system : lando
2019-09-03 12:21:45 +00:00
Andrew Creskey
7134be5031 Bug 1575938 Convert dom/JSEnvironment GC timing constants to StaticPref r=edgar
Converted the following to StaticPrefs so that we can easily test variations:

NS_GC_DELAY
NS_SHRINK_GC_BUFFERS_DELAY
NS_FIRST_GC_DELAY
NS_FULL_GC_DELAY
NS_INTERSLICE_GC_DELAY

NS_USER_INTERACTION_INTERVAL

Differential Revision: https://phabricator.services.mozilla.com/D43112

--HG--
extra : moz-landing-system : lando
2019-08-26 15:51:01 +00:00
Jon Coppeard
992d6b6ce5 Bug 1570905 - Rework the GC triggers to make the incremental trigger the default and the non-incremental trigger some factor of this r=sfink?
Differential Revision: https://phabricator.services.mozilla.com/D41606

--HG--
extra : moz-landing-system : lando
2019-08-13 08:40:36 +00:00
Jon Coppeard
2d89bbf3df Bug 1569564 - Remove the original malloc counter infrastructure r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D39735

--HG--
extra : moz-landing-system : lando
2019-07-31 09:13:36 +00:00
Kannan Vijayan
3fb6190ec6 Bug 1559414 - Rename unaudited pre-fission methods with SameProcess for future audit burndown. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D39378

--HG--
extra : moz-landing-system : lando
2019-07-26 16:48:31 +00:00
Nicholas Nethercote
18fae65f38 Bug 1563139 - Remove StaticPrefs.h. r=glandium
This requires replacing inclusions of it with inclusions of more specific prefs
files.

The exception is that StaticPrefsAll.h, which is equivalent to StaticPrefs.h,
and is used in `Codegen.py` because doing something smarter is tricky and
suitable for a follow-up. As a result, any change to StaticPrefList.yaml will
still trigger recompilation of all the generated DOM bindings files, but that's
still a big improvement over trigger recompilation of every file that uses
static prefs.

Most of the changes in this commit are very boring. The only changes that are
not boring are modules/libpref/*, Codegen.py, and ServoBindings.toml.

Differential Revision: https://phabricator.services.mozilla.com/D39138

--HG--
extra : moz-landing-system : lando
2019-07-26 01:10:23 +00:00
Jon Coppeard
eb473b5dda Backed out changeset ec4aac5a6c9f (bug 1557771) for performance regressions a=backout 2019-07-12 15:08:24 +01:00
Karan Sapolia
ed6ee44baf Bug 1549263 - Rename sliceTimeBudget() and related symbols to include units. r=pbone
Differential Revision: https://phabricator.services.mozilla.com/D35588

--HG--
extra : moz-landing-system : lando
2019-06-28 12:56:08 +00:00
Jon Coppeard
22952620f8 Bug 1560931 - Set JS engine low memory state based on memory pressure notifications r=smaug
Update the memory pressure observers for main thread and workers to call the new JS API to set/clear the low memory state.

Differential Revision: https://phabricator.services.mozilla.com/D35682
2019-06-24 18:24:47 +01:00
Jon Coppeard
adf4147b2b Bug 1557771 - Trigger fewer GCs via nsJSContext::MaybeRunNextCollectorSlice r=smaug
This patch changes MaybeRunNextCollectorSlice so that it doesn't start a new GC/CC if one is not running already.

This reduces the number of GC slices when running the benchmark from ~400 to ~230.

Olli, what do you think?  It seems to me that this is closer to the original intention of the code.  I haven't run this through perfherder because I haven't worked out what try command I need to do this, but I figure that it won't make things worse.

Differential Revision: https://phabricator.services.mozilla.com/D35556
2019-06-21 11:11:29 -07:00
Boris Zbarsky
50150d0231 Bug 1559468 part 2. Move JS_DefineProfilingFunctions into dom::CreateGlobal. r=mccr8
Various callers either already call it or should but are forgetting to.  The exception is WorkerDebuggerGlobalScope_Binding::Wrap, but it should be OK to set up the profiling functions there too.

Differential Revision: https://phabricator.services.mozilla.com/D35458

--HG--
extra : moz-landing-system : lando
2019-06-20 23:07:40 +00:00
Andrew McCreight
d7e4cdb247 Bug 1559263 - Eliminate nsJSContext::mIsInitialized. r=bzbarsky
Two places read the value of mIsInitialized: nsJSContext::IsContextInitialized()
and nsJSContext::InitContext(). The former is never called. The latter is called
once, with an nsJSContext that just had its mInitialized field set to false, so
the check will always succeed. Because nothing meaningfully reads the value of
the field, we can delete the field and everything that uses it.

Differential Revision: https://phabricator.services.mozilla.com/D34947

--HG--
extra : moz-landing-system : lando
2019-06-14 18:40:25 +00:00
Olli Pettay
9ae6dfc8ab Bug 1548358 - Consider to finish forget skippable phase sooner if there is idle time to use, r=mccr8
--HG--
extra : rebase_source : 0adb6235a2f8d43de78231dda11441abb8fbb5ab
2019-05-07 22:58:13 +03:00
Paul Bone
d3857d4888 Bug 1532838 - Add a pref for the minimum nursery size r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D29815

--HG--
extra : moz-landing-system : lando
2019-05-06 03:14:22 +00:00
Paul Bone
6eabff94c7 Bug 1532838 - Use correct units in a preference name r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D29814

--HG--
extra : moz-landing-system : lando
2019-05-06 03:13:51 +00:00
Olli Pettay
e217c0e5c8 Bug 1548827, let CC to run sooner after GC, r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D29864

--HG--
extra : moz-landing-system : lando
2019-05-03 18:44:14 +00:00
Olli Pettay
2d3a4fc4ab Bug 1548355 - Tweak sLastCCEndTime handling to be able to check two tasks within < 1ms, r=mccr8 2019-05-01 23:23:24 +03:00
Olli Pettay
8450c835d5 Bug 1548146 - Tweak sLastForgetSkippableCycleEndTime handling to be able to check two tasks within < 1ms, r=mccr8
--HG--
extra : rebase_source : a4d82ac6cbac8d58b091565cb8ccc4c12d71fcde
2019-05-01 01:41:06 +03:00
Olli Pettay
897fa17b45 Bug 1545093 - Add telemetry about full GC cycle, including time between slices, r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D27896

--HG--
extra : moz-landing-system : lando
2019-04-17 15:55:03 +00:00
Jon Coppeard
3538d42c33 Bug 1544885 - Don't immediately run another GC slice in idle time if there's no work to do on the main thread r=smaug r=pbone
Differential Revision: https://phabricator.services.mozilla.com/D27889
2019-04-17 14:04:32 +01:00
Olli Pettay
1e99e9f05e Bug 1544866 - Make InterSliceGCRunnerFired to return false in case the full budget wasn't used. r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D27756

--HG--
extra : moz-landing-system : lando
2019-04-16 19:59:30 +00:00
Olli Pettay
06b0a5cdbf Bug 1543961 - tweak iGC slices to be handled more often in case there is idle time, r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D27281

--HG--
extra : moz-landing-system : lando
2019-04-15 10:40:26 +00:00
Sylvestre Ledru
7f60810d86 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D27245

--HG--
extra : moz-landing-system : lando
2019-04-12 13:14:25 +00:00
Brian Hackett
5ece767b75 Bug 996060 Part 2 - Use JS engine stack if necessary when reporting errors, r=bz.
Differential Revision: https://phabricator.services.mozilla.com/D25645

--HG--
extra : rebase_source : c9cfe0d968bbe1d53e1eb1fc52433f88771d5faa
2019-04-01 12:17:43 -06:00
Boris Zbarsky
11f24f599a Bug 1541600 part 1. Stop using AutoJSContext in nsJSEnvironment. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D26222

--HG--
extra : moz-landing-system : lando
2019-04-04 20:00:08 +00:00