Commit Graph

760363 Commits

Author SHA1 Message Date
Gregory Mierzwinski
4c06787a22 Bug 1708760 - Add a pageload test for about:welcome. r=perftest-reviewers,AlexandruIonescu
Differential Revision: https://phabricator.services.mozilla.com/D117190
2021-06-11 15:52:47 +00:00
Gregory Mierzwinski
27a0af4fdf Bug 1708760 - Build conditioned profiles during the tests. r=perftest-reviewers,AlexandruIonescu
This patch adds the ability to build conditioned profiles during a test (i.e. in-test, prebuilt, or in-task for CI). Using the `artifact:` prefix in --conditioned-profile will cause the conditioned profile to be downloaded from mozilla-central rather than being built locally.

The condprof package was also modified to prevent it from building and saving logs that are not very useful in local runs, preventing useless downloads or archiving, and to also be able to obtain the location of the test-built profile.

Differential Revision: https://phabricator.services.mozilla.com/D116520
2021-06-11 15:52:47 +00:00
Dorel Luca
71abb3ab93 Backed out changeset 43a82597dade (bug 1699837) for Crashtest in layout/printing/crashtests/1671503.html. CLOSED TREE 2021-06-11 19:48:10 +03:00
Dorel Luca
051b42edec Backed out 4 changesets (bug 1714141) for Mochitest failures in builds/worker/checkouts/gecko/js/src/vm/HelperThreads.cpp. CLOSED TREE
Backed out changeset b4a5d2747861 (bug 1714141)
Backed out changeset ab5b2926963a (bug 1714141)
Backed out changeset 49dcb1536d0a (bug 1714141)
Backed out changeset a2e92a213ed2 (bug 1714141)
2021-06-11 19:34:41 +03:00
Dorel Luca
8720353dbf Backed out changeset 1968ba484b6f (bug 1697905) on dev's request 2021-06-11 18:04:51 +03:00
Julian Descottes
60a999f8a1 Bug 1715741 - [devtools] Enable a few inspector tests which already work with bfcache in parent r=ochameau
Differential Revision: https://phabricator.services.mozilla.com/D117407
2021-06-11 14:39:07 +00:00
Nicolas Chevobbe
bce69a58f1 Bug 1715985 - [devtools] Upgrade to pretty-fast 0.2.7. r=jdescottes.
This will unblock the migration to Node 12.

Differential Revision: https://phabricator.services.mozilla.com/D117537
2021-06-11 14:39:05 +00:00
Dorel Luca
e1f4d9bb38 Backed out changeset 17e7b969b830 (bug 1713491) for Linux build bustage in gecko/dom/events/ContentEventHandler.cpp. CLOSED TREE 2021-06-11 17:52:10 +03:00
Nicolas Silva
2be01aafa4 Bug 1711648 - Move LayoutRect to the Box2D representation. r=jrmuizel.
Differential Revision: https://phabricator.services.mozilla.com/D117293
2021-06-11 13:33:10 +00:00
Nicolas Silva
8c3cb30358 Bug 1711648 - Move RasterRect to the Box2D representation. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D117292
2021-06-11 13:33:09 +00:00
Nicolas Silva
2fd526f0b1 Bug 1711648 - Move TileRange to the Box2D representation. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D117291
2021-06-11 13:33:09 +00:00
Nicolas Silva
4336044ca3 Bug 1711648 - Move TileRect to the Box2D representation. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D117290
2021-06-11 13:33:08 +00:00
Nicolas Silva
724b80d537 Bug 1711648 - Move PictureRect to the endpoint representation. r=gfx-reviewers,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D116825
2021-06-11 13:33:08 +00:00
Nicolas Silva
1e02b75f51 Bug 1711648 - Move some space conversion utilities from rect to box. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D116734
2021-06-11 13:33:07 +00:00
Andrew Osmond
805d9ce3e3 Bug 1715902 - Refuse WebRender on Linux if backed by software driver. r=jrmuizel
Reject software rasterizers on Linux (except Software WebRender) when
trying to create full WebRender, unless WebRender was force enabled.

Differential Revision: https://phabricator.services.mozilla.com/D117534
2021-06-11 13:15:17 +00:00
Emilio Cobos Álvarez
7af763acbe Bug 1699837 - Make sure that remote iframes honor print settings. r=mattwoodrow
This fixes it since we honor the print resolution properly now.

