One thing that stands out of the profiles in bug 1827132 are a ton of
allocations and attribute lookups.
While the root cause of that performance issue is likely to be a
DOMSubtreeModified event that Chrome doesn't fire or so, those are
rather easy to optimize and might be more generally useful.
I removed handling of `<br type="">`, because editor no longer uses it.
Maybe we can also remove some of the other of the prefixed attribute
shenanigans.
Differential Revision: https://phabricator.services.mozilla.com/D176956
`nsRange`s need to keep track of all `Selection` instances they are in, while maintaining an as-small-as-possible memory footprint.
The approach of using a linked list to store the selection pointers led to a performance regression
because of the necessary allocations of the selection wrapper class.
Since the `AutoTArray` has an identical size, the list can easily be replaced.
Differential Revision: https://phabricator.services.mozilla.com/D176908
This patch adds a state on the stack so that it can be known at all times which
async steps have run, and to make sure main thread can handle spurious wakeups.
With this state, only one monitor is needed, so the other is removed.
Differential Revision: https://phabricator.services.mozilla.com/D176895
This is used by the Web Access NVDA add-on to identify and remediate some inaccessible elements on websites with accessibility problems.
It is also useful for developers using screen readers when trying to identify specific elements in the absence of semantics.
Differential Revision: https://phabricator.services.mozilla.com/D176896
This included multiple changes:
1. Expire old non-typed hidden single-visit URIs
2. Expire long urls only if they are single-visit
3. increase the necessary age for expiration to 90 days
4. stop notifying listeners inside the database transaction
Differential Revision: https://phabricator.services.mozilla.com/D176028
The generation of unique anonynmous origins can fail, so the method needs to be
fallible as well, otherwise the failures couldn't be propagated.
Differential Revision: https://phabricator.services.mozilla.com/D176874
GetInfoFromValidatedPrincipalInfo needs to be fallible, so it can only be
called from methods which are fallible as well.
This patch changes all existing operations to call the method from DoInit.
Differential Revision: https://phabricator.services.mozilla.com/D176873
The race is between the OOP iframe's BrowserParent being informed about
enclosing transforms, and the event synthesized by the test.
The race is resolved by using contentTransformReceived() in the iframe's
process before sending the event.
Differential Revision: https://phabricator.services.mozilla.com/D176829
Quota clients should use GetInfoFromValidatedPrinciplaInfo in the parent
because that method will eventually generate unique anonymous origins for
private browsing.
This patch also moves some calls from the main thread to the PBackground thread
because GetInfoFromValidatedPrinciplaInfo can run on any thread.
Differential Revision: https://phabricator.services.mozilla.com/D176871
We now ensure that QuotaManager exists before any operation is created. This is
required because GetInfoFromValidatedPrinciplaInfo can't be a static anymore.
Differential Revision: https://phabricator.services.mozilla.com/D176870
The new member contais the same value as mOrigin for now. The new member is
intended to contain generated unique anonymous origin for private browsing in
future.
Differential Revision: https://phabricator.services.mozilla.com/D176869
OriginMetadata is a generic type containing relevant information which can be
used for generating unique anonymous origins instead of using original origins
(for example for private browsing).
The patch is partially based on D176751.
Differential Revision: https://phabricator.services.mozilla.com/D176868
This is a preparation for converting the arguments to a singe argument using
more generic OriginMetadata type.
The patch is partially based on D176751.
Differential Revision: https://phabricator.services.mozilla.com/D176867
I guess I missed this watershed initially because it's a bit out of the usual lower-version-is-higher-priority order.
I also figured I'd take this opportunity to add desupport information as well, which is probably relevant to various folks.
Differential Revision: https://phabricator.services.mozilla.com/D176882
Add an option for WebRTC to use software platform encoder.
Without this, users won't be able to have H.264 video calls
as soon as they download Firefox and have to wait until the
OpenH264 plugin is downloaded.
Differential Revision: https://phabricator.services.mozilla.com/D171610