Commit Graph

506 Commits

Author SHA1 Message Date
Simon Giesecke
2969e54562 Bug 1676361 - Move AutoEntryScript to a separate header file to avoid pulling in GeckoProfiler.h everywhere. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D97742
2021-03-05 15:29:49 +00:00
Alexandru Michis
80cf7cc919 Backed out changeset c6b72f3c76ba (bug 1676361) for causing bustages in nsSocketTransportService2.cpp
CLOSED TREE
2021-03-04 23:26:04 +02:00
Simon Giesecke
b68ba311a2 Bug 1676361 - Move AutoEntryScript to a separate header file to avoid pulling in GeckoProfiler.h everywhere. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D97742
2021-03-04 17:30:48 +00:00
Noemi Erli
c351c837d1 Backed out changeset 06452c4c828c (bug 1676361) for causing bustages CLOSED TREE 2021-03-04 19:13:56 +02:00
Simon Giesecke
e46fd72f6f Bug 1676361 - Move AutoEntryScript to a separate header file to avoid pulling in GeckoProfiler.h everywhere. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D97742
2021-03-04 16:14:44 +00:00
smolnar
4a344e2a83 Backed out changeset 9062e17fe15c (bug 1676361) on devs request. CLOSED TREE 2021-03-04 16:51:21 +02:00
Simon Giesecke
fa4029ad0a Bug 1676361 - Move AutoEntryScript to a separate header file to avoid pulling in GeckoProfiler.h everywhere. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D97742
2021-03-04 14:32:15 +00:00
Jens Stutte
3b47cc9695 Bug 1689953: Harmonize shutdown phase definitions across nsTerminator and AppShutdown r=dthayer,chutten
This patch wants to solve several quirks around the shutdown terminator.

 - Use the same shutdown phase definitions in AppShutdown and nsTerminator. This touches quite a few files.
 - Ensure that the terminator phase shift is handled before any shutdown observer notifications are sent and reduce its heartbeat duration.
 - Add missing phases to the shutdown telemetry.

Please note that this changes the unit of "tick" to 100ms rather than 1s.
As a side effect, we also remove the obsolete "shutdown-persist" context.