Differential Revision: https://phabricator.services.mozilla.com/D115263
2021-06-11 13:07:55 +00:00
Julian Descottes
5e8b5107e6 Bug 1715954 - [devtools] Remove in-tree copy of acorn.js r=nchevobbe
This file is no longer used. acorn is pulled from npm by the debugger and the pretty-print worker

Differential Revision: https://phabricator.services.mozilla.com/D117531
2021-06-11 12:56:00 +00:00
Julian Descottes
e21ba61a3d Bug 1715969 - [devtools] Remove debugger-tests try preset r=bomsy
Depends on D117524

This preset is redundant with the main devtools preset and not maintained

Differential Revision: https://phabricator.services.mozilla.com/D117530
2021-06-11 12:55:32 +00:00
Julian Descottes
abc180d3a7 Bug 1715969 - [devtools] Fix devtools try preset to include macos jobs r=bomsy
macos jobs moved from macosx1014 to macosx1015. Use a more generic string to match osx jobs

Differential Revision: https://phabricator.services.mozilla.com/D117524
2021-06-11 12:55:31 +00:00
Dorel Luca
5e16d5b3ba Backed out changeset c66a53cd194f (bug 1709838) for Browser-chrome failures in toolkit/components/antitracking/test/browser/browser_PBMCookieBehavior.js. CLOSED TREE 2021-06-11 16:48:32 +03:00
Dorel Luca
2190a59721 Backed out changeset c30c8b8dc0b5 (bug 1715902) on Dev's request. CLOSED TREE 2021-06-11 15:48:11 +03:00
Frederik Braun
d2731c3acc Bug 1715684 - block port 989 and 990 for ftps-data and ftps r=necko-reviewers,valentin
Differential Revision: https://phabricator.services.mozilla.com/D117504
2021-06-11 12:35:02 +00:00
Andrew Osmond
330727f6e8 Bug 1715902 - Refuse WebRender on Linux if backed by software driver. r=jrmuizel
When trying to create a GLContextEGL or GLContextGLX, we should check to
see what our display is backed by. If using a software driver, we should
fail to create the context for WebRender, so that it can fallback to
Software WebRender.

Differential Revision: https://phabricator.services.mozilla.com/D117473
2021-06-11 12:16:36 +00:00
Christoph Kerschbaumer
e62dbaedd3 Bug 1709838: Enable HTTPS-First Mode in PBM Mode in Nightly r=arthuredelstein
Differential Revision: https://phabricator.services.mozilla.com/D114500
2021-06-11 12:11:31 +00:00
Dimi Lee
32e7bc465a Bug 1708455 - P10. Add signon.usernameOnlyForm.enabled preference r=sfoster,tgiles
Differential Revision: https://phabricator.services.mozilla.com/D116238
2021-06-11 11:56:05 +00:00
Dimi Lee
b3902dc5a9 Bug 1708455 - P9. Add telemetry probe to measure the performance of detecting username-only forms. r=sfoster,tgiles
This patch adds two telemetry to measure the performance impact after adding
multi-page login support.

Telemtry PWMGR_IS_USERNAME_ONLY_FORM gives us an idea among
all forms that contain a possible username input (type is email or text), the propotion
of those forms that are considered as a username-only form by our heuristic. We can
use this data as a hint of whether the username-only form heuristic works properly.

Telemetry PWMGR_NUM_FORM_HAS_POSSIBLE_USERNAME_EVENT_PER_DOC gives us an
idea how many forms contain a possible username input per page. If the data shows that there are a
lot of pages that contain multiple forms with a possible username input, which
triggers the new code path added in this bug, we might need to pay more attention to see whether the
change introduces performance overhead for page load.

Ex. A doc has 4 forms
<form><input type=email autocomplete=username/></form>  <!-- This is a form with a possible username input, and it is a username-only form-->
<form><input type=text autocomplete=username/></form>   <!-- This is a form with a possible username input, and it is a username-only form-->
<form><input type=email/></form>                        <!-- This is a form with a possible username input, but it is NOT a username-onlyc form -->
<form><input type=urk/></form>                          <!-- This is a form WITHOUT a possible username input -->

PWMGR_IS_USERNAME_ONLY_FORM records
bucket[0] = 1  // 1 form with a possible username input but not a username-only form
bucket[1] = 2  // 2 forms are username-only form.

