The pixel-local-storage functionality was an experiment for faster
drawing of clip masks on low end tiled GPUs. However, it's never
reached a point where it was shippable and showing clear performance
wins.
This patch removes the experimental PLS support - we can always
revive it from git history if we ever want to consider it again.
Differential Revision: https://phabricator.services.mozilla.com/D98290
js/src/wasm/cranelift/Cargo.toml lists wasmparser as a dependency, but this is
(confusingly) not necessary, since we use the version re-exported by Cranelift
(IIUC). So let's remove the dependency.
Differential Revision: https://phabricator.services.mozilla.com/D98372
When using an x64 GMP child process with an arm64 parent process on arm64 Mac's, use a 16k Shmem pagesize in the child process.
Differential Revision: https://phabricator.services.mozilla.com/D98241
To ensure l10n updates are still picked up by beta builds in a timely
fashion, remove "DONTBUILD" from commit messages when running on
mozilla-beta, and run a couple of hours before the "daily-releases" job
starts.
Differential Revision: https://phabricator.services.mozilla.com/D98349
history.https.sub.html seems to have a racy part. Since that is most of the patch, perhaps ckerschb you could
review this.
navigation-in-onload.tentative.html part is just enabling a test which passes on Fission now.
Differential Revision: https://phabricator.services.mozilla.com/D98364
Instead of disabling LICM as soon as a hoisted instruction bails, this patch sets a flag on the IonScript, gives baseline a chance to invalidate, and then disables LICM if the problem happens again.
I tried an alternate approach where the first LICM bailout disabled hoisting of instructions from blocks that don't dominate the backedge, and the second LICM bailout disabled LICM entirely, but this way got better results.
Differential Revision: https://phabricator.services.mozilla.com/D98251
As far as I see the test is racy. It adds event listener to a window object, which reload() will replace.
So if the load event for non-transient about:blank gets chance to fire, then the test passes without the patch.
The main thing the patch does is to listen for the load event on the iframe element, since that object isn't
replaced.
The intermittent failure happens quite rarely and not locally, so the patch is based on code inspection.
Locally the test was run successfully 100 times both with opt and debug builds.
https://treeherder.mozilla.org/#/jobs?repo=try&revision=8b3c65c89c55cd16bf57cf0b78db9ee99ba23df2
Differential Revision: https://phabricator.services.mozilla.com/D98305
Don't fail to run all mach commands when old psutil directory
cannot be removed.
Glandium mentioned that there shouldn't be any negative effects from the
old directory lingering.
Differential Revision: https://phabricator.services.mozilla.com/D98352
In bug 1614933 we discovered a potential deadlock in Windows-specific code
could cause the main process to get stuck waiting for a child process to send
out its annotations after it crashed. As it turns out this flaw was also
present in the Linux and macOS versions but was not visible because on those
platforms we used non-blocking writes when writing out annotations and we
didn't check if they were actually written out (see bug 1666383). Since the
child process would not stop it couldn't possible deadlock. However, the
relevant code is still racy: if the child process' pipe would start rejecting
writes early, the child process could race past the main process leading to
the crash. The sequence of events in the racy case would be the following:
- We hit an exception in the child process, we enter the exception handler and
signal the main process to write a minidump
- The crash generation thread in the main process is woken up, writes the
minidump then signals the child process it can continue
- The child process writes out the crash annotations then exits
- At this stage the crash generation thread in the main process should have
picked up the annotations and stored the crash report in the pid-to-minidump
table. But let's assume the scheduler doesn't wake up this thread for now.
- The main thread in the main process wakes up in response to the child
process shutdown, it will try to grab the minidump
- The minidump is not available yet because the crash generation client thread
hasn't run yet and there's nothing preventing the main thread to race past it:
the main process crashes trying to access a NULL pointer
To this issue the act of transfering the exception-time annotations is decoupled
from the act of writing the minidump in both the main process and the child
process. This way when the child process is forced to wait for the main process
to act on the minidump before the crash annotations are written out, and by the
time the child process quits the main process has reliably acquired the lock to
the pid-to-minidump table so that the race can't happen anymore.
Note: to implement the second change the child process exception handler
should execute the minidump callback after it has request the creation of a
minidump. For some reason this was implemented in breakpad only for the
in-process crash case, not the out-of-process one. I modified the relevant
code in the exception handler to invoke the callback in both cases.
Differential Revision: https://phabricator.services.mozilla.com/D97964
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
This allows us to avoid calling any NSSCertificateDB methods on the main
thread or allocating memory for xpconnect wrappers of cert objects.
Differential Revision: https://phabricator.services.mozilla.com/D97970
The test is quite simple as it checks the state of the buttons as we cycle through
it, and checks that the rule view does show the expected applied rule when
simulating a color scheme.
Even if the color scheme simulation is behind a pref, this simple test will help
avoid regression. It also highlights that the feature does not work on remote
iframe when Fission is enabled, which is why we tag it as `fail-if = fission`.
Differential Revision: https://phabricator.services.mozilla.com/D98047
To count hunspell memory calls, we hook into malloc calls with #defines.
Due to the way that the compiler imports and caches files, this
causes an implicit dependency on importing malloc before the hooks are
set.
Make this implicit dependency explicit and explain why it's there.
Differential Revision: https://phabricator.services.mozilla.com/D98081
If browser.tabs.drawInTitlebar is false, we should not paint the skeleton
UI. It creates an additional top bar with the icon and name of the current
tab, so our skeleton UI will not match the window, and we risk creating
a poor experience for our users.
Differential Revision: https://phabricator.services.mozilla.com/D97206
This adds the pages per sheet option behind the print.pages_per_sheet.enabled
pref. Sizes of 2 and 6 aren't supported yet, so this is off by default.
Differential Revision: https://phabricator.services.mozilla.com/D95335
This patch updates the modes file for javascript.
It fixes particularly the issue with the source editors syntax highlighting issue, caused by the usage
of optional chaining inside template strings.
It also benefits of any other improvements that have been made.
Differential Revision: https://phabricator.services.mozilla.com/D98106
If we encounter a single error in glxtest, we typically bail immediately
with one liner message. This patch makes it put more effort into
returning what information it is able to, as well as the current error
messages. If certain errors are correlated to specific devices, it would
be useful if we had the information to make the connection.
Differential Revision: https://phabricator.services.mozilla.com/D97861
The helper wasn't working for element in remote frame when Fission was enabled.
We fix this by first retrieving the iframe associated target front and related
walker front.
Then we can check if the walker is different from the top-level one, and call
`querySelector` with the appropriate queryNode.
Differential Revision: https://phabricator.services.mozilla.com/D98046