Commit Graph

819 Commits

Author SHA1 Message Date
Andrea Marchesini
94eab0e791 Bug 1639833 - IntrisincStoragePrincipal should always be partitioned - part 3 - Cleanup storage access methods, r=dimi
Differential Revision: https://phabricator.services.mozilla.com/D76916
2020-06-02 08:29:15 +00:00
Noemi Erli
2b060384fc Backed out 5 changesets (bug 1639833) for causing sessionstorage related failures CLOSED TREE
Backed out changeset b36af8d9db34 (bug 1639833)
Backed out changeset 712c11904dbe (bug 1639833)
Backed out changeset 14f1e4783582 (bug 1639833)
Backed out changeset b7f14c4cfe5d (bug 1639833)
Backed out changeset b4b25034dd83 (bug 1639833)
2020-06-01 19:31:50 +03:00
Andrea Marchesini
28760b5629 Bug 1639833 - IntrisincStoragePrincipal should always be partitioned - part 3 - Cleanup storage access methods, r=dimi
Differential Revision: https://phabricator.services.mozilla.com/D76916
2020-06-01 11:07:36 +00:00
Yaron Tausky
f8e84898e9 Bug 1638170 - Don't dispatch buggy WorkerRunnables r=asuth,dom-workers-and-storage-reviewers,sg
This patch removes the dispatch of ReportGenericErrorRunnables when
a worker fails to start, since they were causing crashes and
weren't getting run anyway. It also adds an assertion that prevents
the creation of strong references to workers before they begin
their main loop.

Differential Revision: https://phabricator.services.mozilla.com/D76693
2020-05-26 11:38:58 +00:00
Andrew Sutherland
cc1eab0351 Bug 1634259 - Improve worker shutdown edge case handling. r=perry
Bug 1594572 attempted to fix a shutdown edge-case where a worker that was
started late enough would fail to create a PBackground connection and
early return.  This early return, however, left the worker never scheduled
for deletion, resulting in a shutdown hang.  See my restating block at
https://phabricator.services.mozilla.com/D73134#2224963 for more context.

The problem with this was that the attempt to clear the main event queue
ran afoul of pre/post event-processing hooks intended to ensure that control
runnables are processed if some non-worker code goes and spins a nested
event loop on the worker thread.  But because we never got around to
creating a cycle collected JS runtime on the thread, the call to get it
would return null and when we tried to get the recursion depth of a null
pointer, we would crash a little.