PWMGR_NUM_FORM_HAS_POSSIBLE_USERNAME_EVENT_PER_DOC records
bucket[0] = 0
bucket[1] = 1  // 1 doc has 1 or more than 1 form with a possible-username input
bucket[2] = 1  // 1 doc has 2 or more than 2 form with a possible-username input
bucket[3] = 1  // 1 doc has 3 or more than 3 form with a possible-username input
bucket[4] = 0  // 0 doc has 4 or more than 4 form with a possible-username input

Depends on D113802

Differential Revision: https://phabricator.services.mozilla.com/D116237
2021-06-11 11:56:05 +00:00
Dimi Lee
4b3fa3554b Bug 1708455 - P8. Add AutoFillResult.FILLED_USERNAME_ONLY_FORM to record autofill in username-only forms. r=sfoster,tgiles
Depends on D113801

Differential Revision: https://phabricator.services.mozilla.com/D113802
2021-06-11 11:56:05 +00:00
Dimi Lee
c79fee63b8 Bug 1708455 - P7. Support login capture for multipage login forms. r=sfoster,tgiles
This patch saves the username field in a username-only form when the form is submitted.
When another form in the same document is submitted after that, if the form doesn't
have a username field, we then use the username field found in the username-only form to capture login.

This fits the case that in a multipage sign-in form, the first form is
usually a username-only form and the second form is usually a password-only form.

However, in the current approach, if in the second form, there is an input field before the
password field, we will use the input field in the second form as the username field, not the username field
in the first form. For example, in a multipage registration form, the first form is a username-only form to
enter your email, and the second form has an input field to enter the last name and a password field. With the
current approach, we will save "last name" + "password" instead of "username" + "password".

An alternate is always using the username field in the first form or coming up with a heuristic
to "compare" the two username fields. But since I haven't found a real-world example of the above scenario,
using the current approach seems a safer way to introduce the feature.

Depends on D113800

Differential Revision: https://phabricator.services.mozilla.com/D113801
2021-06-11 11:56:04 +00:00
Dimi Lee
604e31d5d3 Bug 1708455 - P6. Support autocomplete in a username-only form. r=sfoster,tgiles
In the previous patch to support autofill, a username field in a
username-only form is marked as a login manager field in '_fillForm'.
So this patch only makes autocomplete highlight work when autocomplete a username field.

This patch calls '_highlightFilledField' in 'onUsernameAutoCompleted'
when the autocompleted field is the username field in a username-only
form.
This is because when we autocomplete a username field in a form with password fields,
the highlight is done in '_fillForm'. However, in the case of a username-only
form, we don't have to call '_fillForm' anymore due to no password to fill.

Depends on D113799

Differential Revision: https://phabricator.services.mozilla.com/D113800
2021-06-11 11:56:04 +00:00
Dimi Lee
c03a1fd348 Bug 1708455 - P5. Support autofilling a username-only form. r=sfoster,tgiles
This patch does two things:
1. Checks whether a form is a username-only form after receiving 'DOMFormHasPossibleUsername' event.
   If it is, fetch logins from the parent to trigger form autofill.
2. Makes LoginManagerChild._fillForm compatible with an empty password field when there is an username field.

Depends on D113798

Differential Revision: https://phabricator.services.mozilla.com/D113799
2021-06-11 11:56:03 +00:00
Dimi Lee
a8a701a4a6 Bug 1708455 - P4. Add DOMFormHasPossibleUsernameField event to notify the password manager when a form has a text input or an email input. r=sfoster,tgiles,smaug
Right now, we limit the type of a username field in username-only forms to be either text or email.
This is different from what the password manager currently support in LoginHelper.isUsernameFieldType.
This is because text and email type are the most common cases for a username field, and we want to focus
on the cases that are more likely a username field.

This patch adds "DOMFormHasPossibleUsername" event to notify the password manager when a form has a possible
username field (text or email). The event works similar to the existing "DOMFormHasPassword" event.

Depends on D113797

Differential Revision: https://phabricator.services.mozilla.com/D113798
2021-06-11 11:56:03 +00:00
Dimi Lee
bb8bb066b1 Bug 1708455 - P3. Support showing password manager items in context menu for username fields that are in a username-only form. r=sfoster,tgiles
Before the patch, we don't show password manager items when there is no password fields found in a form.