While the existing test coverage continues to prove the most important functions, we acknowledge the wish for better test coverage with [[ https://bugzilla.mozilla.org/show_bug.cgi?id=1693966 | bug 1693966 ]].

Differential Revision: https://phabricator.services.mozilla.com/D103626
2021-02-27 14:38:14 +00:00
Butkovits Atila
d0aa372d80 Backed out changeset be43a81b35f9 (bug 1689953) for causing failure at test_terminator_record.js. CLOSED TREE 2021-02-27 05:03:11 +02:00
Jens Stutte
3fddfccde0 Bug 1689953: Harmonize shutdown phase definitions across nsTerminator and AppShutdown r=dthayer,chutten
This patch wants to solve several quirks around the shutdown terminator.

 - Use the same shutdown phase definitions in AppShutdown and nsTerminator. This touches quite a few files.
 - Ensure that the terminator phase shift is handled before any shutdown observer notifications are sent and reduce its heartbeat duration.
 - Add missing phases to the shutdown telemetry.

Please note that this changes the unit of "tick" to 100ms rather than 1s.
As a side effect, we also remove the obsolete "shutdown-persist" context.

While the existing test coverage continues to prove the most important functions, we acknowledge the wish for better test coverage with [[ https://bugzilla.mozilla.org/show_bug.cgi?id=1693966 | bug 1693966 ]].

Differential Revision: https://phabricator.services.mozilla.com/D103626
2021-02-26 21:33:29 +00:00
Simon Giesecke
95c38cc6b8 Bug 1691913 - Rename nsBaseHashtable::Put to InsertOrUpdate. r=xpcom-reviewers,necko-reviewers,jgilbert,dragana,nika
This makes the naming more consistent with other functions called
Insert and/or Update. Also, it removes the ambiguity whether
Put expects that an entry already exists or not, in particular because
it differed from nsTHashtable::PutEntry in that regard.

Differential Revision: https://phabricator.services.mozilla.com/D105473
2021-02-26 09:11:46 +00:00
Nick Alexander
9e164ba298 Bug 1687553 - Make more dump implementations log to MOZ_LOG system under module "Dump". r=xpcom-reviewers,nika
This is an extension of the existing implementations added by Bug
1059469.

By extension, this makes `console.log` and friends log to the MOZ_LOG
system when `browser.dom.window.dump.enabled` is true.

My immediate use case is capturing cumulative logs for the new
`--backgroundtask ...` mode that will be used to invoke maintenance
tasks when Firefox itself is not running.

This will lead to duplicate messages (from both the MOZ_LOG system and
`fputs`) when the MOZ_LOG system is not redirected but there's no
particular harm in that.  In the future, we could not `fputs` when the
MOZ_LOG system will log the given message, but it seems better to
actually do the work to connect the `Log.jsm` and `ConsoleAPI.jsm`
systems to MOZ_LOG rather than continue to add work arounds.

Differential Revision: https://phabricator.services.mozilla.com/D104636
2021-02-25 04:13:33 +00:00
Kris Maglione
2c65300789 Bug 1403348: Follow-up: Remove crash annotations for AsyncShutdown load failures. r=mccr8
They've done their job. It's clear at this point that these failures are
happening because of omni.ja corruption.

Differential Revision: https://phabricator.services.mozilla.com/D105834
2021-02-23 20:18:13 +00:00
smolnar
d5066e5bed Backed out changeset 7c67e3cb1ded (bug 1403348) for causing xpc failures in AsyncShutdown. CLOSED TREE 2021-02-23 02:17:08 +02:00
Kris Maglione
660f905e7a Bug 1403348: Follow-up: Remove crash annotations for AsyncShutdown load failures. r=mccr8
They've done their job. It's clear at this point that these failures are
happening because of omni.ja corruption.

Differential Revision: https://phabricator.services.mozilla.com/D105834
2021-02-22 21:37:28 +00:00
Magnus Melin
e854a4775c Bug 1689562 - mozJSComponentLoader::Import should not store locations that failed to resolve. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D105367
2021-02-18 07:04:18 +00:00
Simon Giesecke
3c36abd9aa Bug 1692880 - Make Put accept DataType instead of wrapping UserDataType. r=xpcom-reviewers,necko-reviewers,nika
Differential Revision: https://phabricator.services.mozilla.com/D104850
2021-02-16 15:53:33 +00:00
Gerald Squelart
f25e1c0093 Bug 1691589 - Reduce reliance on GeckoProfiler.h when only labels (and maybe markers) are needed - r=necko-reviewers,geckoview-reviewers,sg,agi,florian
There are no code changes, only #include changes.
It was a fairly mechanical process: Search for all "AUTO_PROFILER_LABEL", and in each file, if only labels are used, convert "GeckoProfiler.h" into "ProfilerLabels.h" (or just add that last one where needed).
In some files, there were also some marker calls but no other profiler-related calls, in these cases "GeckoProfiler.h" was replaced with both "ProfilerLabels.h" and "ProfilerMarkers.h", which still helps in reducing the use of the all-encompassing "GeckoProfiler.h".

Differential Revision: https://phabricator.services.mozilla.com/D104588
2021-02-16 04:44:19 +00:00
smolnar
03bc7728ba Backed out 5 changesets (bug 1691894) for causing hazard failures in nsXULPrototypeCache. CLOSED TREE
Backed out changeset 22dc870ee609 (bug 1691894)
Backed out changeset 58c31e9d6ae3 (bug 1691894)
Backed out changeset 7483e84149d8 (bug 1691894)
Backed out changeset f977d6cfa973 (bug 1691894)
Backed out changeset db4503476f34 (bug 1691894)
2021-02-15 16:43:23 +02:00
Simon Giesecke
f04f372040 Bug 1691894 - Make Put accept DataType instead of wrapping UserDataType. r=xpcom-reviewers,necko-reviewers,nika
Differential Revision: https://phabricator.services.mozilla.com/D104850
2021-02-15 10:04:46 +00:00
Chris Peterson
693afe1d03 Bug 1684092 - Part 1: Replace MOZ_MUST_USE with [[nodiscard]] in js/src/. r=jandem
The MOZ_MUST_USE macro is defined as clang's and gcc's nonstandard __attribute__((warn_unused_result)). Now that we compile as C++17 by default (bug 1560664), we can replace MOZ_MUST_USE with C++17's standard [[nodiscard]] attribute.

Differential Revision: https://phabricator.services.mozilla.com/D100412
2021-02-12 04:09:22 +00:00
Kris Maglione
aa48fb35b5 Bug 1662846: Add memory reporter for loaded JS modules and components. r=mccr8
This makes it much easier to determine which modules and components are loaded
in which processes now that they no longer each have their own compartments.

Differential Revision: https://phabricator.services.mozilla.com/D99717
2021-02-08 23:36:14 +00:00
Ted Campbell
a70ecb7afa Bug 1689734 - Further restrict ScriptPreloader use of CompileOptions. r=kmag,arai
The JS CompileOptions used to load cache entries must be consistent with
eachother to avoid subtle and serious bugs. This adds additional checks and
makes more consistent use of `FillCompileOptionsForCachedScript`.

This patch is a refactoring and should not change any behaviour.

Depends on D103515

Differential Revision: https://phabricator.services.mozilla.com/D103516
2021-01-29 22:54:59 +00:00
Brindusan Cristian
1f257d8078 Backed out changeset 748d8c28435d (bug 1662846) for mochitest failures at test_memoryReporters.xhtml. CLOSED TREE 2021-01-09 01:03:12 +02:00
Kris Maglione
820bc3cfd2 Bug 1662846: Add memory reporter for loaded JS modules and components. r=mccr8
This makes it much easier to determine which modules and components are loaded
in which processes now that they no longer each have their own compartments.

Differential Revision: https://phabricator.services.mozilla.com/D99717
2020-12-14 23:05:03 +00:00
Nick Alexander
e72660cd27 Bug 1679583 - Make "JS XPCOM" and "SubScript" marker stacks include helpful labels. r=mstange
We need to have the label in place before placing the marker and
capturing the accompanying stack to be able to identify the loaded JS.

Differential Revision: https://phabricator.services.mozilla.com/D98094
2020-12-01 17:20:02 +00:00
Simon Giesecke
46908cfb51 Bug 1660470 - Add missing include directives/forward declarations. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D87865
2020-11-23 16:21:38 +00:00
Tooru Fujisawa
393bdc7661 Bug 1666683 - Part 6: Add ScriptPreloader::FillCompileOptionsForCachedScript. r=tcampbell,kmag
Differential Revision: https://phabricator.services.mozilla.com/D92408
2020-10-06 21:16:57 +00:00
Tooru Fujisawa
ac31feefa0 Bug 1666683 - Part 4: Add options parameter to ReadCachedScript in mozJSLoaderUtils. r=tcampbell,kmag
Differential Revision: https://phabricator.services.mozilla.com/D92406
2020-10-06 21:16:42 +00:00
Tooru Fujisawa
269c7992d7 Bug 1666683 - Part 3: Add options parameter to ScriptPreloader::GetCachedScript. r=tcampbell,kmag
Differential Revision: https://phabricator.services.mozilla.com/D92405
2020-10-06 21:16:35 +00:00
Gerald Squelart
313fddf4f9 Bug 1667915 - Separate marker category from marker options - r=gregtatum
The `category.WithOptions(...)` syntax was a bit strange and difficult to explain.

Now the category and options are separate parameters. Default options can be specified with `MarkerOptions{}` or just `{}`.

As a special case, defaulted-NoPayload functions don't need `<>`, and defaulted-NoPayload functions and macros don't even need `{}` for default options, e.g.:
`profiler_add_marker("name", OTHER); PROFILER_MARKER_UNTYPED("name", OTHER);`

Differential Revision: https://phabricator.services.mozilla.com/D91680
2020-10-01 11:02:23 +00:00
Bogdan Tara
6fe40f83f1 Backed out 2 changesets (bug 1667915) for platform related bustage CLOSED TREE
Backed out changeset e7a0788a1741 (bug 1667915)
Backed out changeset d34505b2d81b (bug 1667915)
2020-10-01 12:34:39 +03:00
Gerald Squelart
4eb5bd3574 Bug 1667915 - Separate marker category from marker options - r=gregtatum
The `category.WithOptions(...)` syntax was a bit strange and difficult to explain.

Now the category and options are separate parameters. Default options can be specified with `MarkerOptions{}` or just `{}`.

As a special case, defaulted-NoPayload functions don't need `<>`, and defaulted-NoPayload functions and macros don't even need `{}` for default options, e.g.:
`profiler_add_marker("name", OTHER); PROFILER_MARKER_UNTYPED("name", OTHER);`

Differential Revision: https://phabricator.services.mozilla.com/D91680
2020-10-01 01:44:47 +00:00
Christoph Kerschbaumer
3e0591366c Bug 1666419: Assert IsSafeToRunScript. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D91391
2020-09-28 06:29:44 +00:00
Kris Maglione
227294435b Bug 1663747: Part 2 - Use PastShutdownPhase() in component loader shutdown checks. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D89810
2020-09-22 00:58:02 +00:00
Mihai Alexandru Michis
097b59c8aa Backed out 2 changesets (bug 1663747) for causing xpcshell failures in ThrottledEventQueue.
CLOSED TREE

Backed out changeset 643aa6baf458 (bug 1663747)
Backed out changeset 491472fe44f4 (bug 1663747)
2020-09-22 03:54:59 +03:00
Kris Maglione
20f0483354 Bug 1663747: Part 2 - Use PastShutdownPhase() in component loader shutdown checks. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D89810
2020-09-21 19:20:42 +00:00
Doug Thayer
07ea733e25 Bug 1656261 - Back out all recent StartupCache work r=RyanVM
This backs out all work from bug 1627075 as well as all of its
descendents. There were a few conflicts when backing this out but
overall it was pretty clean, so I would say it's a fairly mild
level of risk. Historically Nathan Froyd has reviewed these patches,
but he is no longer at Mozilla, and no one else is particularly
familiar with the code, so I am passing this off to RyanVM who has
at least been familiar with the history of the bug.

Differential Revision: https://phabricator.services.mozilla.com/D90096
2020-09-14 17:00:53 +00:00
Gerald Squelart
e68ad94607 Bug 1663554 - Convert AUTO_PROFILER_TEXT_MARKER_... to new AUTO_PROFILER_MARKER_TEXT - r=gregtatum
The name `AUTO_PROFILER_MARKER_TEXT` is more consistent with the equivalent non-`AUTO` macro, and similarly arguments have been re-ordered to be the same, i.e.: Name, category&options, text.

The different macros with different argument sets can now be collapsed into one macro, and the optional arguments (timing, inner window id, backtrace) can easily be added to the `MarkerOptions` where needed.

As a bonus, a specific start time can optionally be provided at construction time.

Differential Revision: https://phabricator.services.mozilla.com/D89588
2020-09-11 00:42:51 +00:00
Tooru Fujisawa
0c35bd1e9a Bug 1663889 - Remove JS::CompileForNonSyntacticScope and set CompileOptions in caller. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D89688
2020-09-10 15:00:36 +00:00
Andrew McCreight
772a43dd36 Bug 1663690, part 2 - Inline mozJSComponentLoader::ReallyInit(). r=kmag
This method only asserts that mInitialized is false, then sets
mInitialized to true. All call sites check that the flag is false,
so the assertion is redundant, so this method can be inlined
and simplified.

Differential Revision: https://phabricator.services.mozilla.com/D89480
2020-09-09 19:03:51 +00:00
Andrew McCreight
9a0b7c5da8 Bug 1663690, part 1 - Remove ComponentLoaderInfo::EnsureKey(). r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D89479
2020-09-09 19:03:49 +00:00
Razvan Maries
0e2b04a7ee Backed out 2 changesets (bug 1663690) for build bustages on mozJSComponentLoader.cpp. CLOSED TREE
Backed out changeset 04236fadb4cc (bug 1663690)
Backed out changeset 3def11143e6c (bug 1663690)
2020-09-09 21:05:54 +03:00
Andrew McCreight
b272c017cb Bug 1663690, part 2 - Inline mozJSComponentLoader::ReallyInit(). r=kmag
This method only asserts that mInitialized is false, then sets
mInitialized to true. All call sites check that the flag is false,
so the assertion is redundant, so this method can be inlined
and simplified.

Differential Revision: https://phabricator.services.mozilla.com/D89480
2020-09-08 18:43:22 +00:00
Andrew McCreight
4c147e4274 Bug 1663690, part 1 - Remove ComponentLoaderInfo::EnsureKey(). r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D89479
2020-09-08 18:41:39 +00:00
Jeff Walden
6ba4898d7b Bug 1663365 - Move JSM environment-related functionality to its own header. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D89335
2020-09-08 22:57:01 +00:00
Jeff Walden
1760d6f90a Bug 1663365 - Move various Object-related functions to a new js/public/Object.h header. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D89333
2020-09-08 22:55:38 +00:00
Andrew McCreight
31f4d091a9 Bug 1663315 - Don't load new JSMs during shutdown. r=kmag
Under unknown circumstances, we can end up running chrome
JS during thread manager shutdown. Sometimes this ends up
trying to load new JSMs, but gJarHandler has already been
cleared, leading to a crash.

To avoid this and other issues, this patch forbids the
importing of new JSMs after we're late enough in shutdown
to have cleared the ClearOnShutdown pointers. I allow the
importing of JSMs that have already been loaded, as that
seems like it should be okay.

Differential Revision: https://phabricator.services.mozilla.com/D89477
2020-09-08 19:36:27 +00:00
Frederik Braun
617d3006d9 Bug 1366973: Rename security flags to not contain DATA anymore r=geckoview-reviewers,ckerschb,snorp
Differential Revision: https://phabricator.services.mozilla.com/D83490
2020-07-15 11:20:45 +00:00
Doug Thayer
b2dfc6e015 Bug 1627075 - Route Omnijar requests through StartupCache r=froydnj
This should be a relatively straightforward patch. Essentially, we implement
a wrapper class (and friends) around nsZipArchive (and friends), which transparently
caches entries from the underlying zip archive in the StartupCache. This will break
without changes to the StartupCache, made in the patch after this, which allow it
to be used off of the main thread, and outside the main process.

Depends on D77635

Differential Revision: https://phabricator.services.mozilla.com/D77634
2020-07-08 02:46:34 +00:00