This patch addresses the immediate regression by adding a helper that returns
a depth of 1 in this edge-case.  It also fixes another problem with the fix
that is now more obvious having reviewed bug 1636147... we were failing to
mark the status of the worker as dead and drain any control runnables, which
could have resulted in the CrashIfHangingRunnable usage not working out right.
(Note that CrashIfHangingRunnable does handle Cancel() correctly, so the
fact that we end up canceling the runnable shouldn't break things.)

Differential Revision: https://phabricator.services.mozilla.com/D75185
2020-05-14 07:44:44 +00:00
Yaron Tausky
d82175ea26 Bug 1636147 - Don't report dead workers as active r=dom-workers-and-storage-reviewers,sg,asuth
`RuntimeService::CrashIfHanging` uses `RuntimeService`'s registry
to determine which workers are still active. This approach is
flawed because the registry is updated on the main thread, so if
the main thread is stuck somewhere, dead workers could be reported
as active.
This commit adds an additional check: if dispatching a `Runnable`
to a worker fails, it assumes that the worker is dead. This way
main thread hangs would not be reported as worker hangs.

Differential Revision: https://phabricator.services.mozilla.com/D74256
2020-05-13 17:48:19 +00:00
Simon Giesecke
c5b14c1fe0 Bug 1626570 - Improve handling of copying arrays in dom/workers/. r=dom-workers-and-storage-reviewers,ytausky
Differential Revision: https://phabricator.services.mozilla.com/D73668
2020-05-11 08:22:17 +00:00
Logan Smyth
6f14e864e4 Bug 1628853 - Expose a feature flag to enable/disable //# sourceXX= parsing. r=arai
These pragmas can be used to influence stack trace filenames, and to affect
how and where files show up in developer tools. In some circumstances, it can
be nice to disable allof that functionality in order to ensure that you get
the stack trace and debug information as SpiderMonkey sees it.

Differential Revision: https://phabricator.services.mozilla.com/D72103
2020-05-08 00:37:21 +00:00
Lars T Hansen
19e35e81ba Bug 1478632 - wasm simd, part 1: feature gating and related prep. r=rhunt
We add a configuration option for SIMD and apply ENABLE_WASM_SIMD
throughout the engine as appropriate, mostly to insert #error or
MOZ_CRASH where things need to be done in later patches or for
architectures that we won't currently consider.

We add a command line switch for the shell and an option for
about:config and plumb the value of this through the engine.

Differential Revision: https://phabricator.services.mozilla.com/D57940
2020-05-05 08:17:47 +00:00
Benjamin Bouvier
d24dcb9044 Bug 1618595: Disable Cranelift on aarch64 when reftypes are enabled; r=lth,perftest-reviewers,sparky
This requires adding a new JSOptions field (for internal use within the shell),
as well as a new browser pref (to support possible Cranelift benchmarking on
aarch64).

Differential Revision: https://phabricator.services.mozilla.com/D72907
2020-04-30 11:55:13 +00:00
Cameron McCormack
c31982b631 Bug 1582293 - Part 4: Initialize worker prefs correctly. r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D70593
2020-04-30 09:18:34 +00:00
Cameron McCormack
629b3f5daa Bug 1582293 - Part 3: Support zero values for worker GC prefs. r=asuth
And while we're touching JSSettings, make it use an nsTArray to store
the JS GC settings intead of a C array.

Differential Revision: https://phabricator.services.mozilla.com/D70592
2020-04-30 09:18:27 +00:00
Cameron McCormack
f22d153087 Bug 1582293 - Part 2: Fix interpretation of boolean worker GC prefs. r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D70591
2020-04-30 09:18:25 +00:00
Cameron McCormack
0549a88764 Bug 1582293 - Part 1: Fix pref observation code formatting. r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D70590
2020-04-30 09:18:23 +00:00
Jon Coppeard
b377be5cd1 Bug 1633457 - Rename some GC parameters for clarity r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D73012
2020-04-29 21:54:22 +00:00
Kris Maglione
c1116675db Bug 1594572: Schedule worker deletion when primary runnable fails. r=asuth
If we try to start a worker too close to shutdown, the main runnable for its
thread runs after shutdown has begun, bails out early trying to create a
BackgroundChild for its thread. Unlike bail-outs in WorkerPrivate::DoRunLoop,
though, nothing winds up scheduling the deletion of the worker after it
returns, and afterwards the worker is stuck forever in a pending state.
Attempts to shut it down from the main thread just dispatch an impotent
notification to be processed by the workers main event loop (which, of course,
will not ever happen).

This patch fixes the behavior of WorkerThreadPrimaryRunnable to always call
ScheduleDeletion when it exits, rather than only doing so when it succeeds
in entering the worker's main loop.

Differential Revision: https://phabricator.services.mozilla.com/D73134
2020-04-30 03:52:56 +00:00
Jon Coppeard
c3b204df69 Bug 1633405 - Remove dynamic GC options that are enabled everywhere r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D72696
2020-04-28 07:59:47 +00:00
Noemi Erli
1eaee04fd4 Backed out changeset 1fc50aa5c6bc (bug 1633405) for causing bustages in bigint.js CLOSED TREE 2020-04-28 13:49:51 +03:00
Jon Coppeard
73bca2cede Bug 1633405 - Remove dynamic GC options that are enabled everywhere r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D72696
2020-04-28 07:59:47 +00:00
Jean-Yves Avenard
969a5bbc94 Bug 1630802 - P4. Remove unused member. r=bholley
It lead the AbstractThread's assumption that there can only be one active per thread be invalid.

Differential Revision: https://phabricator.services.mozilla.com/D71441
2020-04-21 03:08:55 +00:00
Andrea Marchesini
1fb5fc06bf Bug 1625568 - Add compatibility heuristics to third-party cookie blocking - part 2 - enable storageAccess API and heuristics, r=dimi,timhuang
Differential Revision: https://phabricator.services.mozilla.com/D69047
2020-04-02 15:30:57 +00:00
Lars T Hansen
7a943fdd6a Bug 1620986 - Workers should read multi-value pref. r=bbouvier
Differential Revision: https://phabricator.services.mozilla.com/D68353
2020-03-26 11:47:59 +00:00
Perry Jiang
c9d5444ffb Bug 1615014 - ensure performance storage/counter is set before being read r=dom-workers-and-storage-reviewers,asuth
WorkerThreadPrimaryRunnable possibly indirectly creates a
SendInitBackgroundRunnable (runs on the main thread), which causes a data race
with CompileScriptRunnable (runs on the worker thread) by having an
unsynchronized read/write of WorkerPrivate::mPerformanceCounter.

Differential Revision: https://phabricator.services.mozilla.com/D67434
2020-03-26 03:22:42 +00:00
Simon Giesecke
5431b0ef4b Bug 1620632 - Ensure nsTArray_Impl only declares a copy-constructor/assignment operator if E is copy-constructible. r=froydnj
To correctly implement this, it must be known on instantiation whether E is
copy-constructible, which is not the case if only a forward declaration is
available. This can be resolved either by making sure a full definition of E is
available, which is preferable. But in cases where this is not (easily) possible,
the information can be explicitly provided by the MOZ_DECLARE_COPY_CONSTRUCTIBLE
and MOZ_DECLARE_NON_COPY_CONSTRUCTIBLE macros. In particular, declarations for
IPDL-declared types are added to nsTArray.h itself, like it was already done
for MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR.

Differential Revision: https://phabricator.services.mozilla.com/D66244
2020-03-20 17:13:51 +00:00
Tom Schuster
cc8787dc4a Bug 1275508 - Remove JavaScript werror from browser. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D66255
2020-03-11 12:20:21 +00:00
Tom Schuster
90b3d0e361 Bug 1619177 - Remove remaining extra warnings code. r=tcampbell,mccr8
Differential Revision: https://phabricator.services.mozilla.com/D65830
2020-03-10 22:59:41 +00:00
Ehsan Akhgari
ad14267240 Bug 1620322 - Part 8: Rename AntiTrackingCommon to ContentBlocking; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D65821
2020-03-09 23:36:39 +00:00
Narcis Beleuzu
422807b8e0 Backed out 8 changesets (bug 1620322) for bustages on nsContentSink.cpp . CLOSED TREE
Backed out changeset f41739c64dff (bug 1620322)
Backed out changeset be942a7f329e (bug 1620322)
Backed out changeset a916987c7c71 (bug 1620322)
Backed out changeset ead3484ffb5f (bug 1620322)
Backed out changeset 4e1e8b9afa1a (bug 1620322)
Backed out changeset 473bba698e5a (bug 1620322)
Backed out changeset 0e5e5d41597d (bug 1620322)
Backed out changeset 31b24d79db3d (bug 1620322)
2020-03-09 22:18:36 +02:00
Ehsan Akhgari
d7d656e700 Bug 1620322 - Part 8: Rename AntiTrackingCommon to ContentBlocking; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D65821
2020-03-09 18:12:40 +00:00
Noemi Erli
f3729f347c Backed out 8 changesets (bug 1620322) for causing bustages in ContentBlockingLog.cpp CLOSED TREE
Backed out changeset 3dcf513e36cb (bug 1620322)
Backed out changeset 46714855ce1d (bug 1620322)
Backed out changeset 0eb2b5f7322f (bug 1620322)
Backed out changeset 72d640fa0740 (bug 1620322)
Backed out changeset 4533bb4e5177 (bug 1620322)
Backed out changeset 659270edd419 (bug 1620322)
Backed out changeset 6802c18b1914 (bug 1620322)
Backed out changeset 60ff34db9f15 (bug 1620322)
2020-03-09 19:19:41 +02:00
Ehsan Akhgari
eaebe39024 Bug 1620322 - Part 8: Rename AntiTrackingCommon to ContentBlocking; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D65821
2020-03-09 10:23:07 +00:00
Tim Huang
37f162c69d Bug 1616570 - Part 1: Rename CookieSettings to CookieJarSettings. r=Ehsan
Given that we are going to add ContentBlockingAllowList in
CookieSettings, so CookieSettings will be responsible for more stuff than the
cookie behavior and cookie permission. We should use a proper name to
reflect the purpose of it. The name 'CookieSettings' is misleading that
this is only for cookie related stuff. So, we decide to rename
'CookieSettins' to 'CookieJarSettings' which serves better meaning here.

Differential Revision: https://phabricator.services.mozilla.com/D63935
2020-03-04 08:59:08 +00:00
Andrew McCreight
611f5029e6 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
2020-02-27 17:39:15 +00:00
Ciure Andrei
c06273c350 Backed out changeset d407a28318e6 (bug 1609815) for causing windows ming bustages CLOSED TREE 2020-02-27 07:05:19 +02:00
Andrew McCreight
179c12c3e5 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
2020-02-27 04:43:48 +00:00
Tom Schuster
9dcba5783c Bug 1615405 - eval(nonString) should not have observable side effects. r=tcampbell,baku
After this change we can restrict contentSecurityPolicyAllows callbacks to just strings, because everything
else is excluded before calling that callback.

Differential Revision: https://phabricator.services.mozilla.com/D62794
2020-02-14 15:05:27 +00:00
Bogdan Tara
fedc1ed701 Backed out changeset bc387540075d (bug 1615405) on evilpie's request CLOSED TREE 2020-02-14 14:34:53 +02:00
Tom Schuster
5ee8ef7131 Bug 1615405 - eval(nonString) should not have observable side effects. r=tcampbell,baku
After this change we can restrict contentSecurityPolicyAllows callbacks to just strings, because everything
else is excluded before calling that callback.

Differential Revision: https://phabricator.services.mozilla.com/D62794
2020-02-14 12:26:21 +00:00
Simon Giesecke
9bcfd47601 Bug 1611415 - Prefer using std::move over forget. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D60980
2020-02-13 14:38:48 +00:00
shindli
6bb3487209 Backed out changeset 0c982bc69cb3 (bug 1611415) for causing build bustages in /builds/worker/workspace/build/src/obj-firefox/dist/include/nsCOMPtr CLOSED TREE 2020-02-12 20:13:29 +02:00
Simon Giesecke
d45525793f Bug 1611415 - Applied FixItHints from mozilla-non-std-move. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D60980
2020-02-12 17:24:41 +00:00
Simon Giesecke
fe33e52133 Bug 1613985 - Use default for equivalent-to-default constructors/destructors in dom/workers. r=dom-workers-and-storage-reviewers,janv
Differential Revision: https://phabricator.services.mozilla.com/D62562
2020-02-12 10:38:22 +00:00
Sylvestre Ledru
9bd2328337 Bug 1519636 - Automatically reformat recent changes using clang-format r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D60354
2020-01-21 09:51:27 +00:00
Eric Rahm
daeb56f35b Bug 1606187 - Part 2b: Update users of nsClassHashtable to handle UniquePtr differences r=KrisWright,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D59042
2020-01-13 19:18:56 +00:00
Paul Bone
9205b98aca Bug 1584892 - Remove CycleCollectedJSContext::Initialize's nursery size param r=karlt
Differential Revision: https://phabricator.services.mozilla.com/D47873
2019-12-16 04:14:55 +00:00
Paul Bone
4581fcd767 Bug 1584892 - Use the default max nursery size for workers r=baku,karlt
This patch updates this for workers and worklets.

Differential Revision: https://phabricator.services.mozilla.com/D47872
2019-12-16 03:55:24 +00:00
Gabriele Svelto
eb403b8785 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
2019-12-06 09:24:56 +00:00
Dorel Luca
67889e1013 Backed out changeset f6e53d1c6518 (bug 1600545) for Android build bustage. CLOSED TREE 2019-12-04 17:32:27 +02:00
Gabriele Svelto
dc6fa2e86c 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
2019-12-04 15:01:19 +00:00
Karl Tomlinson
b1f76187b6 Bug 1565956 adjust IsCurrentThreadRunningChromeWorker() for worklet threads r=baku
Depends on D53135

Differential Revision: https://phabricator.services.mozilla.com/D53136
2019-11-17 21:17:40 +00:00