I had to tune the versionized http helper to pass the right headers,
while still ensuring that http cache is kept disabled.
Differential Revision: https://phabricator.services.mozilla.com/D142348
- it's likely an oblivion from the fix for bug 1716622;
- so just add a check on the final length of the buffer to be under the limit of 2Gb.
Differential Revision: https://phabricator.services.mozilla.com/D143066
Cleans up the interface to AudioSession and brings in line with COM best practices. Uses background threads that are implicitly MTA and asserts proper thread behavior. This also removes AudioSession's Co[Un]Initialize static analysis violations.
Differential Revision: https://phabricator.services.mozilla.com/D140741
This doesn't change behavior; it just makes the existing CSS a bit more concise.
('inset' is a shorthand that sets top, right, bottom, and left all at once.)
Depends on D143099
Differential Revision: https://phabricator.services.mozilla.com/D143109
As indicated in the new code-comment, we do need the html element to be the
full height of the viewport. But:
- we don't need to set width to 100%. The default, 'auto', has the same effect.
- we don't need to set margin/padding to 0; they default to 0 on 'html'.
- we don't need to set anything on the body, since it doesn't render or have
any children in the box tree. (The video descendant is abspos and hence uses
the viewport as its containing block, not the body.)
As an extra check that this is reasonable, note that the similar
TopLevelImageDocument.css stylesheet doesn't have any CSS rules that target the
html or body elements.
Differential Revision: https://phabricator.services.mozilla.com/D143099
Use `poetry` instead of `pip-compile`, then leverage `pip` to assert
that there's no conflicts between environments.
This enables simplifying `requirements.in`, since `colorama` is now
automatically picked up, as vendoring is no longer linux-py3.6-specific.
`poetry==1.2.0a2` was chosen because it was the first version that would
include `pip`/`setuptools`/`wheel` in the `requirements.txt`, yet it was
also the last version that supports Python 3.6 (as still used in CI in
some spots).
Sorry about the `requirements.txt` noise, that's because poetry doesn't
sort hashes yet [1]. Fortunately, you can be confident in
`requirements.txt` changes by checking that this patch doesn't include
changes to vendored packages themselves (I'm including the results of a
`./mach vendor python`).
[1] https://github.com/python-poetry/poetry/issues/5408
Differential Revision: https://phabricator.services.mozilla.com/D142884
This adds a new "impression_cap" telemetry event with several things recorded in
the `extra` object. Please see the updated documentation and Events.yaml for
details.
This is another big patch but like D142152 most of it is the test.
Depends on D142152
Differential Revision: https://phabricator.services.mozilla.com/D142780
This implements Suggest impression frequency capping. Capping is performed
separately for sponsored and non-sponsored suggestions. Capping is not
per-suggestion; it's per type of suggestion, either sponsored or non-sponsored.
Capping can be enabled separately for each type. It's disabled by default for
both types with Nimbus variables for each.
Caps are specified in the quick suggest config in remote settings. There are two
kinds of caps: interval and lifetime. Multiple overlapping caps are supported,
for example a per-hour cap, a per-day cap, and a lifetime cap.
The user's impression stats are kept locally and stored in a pref. A "stats
object" corresponding to each cap interval is kept. Each stats object keeps
track of its corresponding cap's interval, the date at which the current
interval period started, and the impression count during the current interval
period. (For the lifetime cap, the interval in the stats object is Infinity.)
Each time a suggestion impression is recorded, the counters in all the
suggestion type's stats objects are incremented. Once a counter for any stats
object is reached, we stop showing that type of suggestion.
When the interval of a stats object has elapsed, its counter is reset. In this
revision, we check for elapsed intervals each time a suggestion is shown. In the
future when we add telemetry in bug 1761058, we will need to record telemetry
events for intervals where caps were not hit, so we may need to do this check
more often (for example near the beginning of `startQuery()`) or even do it on a
repeating timer.
There's some slightly complicated logic for handling changes in the cap config
since it's likely to change over time as we experiment with it (see
`_validateImpressionStats()`).
This revision also makes a few minor improvements unrelated to the bug.
Differential Revision: https://phabricator.services.mozilla.com/D142152
- stop mixing telemetry data with other information in `loginsFooter.comment`, store telemetry information on dedicated field inside `loginsFooter.comment.telemetryEventData`
- provide `comment` from the selected autocomplete item as data to `autocomplete-will-enter-text` notification. This enables single place of processing for both mouse click and ENTER key press.
- various autocomplete items can specify `comment.fillMessageName` and `comment.fillMessageData` to be passed to LoginManagerParent for processing and fill value generation. This enables lazy decryption, generating email aliases by Relay, integrating with external password managers, etc. by using async call.
- `gAutoCompleteListener` does not need to listen for ENTER key and `FormAutoComplete:PopupOpened`/`FormAutoComplete:PopupClosed` events anymore
- `MozAutocompleteRichlistitemLoginsFooter`, `MozAutocompleteImportableLearnMoreRichlistitem` and `MozAutocompleteImportableLoginsRichlistitem` in toolkit/content/widgets/autocomplete-richlistitem.js do not need to listen to click events and replicate code from LoginManagerParent
Differential Revision: https://phabricator.services.mozilla.com/D142912
This should reduce our memory footprint by no longer requiring us to
fully rasterize SVG images when used as an image map. It should also
move the cost of rasterization off the main thread during display list
building to worker threads during scene building.
Differential Revision: https://phabricator.services.mozilla.com/D143190
We get consistent crashtest failures in CI when image.svg.blob-image
is set to true. This is because on some teardown paths, we don't verify
to see if the layer manager still owns the namespace used for the blob
keys.
Differential Revision: https://phabricator.services.mozilla.com/D143189
It's possible that moz_container_wayland_frame_callback_handler() is called after unmap event if we draw to parent surface so don't assert there.
Differential Revision: https://phabricator.services.mozilla.com/D143167
This patch cleans up the `ContentParent`'s shutdown blocker client usage. It is expected to not change any behavior
in release if not excluding to ever crash on missing singletons. However, it adds lifecycle check asserts in order to
see if we are systematically violating our lifecycle assumptions.
Differential Revision: https://phabricator.services.mozilla.com/D142082
Methods only need to be created as extended functions when they need to store
their home-object. So any method which doesn't use `super` can actually be
created as a normal, non-extended function.
Depends on D142932
Differential Revision: https://phabricator.services.mozilla.com/D142933
Private instance accessors were always initialising the home object, even when
`needsHomeObject()` was `false`.
Depends on D142931
Differential Revision: https://phabricator.services.mozilla.com/D142932