In this patch, we do two things to support a username-only form in the context menu:
1. Add "other" category to fieldname hints. "other" is used for fields that are
   in a form but are neither "current-password", "new-password", nor "username".
   With the change, the "username" hint is now only used for fields that are considered a username field by the password manager.

2. When there is no password field in a form, ContextMenu also treat a
   form as a login form when the active field is a username field, which means it is a username-only form.

Depends on D113796

Differential Revision: https://phabricator.services.mozilla.com/D113797
2021-06-11 11:56:02 +00:00
Dimi Lee
8d762cf0e6 Bug 1708455 - P2. Support username-only forms in _getFormFields r=sfoster,tgiles
Before this patch, '_getFormFields' doesn't support forms without password fields.
In this patch, when a form doesn't have a password field, we use the
heuristic added in the previous patch to determine whether the form is a
username-only form. If it is, return the username field.

Depends on D113795

Differential Revision: https://phabricator.services.mozilla.com/D113796
2021-06-11 11:56:02 +00:00
Dimi Lee
28a04bb7a6 Bug 1708455 - P1. Add a heuristic to detect username-only login forms r=sfoster,tgiles
Differential Revision: https://phabricator.services.mozilla.com/D113795
2021-06-11 11:56:02 +00:00
Kagami Sascha Rosylight
74760a9a0e Bug 1713491 - Return std::pair from nsIFrame::GetOffsets r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D117520
2021-06-11 11:37:11 +00:00
Marian-Vasile Laza
1710dd4296 Backed out changeset a722491ae6b3 (bug 1713491) on devs request
CLOSED TREE
2021-06-11 14:31:46 +03:00
Kagami Sascha Rosylight
2d398fce26 Bug 1713491 - Remove return type of nsIFrame::GetOffsets r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D117485
2021-06-11 10:59:12 +00:00
Jon Coppeard
e19f735ced Bug 1714141 - Remove unused 'producer' condition variable r=sfink
This is unused since the internal thread pool has its own now.

Differential Revision: https://phabricator.services.mozilla.com/D117162
2021-06-11 10:34:43 +00:00
Jon Coppeard
77bd390b78 Bug 1714141 - Use dispatch callback for internal thread pool r=sfink
We can use the dispatch task callback for the internal thread pool too,
removing some code specific to the latter.

Differential Revision: https://phabricator.services.mozilla.com/D117161
2021-06-11 10:34:43 +00:00
Jon Coppeard
7e55771b96 Bug 1714141 - Move internal thread pool into a new class r=sfink
Mostly this moves the code over to a new InternalThreadPool class in a new
source file. The initialization and shutdown code had to change a little
to make this work.

Differential Revision: https://phabricator.services.mozilla.com/D117160
2021-06-11 10:34:43 +00:00
Jon Coppeard
7c8a777970 Bug 1714141 - Make helper thread accessors private and remove only external use r=sfink
These are going to be removed.

Differential Revision: https://phabricator.services.mozilla.com/D117159
2021-06-11 10:34:42 +00:00
Gabriele Svelto
7cf5a3af6f Bug 1711418 - Record the OOM allocation size in WER crashes r=KrisWright
This patch adds a new field to the structures that WER reads from a
crashed process. This field contains a pointer to the global variable
that records the size of the last failed annotation.

When WER intercepts a crash it will use this address to read the
variable. If it's not zero it will add the corresponding annotation
to the crash report.

Depends on D116449

Differential Revision: https://phabricator.services.mozilla.com/D116450
2021-06-11 09:59:51 +00:00
Gabriele Svelto
910fd19b94 Bug 1711418 - Factorize the code that reads/writes memory to/from other processes r=KrisWright
Depends on D116017

Differential Revision: https://phabricator.services.mozilla.com/D116449
2021-06-11 09:59:50 +00:00
Gabriele Svelto
4bdb354ea7 Bug 1703761 - Flag crash reports intercepted by WER with a special annotation r=KrisWright
Since this added the new flag to the crash ping I also took the time to update
the crash ping documentation with all the flags that have been added and
removed over the last few versions of Firefox.

Depends on D115380

Differential Revision: https://phabricator.services.mozilla.com/D116017
2021-06-11 09:59:50 +00:00
Gabriele Svelto
74d553df16 Bug 1682518 - Add minidump generation for child processes in the WER module r=KrisWright
This also notifies the main process after the minidump has been generated.
I refactored the code a bit so the patch is probably larger than it should be
but the code should be a bit more readable overall.

