I need to add symbolication support for the mochitest Gecko Profiler command line
option. These profiles also need to be symbolicated. Unfortunately, there is not
a common place where I could use these files. Talos and Raptor each had their
own copy of the snappy symbolication server.
This commit consolidates these packages into a re-usable mozbase package that can
be used in mochitests, and eventually in other places like xpcshell tests.
I stubbed out a test file, but it doesn't do anything quite yet. This commit makes
it so that the tests still work in Raptor and Talos, but doesn't add any features.
It also doesn't try too hard to make the files look like a mozbase package.
Differential Revision: https://phabricator.services.mozilla.com/D74289
The current implementation opens the built Firefox in the objdir. This is not
optimal as the built Firefox is not really great for viewing files in. The build
could be broken. With this patch, the profiles will instead be opened in the users
default browser.
Differential Revision: https://phabricator.services.mozilla.com/D70089
Inspecting a node with many CSS variables makes the Rules view render slowly. A patch to improve performance is in development in D73062.
This patch adds a new subtest, `custom.inspector.manycssvariables.selectnode`, to the existing custom Inspector DAMP test to measure the rendering time for a node with 300 CSS variables all of them used (600 declarations in total).
It might seem extreme. In May 2020 youtube.com has 1,375 CSS variables applicable to the `<html>` element. They all get inherited by all CSS rules for most nodes on the page. This slows down the action of inspecting CSS for any node. The largest CSS rule from youtube's stylesheets has 287 declarations of CSS variables. In the age of automatically-generated stylesheets for design systems this scenario becomes more common.
Differential Revision: https://phabricator.services.mozilla.com/D73289
This patch use the new `exception` and `hasException` field from nsIScriptError
so we can render the actual object in the message error instead of a stringified
version.
Error object are still displayed using the `customFormat` prop, so we display
only the type + message + stacktrace (but we'll have a way to inspect them
in the sidebar soon).
Existing tests were updated to fix failures, and some tests/test cases were
added to make sure we cover all the different kind of errors we can display
in the console.
Differential Revision: https://phabricator.services.mozilla.com/D71288
Remove PRE for rendering large content, to take advantage of
virtualization in codemirror.
Differential Revision: https://phabricator.services.mozilla.com/D68729
--HG--
extra : moz-landing-system : lando
The function now only logs the missing messages after 3s, if no other
DOM updates happened.
This will probably result in having no logs if the test is successful,
while still showing the missing messages if the test is failing.
This also allow us to make the logging more correct: since we were
using an `every` function, we could bail early and not have a correct
view of what messages were missing.
Differential Revision: https://phabricator.services.mozilla.com/D70316
--HG--
extra : moz-landing-system : lando
This patch modifies the reloadConsoleAndLog helper so it can
consumes an array of expected messages, and not only a number
of expected messages.
This should prevent the performance variations caused by new
warning messages being added.
Differential Revision: https://phabricator.services.mozilla.com/D69816
--HG--
extra : moz-landing-system : lando
- Added test for html preview
- First pass at damp test for rendering response sidepanel
Differential Revision: https://phabricator.services.mozilla.com/D67831
--HG--
extra : moz-landing-system : lando
This was generated with
```
cp .gitignore .rgignore
rg -l -g '*.{html,xhtml}' 'href="chrome://global/skin/"' | xargs sed -i "" 's/href\="chrome:\/\/global\/skin\/"/href\="chrome:\/\/global\/skin\/global.css"/g'
```
Differential Revision: https://phabricator.services.mozilla.com/D67687
--HG--
extra : moz-landing-system : lando
In some cases, a browser crash may subsequently cause an exception in the harness before
check_for_crashes is called, effectively bypassing crash reporting. This patch catches
the exception to ensure that check_for_crashes is called regardless of such exceptions.
It also fixes the check for non-unicode file names and adds more diagnostic logging.
Differential Revision: https://phabricator.services.mozilla.com/D68901
--HG--
extra : moz-landing-system : lando
This ensures that we shut down the "real" Firefox, rather than the launcher process,
when forcing process termination. It also ensures that, even when shutdown times out,
we use mozcrash so we get minidump information.
Differential Revision: https://phabricator.services.mozilla.com/D66784
--HG--
extra : moz-landing-system : lando
This patch does the following:
* Moves most logic for initiating about:home / about:newtab into AboutNewTab.jsm
* Makes AboutNewTab the API surface for overriding the default about:newtab URLs.
* Reduces the surface of nsIAboutNewTabService, and makes the properties read-only
* Splits the remaining code in the nsIAboutNewTabService into an implementation for
the parent process, and one for content processes.
This split will hopefully help reduce confusion about which code in
AboutNewTabService is running in which process.
Differential Revision: https://phabricator.services.mozilla.com/D65569
--HG--
rename : browser/components/newtab/test/xpcshell/test_AboutNewTabService.js => browser/components/newtab/test/xpcshell/test_AboutNewTab.js
extra : moz-landing-system : lando
This patch does the following:
* Moves most logic for initiating about:home / about:newtab into AboutNewTab.jsm
* Makes AboutNewTab the API surface for overriding the default about:newtab URLs.
* Reduces the surface of nsIAboutNewTabService, and makes the properties read-only
* Splits the remaining code in the nsIAboutNewTabService into an implementation for
the parent process, and one for content processes.
This split will hopefully help reduce confusion about which code in
AboutNewTabService is running in which process.
Differential Revision: https://phabricator.services.mozilla.com/D65569
--HG--
rename : browser/components/newtab/test/xpcshell/test_AboutNewTabService.js => browser/components/newtab/test/xpcshell/test_AboutNewTab.js
extra : moz-landing-system : lando
This removes the obsolete backend. Notes on some of the less obvious changes
made as part of this patch:
- some of the gFoo style getters in Blocklist.jsm were only used by the XML
version of the blocklist; I've removed them and tried to remove spurious
settings of those properties in the remaining tests.
- some utility methods (e.g. distribution information getters) were also only
used for the XML version (for the update URL).
- it's no longer necessary to test switching implementations.
- in browser/base/content/test/plugins/, we ran some tests from two manifests
in order to run them with both blocklist backends. The simplest way of
reducing this back down to one was to remove the remote-settings one. If I'd
been more future-oriented when I created the duplication, perhaps I would
have moved the XML version out into a different manifest instead, but I
didn't, so now it looks like we're removing the modern one, whereas really
we're going to be running the modern one as part of the "normal" tests and
we're no longer running the "old" tests.
- removed all mentions I could see of extensions.blocklist.url which is no
longer used for anything.
- per https://bugzilla.mozilla.org/show_bug.cgi?id=1016555#c23, updated
references for the OneCRL timing and how it relates to blocklist updates.
Differential Revision: https://phabricator.services.mozilla.com/D64933
--HG--
extra : moz-landing-system : lando
This prevents the popup to cover the eager evaluation result.
In order for the popup to be able to appear outside of the
toolbox, we pass the useXulWrapper option to the HTMLTooltip.
Differential Revision: https://phabricator.services.mozilla.com/D62431
--HG--
extra : moz-landing-system : lando
Major version number bump for both mozlog and mozcrash + requirements update.
This is very much like the previous mozlog major bump - see bug 1591384.
This patch does not update testing/web-platform/tests/tools/wptrunner/requirements.txt;
I expect that will be automatically updated by the pyup.io bot once mozlog is re-released.
Differential Revision: https://phabricator.services.mozilla.com/D65135
--HG--
extra : moz-landing-system : lando
'fixed' because Talos reports FPS and I'm not sure how to change it.
'30000' because so long as we're over ~3fps, we should get solid perf
data. (and Chrome hits 60fps for me on 10k, but ~30fps at 30k, and we
want room to grow)
Differential Revision: https://phabricator.services.mozilla.com/D63011
--HG--
extra : moz-landing-system : lando
Part 1: Only show Waterfall only for visible rows: IntersectionObserver
collects which rows are off screen as state. New elements register with
the list observer and unregister later. Waterfall column is only
rendered for visible rows and just an empty TD for the rest.
Part 2: Scale Waterfall without transform: Waterfall isn't handled by
CSS variables anymore (expensive styling fix).
Differential Revision: https://phabricator.services.mozilla.com/D58476
--HG--
extra : moz-landing-system : lando
Part 1: Only show Waterfall only for visible rows: IntersectionObserver
collects which rows are off screen as state. New elements register with
the list observer and unregister later. Waterfall column is only
rendered for visible rows and just an empty TD for the rest.
Part 2: Scale Waterfall without transform: Waterfall isn't handled by
CSS variables anymore (expensive styling fix).
Differential Revision: https://phabricator.services.mozilla.com/D58476
--HG--
extra : moz-landing-system : lando
The tests are now using mutation observer to check
when the dom is updated instead.
Differential Revision: https://phabricator.services.mozilla.com/D57499
--HG--
extra : moz-landing-system : lando
CLOSED TREE
Backed out changeset 27cec4c76272 (bug 1601688)
Backed out changeset 9aa05612f10f (bug 1601688)
--HG--
extra : rebase_source : 8be2ada196777716cf7a1a47112033b8d1afd481
The tests are now using mutation observer to check
when the dom is updated instead.
Differential Revision: https://phabricator.services.mozilla.com/D57499
--HG--
extra : moz-landing-system : lando
* talos-powers-content.js has to use `wantUntrusted` to receive untrusted
events from page scripts unless enablePrivilege is used.
* Removed `contentMarker` because it is unused and it depends on
enablePrivilege to call `Services.profiler.AddMarker`.
Differential Revision: https://phabricator.services.mozilla.com/D57240
--HG--
extra : moz-landing-system : lando
While I'm here, I sorted the manifest, in order to match the sorted PGO list, so that it's easier to see when there's a discrepancy.
Differential Revision: https://phabricator.services.mozilla.com/D58968
--HG--
extra : moz-landing-system : lando
In brief, this just includes two out-of-process iframes in the
tresize test page, so that when we are resizing the main window,
we will also be resizing in each of the other fission processes.
The current tresize test is registered at a chrome:// URL, so I
had to make it an http URL to have OOP http iframes, which meant
I had to adjust a bit of the framescriptery to account for this.
Differential Revision: https://phabricator.services.mozilla.com/D55572
--HG--
extra : moz-landing-system : lando
Depends on D49569
We can stop using the exact host:port URL and rely on the proxy for all DAMP calls
Differential Revision: https://phabricator.services.mozilla.com/D53317
--HG--
extra : moz-landing-system : lando
This adds a tp5n-multiproc output directory which contains postprocessed
versions of the tp5n set. They are processed to take iframes with relative
URLs and output absolute URLs with domains similar to their original
domains. This will help us better simulate a real-world case for Fission,
which will split processes based on the ETLD+1 of the domain.
Differential Revision: https://phabricator.services.mozilla.com/D53065
--HG--
extra : moz-landing-system : lando
This will cause us to actually launch a new content process, which
we were previously not doing.
Differential Revision: https://phabricator.services.mozilla.com/D50708
--HG--
extra : moz-landing-system : lando
This will simply allow tests to use alternate domains if they want to ensure
they're getting different processes. This is important for realisitcally
measuring the impact of Fission.
Differential Revision: https://phabricator.services.mozilla.com/D50707
--HG--
extra : moz-landing-system : lando
nsXULWindow is no longer XUL specific and is somewhat confusing name.
Differential Revision: https://phabricator.services.mozilla.com/D51486
--HG--
rename : xpfe/appshell/nsXULWindow.cpp => xpfe/appshell/AppWindow.cpp
rename : xpfe/appshell/nsXULWindow.h => xpfe/appshell/AppWindow.h
rename : xpfe/appshell/nsIXULWindow.idl => xpfe/appshell/nsIAppWindow.idl
extra : moz-landing-system : lando
nsXULWindow is no longer XUL specific and is somewhat confusing name.
Differential Revision: https://phabricator.services.mozilla.com/D51486
--HG--
rename : xpfe/appshell/nsXULWindow.cpp => xpfe/appshell/AppWindow.cpp
rename : xpfe/appshell/nsXULWindow.h => xpfe/appshell/AppWindow.h
rename : xpfe/appshell/nsIXULWindow.idl => xpfe/appshell/nsIAppWindow.idl
extra : moz-landing-system : lando
nsXULWindow is no longer XUL specific and is somewhat confusing name.
Differential Revision: https://phabricator.services.mozilla.com/D51486
--HG--
rename : xpfe/appshell/nsXULWindow.cpp => xpfe/appshell/AppWindow.cpp
rename : xpfe/appshell/nsXULWindow.h => xpfe/appshell/AppWindow.h
rename : xpfe/appshell/nsIXULWindow.idl => xpfe/appshell/nsIAppWindow.idl
extra : moz-landing-system : lando
The codesize impact is approximately 0 (actually positive by a a few KB),
because AssignJSString is not inlined.
If we were to force-inline AssignJSString, that would actually _save_ ~115KB
based on bloaty measurements for linux64 shippable opt builds (so with LTO),
because then ConvertJSValueToString stops being inlined in bindings.
Given that ConvertJSValueToString pretty much always calls AssignJSString, so
there is no slowdown from changing which of them is inlined, this is _really_
tempting to do, but I don't want to mess with compiler inlining heuristics...
Inlining both AssignJSString and ConvertJSValueToString increases codesize by
~2MB, so that's definitely _not_ desirable.
Differential Revision: https://phabricator.services.mozilla.com/D50627
--HG--
extra : moz-landing-system : lando
This is the smallest change that helps having a clean baseline when we start using "Inspect Element" in the inspector custom test
Differential Revision: https://phabricator.services.mozilla.com/D50589
--HG--
extra : moz-landing-system : lando
This is needed to release a new mozlog with the PRECONDITION_FAILED
test and subtest status for use in web-platform-tests.
Update all in-tree dependencies on mozlog to >=5.0. These were found
with `hg grep 'mozlog.*[0-9]'`.
Only testing/web-platform/tests/tools/wptrunner/requirements.txt
remains on 4.2.0, and it will be updated in upstream wpt after mozlog
5.0 has been released.
Differential Revision: https://phabricator.services.mozilla.com/D50456
--HG--
extra : moz-landing-system : lando
The current limit of 2 million entries only allows
to record part of a DAMP run. The profiler team will investigate
if the number of entries can/should be reduced, but for the time
being we bump the limit to 10 million in order to record full
profiles when running DAMP on try.
Differential Revision: https://phabricator.services.mozilla.com/D49555
--HG--
extra : moz-landing-system : lando
In the old setup, a lookup with an nsAString key would implicitly construct an
AtomOrString, which would assign the key to an nsString. This would lead to
copies and heap-allocations if the key was an autostring, which it typically is
when coming from bindings.
This fix improves the performance of the new window-named-property-get.html pref
reftest by about 20-30%, and improves the new getElementById-1.html test by 2-3x.
Differential Revision: https://phabricator.services.mozilla.com/D44015
--HG--
extra : moz-landing-system : lando