With this change the minidump generation flow works like this:
- When the callback gets invoked in the WER process we read the structure that
  is stored in every process' to figure out if it's the main process or a child
  one. This is done by reading said process' memory, the pointer has been
  passed to the runtime exception module when it was registered.
- If the main process crashed everything works like it used to.
- If it was a child process then we first capture a minidump of it.
- Then we read the structure representing it in the main process:
  WindowsErrorReportingData. The address of this structure was passed into the
  child process' command-line so we need to parse that first, then we read it
  from the main process memory.
- We fill the structure and write it back into the main process memory.
- At this point if everything went fine we create a new thread in the main
  process just to execute the WerNotifyProc function that will inform the main
  process to the presence of the new minidump.

There's one important tidbit that's worth keeping in mind: the synchronization
between the main process and the WER process is implicit. The
WindowsErrorReportingData structure in the main process is kept alive until the
child process dies, the main process will destroy it only after that point. As
long as we're in the runtime exception module the crashed process is kept alive
so this will prevent the main process from touching that structure.
We explicitly terminate the crashed process **after** we're done with the
structure so nothing bad could happen... unless someone makes a change to
Gecko that breaks the previous assumption.

Another important thing to keep in mind: we wait for the newly created thread
to inform the main process but only for 5 seconds. We don't want to wait
indefinitely because the function that we're calling is taking a lock and if
it blocks for some reason WER will get stuck waiting for it, so it will never
kill the crashed process which in turn will prevent the main process from
moving ahead. In principle this should never happen but better be safe than
sorry.

Depends on D115379

Differential Revision: https://phabricator.services.mozilla.com/D115380
2021-06-11 09:59:50 +00:00
Gabriele Svelto
a7c337103a Bug 1697895 - Register the WER runtime exception module in child processes r=KrisWright
This patch sets up a few different things that will be used by the WER runtime
exception module when it needs to notify the main process of a child process
crash.

For every child process we allocate a structure in the main process called
WindowsErrorReportingData that contains three things:
- The address of the function used to notify the main process that there's a
  pending minidump for a given child process
- The PID of said child process
- The name of the minidump that has been generated

The first field is filled up by the main process and will be read by the WER
process when running the runtime exception module, the second and third fields
on the other hand start empty and will be written into by the runtime exception
module after it has generated a minidump.

I know this sounds scary. It is. But bear with me please.

When we register the runtime exception module we can pass it a single
pointer-sized parameter but we need to pass it at least another pointer that
includes data coming from the child process itself (this one is called
InProcessWindowsErrorReportingData). This data currently includes only the
process type but will also include certain annotations in the future
(e.g. bug 1711418). So here's what we do: we store a pointer to the parent
data structure in the child process command-line (cringe) and we read it
from the runtime exception module by reading the crashed process command-line
arguments and parsing them (double-cringe).

Armed with this information the WER runtime exception module can populate
the info for the generated minidump and then push it into the main process
by calling CreateRemoteThread() (which creates a new thread in the main
process, triple-cringe at this point).

Differential Revision: https://phabricator.services.mozilla.com/D115379
2021-06-11 09:59:49 +00:00
Kagami Sascha Rosylight
9a794d46fa Bug 1715882 - Return void from Selection::Clear and ::NotifySelectionListeners r=masayuki
Differential Revision: https://phabricator.services.mozilla.com/D117469
2021-06-11 09:10:35 +00:00
Masayuki Nakano
5423cae57c Bug 1560396 - Replace EditorBase::GetNodeAtRangeOffsetPoint() with new API in EditorDOMPointBase r=m_kato
It's a static method and called only with `EditorDOMPointBase` instances.
So, we can add new API to `EditorDOMPointBase` instead.

Note that it's changed to return container when the container is a data node
rather than a text node.  This should be better because no data node can
have children.

Depends on D117382

Differential Revision: https://phabricator.services.mozilla.com/D117490
2021-06-11 08:57:18 +00:00
Gerald Squelart
c953f2a74f Bug 1715844 - Fixed non-MOZ_GECKO_PROFILER build of MicroGeckoProfiler - r=canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D117493
2021-06-11 08:43:42 +00:00
Marian-Vasile Laza
78f4bb0d4d Backed out changeset 7729e9dfb60a (bug 1715705) for causing failures in browser_bug1204626.js
CLOSED TREE
2021-06-11 12:12:52 +03:00